{"version":3,"sources":["../node_modules/comma-separated-tokens/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-js/src/index.ts","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/extend/index.js","../node_modules/hast-util-parse-selector/lib/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/hastscript/lib/create-h.js","../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hastscript/lib/index.js","../node_modules/hastscript/index.js","../node_modules/character-entities-legacy/index.js","../node_modules/character-reference-invalid/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/is-alphabetical/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/parse-entities/lib/index.js","../node_modules/parse-entities/index.js","../node_modules/refractor/lib/prism-core.js","../node_modules/refractor/lib/core.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/armasm.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/arturo.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/awk.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bbj.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/bqn.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/cilkc.js","../node_modules/refractor/lang/cilkcpp.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/cooklang.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cue.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gettext.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/linker-script.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/gradle.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/mata.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/metafont.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/odin.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/plant-uml.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rescript.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stata.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/supercollider.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wgsl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/lib/all.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/coy.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/funky.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/okaidia.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/solarizedlight.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/tomorrow.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/twilight.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/a11y-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/atom-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/base16-ateliersulphurpool.light.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/cb.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/coldark-cold.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/coldark-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/coy-without-shadows.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/darcula.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/dracula.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-earth.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-forest.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-light.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-sea.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/duotone-space.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/ghcolors.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/gruvbox-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/gruvbox-light.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/holi-theme.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/hopscotch.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/lucario.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/material-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/material-light.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/material-oceanic.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/night-owl.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/nord.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/one-dark.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/one-light.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/pojoaque.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/shades-of-purple.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/solarized-dark-atom.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/synthwave84.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/vs.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/vsc-dark-plus.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/xonokai.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/z-touch.js","../node_modules/react-syntax-highlighter/dist/cjs/styles/prism/index.js","../src/utils/cn.ts","../components/base/alert.tsx","../components/base/badge.tsx","../components/base/button.tsx","../components/base/card.tsx","../components/base/checkbox.tsx","../components/base/dialog.tsx","../components/base/dropdown-menu.tsx","../components/base/input.tsx","../components/base/label.tsx","../components/base/popover.tsx","../components/base/progress.tsx","../components/base/scroll-area.tsx","../components/base/select.tsx","../components/base/separator.tsx","../components/base/slider.tsx","../components/base/switch.tsx","../components/base/table.tsx","../components/base/tabs.tsx","../components/base/textarea.tsx","../components/base/tooltip.tsx","../components/base/ImageWithFallback.tsx","../components/auth/LoginPage.tsx","../src/utils/auth.ts","../components/auth/ProtectedRoute.tsx","../components/base/ConfirmDialog.tsx","../components/logs/LogViewer.tsx","../src/utils/apiRequest.ts","../components/logs/LogsPage.tsx","../lib/utils.ts","../components/base/RestartBanner.tsx","../src/pages/SettingsPage.tsx","../components/connections/ConnectionStatus.tsx","../src/hooks/useSocketIO.ts","../components/connections/ConnectionLostOverlay.tsx","../components/connections/ConnectionOverlay.tsx","../components/base/ConnectionStatusBanner.tsx","../components/base/TestModeIndicator.tsx","../components/connections/ConnectionIndicator.tsx","../components/base/DeviceIcon.tsx","../components/base/DogEarBadge.tsx","../components/base/EmptyState.tsx","../components/base/AppCrashFallback.tsx","../components/base/DomainEmptyStates.tsx","../components/base/LoadingState.tsx","../components/base/HelpTooltip.tsx","../components/connections/NetworkInterfaceSelect.tsx","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens/index.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/parse.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/unified/lib/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/react-markdown/node_modules/unist-util-is/lib/index.js","../node_modules/react-markdown/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/react-markdown/node_modules/unist-util-visit/lib/index.js","../node_modules/react-markdown/lib/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js","../node_modules/mdast-util-to-markdown/lib/util/encode-info.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string/lib/index.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-phrasing/node_modules/unist-util-is/lib/index.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/remark-gfm/lib/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../components/base/MarkdownViewer.tsx","../components/base/TruncatedText.tsx","../components/base/ColorPalette.tsx","../src/hooks/useDebounce.ts","../components/base/PathTypeahead.tsx","../components/base/ResizableDialog.tsx","../components/base/context-menu/ContextMenu.tsx","../components/base/context-menu/ContextMenuItem.tsx","../components/base/context-menu/ContextMenuSubmenu.tsx","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/one-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/one-light.js","../components/base/CodeViewer.tsx","../components/base/AppCommandPalette.tsx","../src/utils/dateFormat.ts","../src/utils/numberFormat.ts","../src/utils/tagColors.ts","../src/utils/time.ts","../src/utils/apiReadiness.ts","../src/utils/browserLogger.ts","../src/hooks/useFormState.ts","../components/layout/AppLayout.tsx","../components/layout/AppFooter.tsx","../components/layout/sidebar.tsx","../components/layout/SidebarAppLayout.tsx","../components/activity/ActivityLED.tsx","../components/data/Sparkline.tsx","../components/data/RealtimeDataTable.tsx","../components/data/DashboardStats.tsx","../components/logs/LogStats.tsx","../components/settings/SettingsFramework.tsx","../components/settings/LogsSettings.tsx","../components/settings/SettingsPanels.tsx","../src/theme/index.ts","../src/theme/ThemeProvider.tsx","../components/settings/ThemeToggle.tsx","../src/config/defaultSettingsCategories.tsx","../components/updates/UpdateNotification.tsx","../src/hooks/useConnectionStatus.ts","../src/utils/authHandler.ts","../src/styles/index.ts","../data-table/hooks/usePagination.ts","../data-table/hooks/useColumnVisibility.ts","../data-table/hooks/useResizableColumns.ts","../data-table/hooks/useColumnOrder.ts","../data-table/components/Pagination.tsx","../data-table/components/DataTable.tsx","../data-table/components/PaginationControls.tsx","../data-table/components/DataTablePage.tsx","../data-table/components/BatchActionsBar.tsx","../data-table/components/ColumnVisibility.tsx","../data-table/components/TableFilters.tsx","../data-table/components/MultiSelectFilter.tsx"],"names":["parse","value","tokens","input","index","start","end","token","stringify","values","options","settings","init_comma_separated_tokens","__esmMin","Schema","init_schema","property","normal","space","merge","definitions","definition","init_merge","normalize","init_normalize","Info","init_info","attribute","types_exports","__export","boolean","booleanish","commaOrSpaceSeparated","commaSeparated","number","overloadedBoolean","spaceSeparated","increment","powers","init_types","mark","key","checks","DefinedInfo","init_defined_info","mask","check","create","properties","normals","info","init_create","aria","init_aria","_","caseSensitiveTransform","attributes","init_case_sensitive_transform","caseInsensitiveTransform","init_case_insensitive_transform","html","init_html","svg","init_svg","xlink","init_xlink","xmlns","init_xmlns","xml","init_xml","hastToReact","init_hast_to_react","find","schema","Type","valid","rest","dash","camelcase","dashes","cap","kebab","$0","init_find","init_property_information","require_inline_style_parser","__commonJSMin","exports","module","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","style","lineno","column","updatePosition","str","lines","i","position","node","Position","whitespace","error","msg","err","errorsList","match","re","m","comments","rules","c","comment","pos","declaration","prop","val","ret","trim","declarations","decls","decl","StyleToObject","inline_style_parser_1","__importDefault","iterator","styleObject","hasIterator","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","skipCamelCase","capitalize","character","trimHyphen","prefix","camelCase","style_to_object_1","utilities_1","StyleToJS","output","decodeNamedCharacterReference","characterReference","element","init_index_dom","require_extend","hasOwn","toStr","defineProperty","gOPD","isArray","arr","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","target","getProperty","name","extend","src","copy","copyIsArray","clone","length","deep","parseSelector","selector","defaultTagName","props","previous","tagName","search","subvalue","init_lib","init_hast_util_parse_selector","init_space_separated_tokens","createH","caseSensitive","adjust","createAdjustMap","h","children","child","lower","adjusted","isChild","addProperty","addChild","record","keys","list","item","result","parsePrimitive","finalResult","nodes","styles","init_create_h","svgCaseSensitiveTagNames","init_svg_case_sensitive_tag_names","init_hastscript","characterEntitiesLegacy","init_character_entities_legacy","characterReferenceInvalid","init_character_reference_invalid","isDecimal","code","init_is_decimal","isHexadecimal","init_is_hexadecimal","isAlphabetical","init_is_alphabetical","isAlphanumerical","init_is_alphanumerical","parseEntities","additional","queue","point","indent","line","now","following","begin","type","characterReferenceCharacters","characters","test","terminated","namedReference","diff","reference","warning","reason","referenceCode","prohibited","disallowed","flush","next","offset","messages","init_parse_entities","Token","content","alias","matchedStr","matchPattern","pattern","text","lookbehind","lookbehindLength","matchGrammar","tokenList","grammar","startNode","startPos","rematch","patterns","j","patternObj","inside","greedy","flags","currentNode","removeCount","from","to","p","k","matchStr","before","after","reach","removeFrom","addAfter","removeRange","wrapped","nestedRematch","LinkedList","head","tail","newNode","count","toArray","array","uniqueId","plainTextGrammar","Prism","init_prism_core","o","deepClone","visited","id","v","redef","lang","insert","root","newToken","old","DFS","callback","objId","propertyType","language","env","hooks","callbacks","Refractor","highlight","refractor","register","syntax","languages","map","registered","aliasOrLanguage","listLanguages","encode","init_core","markup","includedCdataInside","def","attrName","init_markup","css","string","init_css","clike","init_clike","regex","specialEscape","escape","charSet","charSetWithoutDot","rangeChar","range","groupName","init_regex","javascript","init_javascript","abap","init_abap","abnf","coreRules","init_abnf","actionscript","init_actionscript","ada","init_ada","agda","init_agda","al","init_al","antlr4","init_antlr4","apacheconf","init_apacheconf","sql","init_sql","apex","keywords","className","insertClassName","classNameInside","init_apex","apl","init_apl","applescript","init_applescript","aql","init_aql","init_c","cpp","keyword","modName","init_cpp","arduino","init_arduino","arff","init_arff","armasm","init_armasm","bash","envVars","commandAfterHeredoc","insideString","toBeCopied","init_bash","yaml","anchorOrAlias","tag","plainKey","createValuePattern","init_yaml","markdown","inner","createInline","tableCell","tableRow","tableLine","walkTokens","l","codeLang","codeBlock","cls","ele","init_markdown","arturo","createLanguageString","init_arturo","asciidoc","copyFromAsciiDoc","init_asciidoc","csharp","replace","replacements","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","generic","nestedRound","genericName","identifier","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolation","interpolationRound","init_csharp","aspnet","init_aspnet","asm6502","init_asm6502","asmatmel","init_asmatmel","autohotkey","init_autohotkey","autoit","init_autoit","avisynth","types","internals","filters","allinternals","init_avisynth","avroIdl","init_avro_idl","awk","init_awk","basic","init_basic","batch","variable","parameter","init_batch","bbcode","init_bbcode","bbj","init_bbj","bicep","init_bicep","birb","init_birb","bison","init_bison","bnf","init_bnf","bqn","init_bqn","brainfuck","init_brainfuck","brightscript","init_brightscript","bro","init_bro","bsl","init_bsl","cfscript","init_cfscript","chaiscript","init_chaiscript","cil","init_cil","cilkc","init_cilkc","cilkcpp","init_cilkcpp","clojure","init_clojure","cmake","init_cmake","cobol","init_cobol","coffeescript","init_coffeescript","concurnas","init_concurnas","csp","source","init_csp","cooklang","single_token_suffix","multi_token_infix","multi_token_suffix","multi_token","timer_units","amount_group_impl","init_cooklang","coq","commentSource","init_coq","ruby","percentExpression","symbolName","init_ruby","crystal","init_crystal","cssExtras","selectorInside","unit","init_css_extras","csv","init_csv","cue","stringEscape","stringTypes","stringLiteral","init_cue","cypher","init_cypher","d","init_d","dart","packagePrefix","init_dart","dataweave","init_dataweave","dax","init_dax","dhall","init_dhall","PREFIXES","init_diff","markupTemplating","getPlaceholder","placeholderPattern","replaceFilter","tokenStack","placeholder","t","s","middle","replacement","init_markup_templating","django","init_django","dnsZoneFile","init_dns_zone_file","docker","spaceAfterBackSlash","option","stringRule","commentRule","init_docker","dot","ID","IDInside","withID","init_dot","ebnf","init_ebnf","editorconfig","init_editorconfig","eiffel","init_eiffel","ejs","ejsPattern","init_ejs","elixir","init_elixir","elm","init_elm","lua","init_lua","etlua","init_etlua","erb","erbPattern","init_erb","erlang","init_erlang","excelFormula","init_excel_formula","fsharp","init_fsharp","factor","comment_inside","string_inside","arrToWordsRegExp","builtins","combinators","init_factor","$false","init_false","firestoreSecurityRules","init_firestore_security_rules","flow","init_flow","fortran","init_fortran","ftl","FTL_EXPR","init_ftl","gml","init_gml","gap","init_gap","gcode","init_gcode","gdscript","init_gdscript","gedcom","init_gedcom","gettext","init_gettext","gherkin","init_gherkin","git","init_git","glsl","init_glsl","gn","init_gn","linkerScript","init_linker_script","go","init_go","goModule","init_go_module","gradle","init_gradle","graphql","validTokens","currentIndex","getToken","isTokenType","findClosingBracket","open","close","stackHeight","addAlias","aliases","startToken","inputVariables","definitionEnd","mutationEnd","varToken","init_graphql","groovy","init_groovy","less","init_less","scss","init_scss","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","init_textile","haml","filter_pattern","all_filters","filter","init_haml","handlebars","handlebarsPattern","init_handlebars","haskell","init_haskell","haxe","init_haxe","hcl","init_hcl","hlsl","init_hlsl","hoon","init_hoon","hpkp","init_hpkp","hsts","init_hsts","json","init_json","uri","init_uri","http","headerValueOf","langs","httpLanguages","suffixTypes","getSuffixPattern","contentType","suffix","suffixPattern","init_http","ichigojam","init_ichigojam","icon","init_icon","icuMessageFormat","level","stringPattern","argumentSource","nestedMessage","init_icu_message_format","idris","init_idris","ignore","init_ignore","inform7","init_inform7","ini","init_ini","io","init_io","init_j","java","classNamePrefix","init_java","php","constant","operator","punctuation","string_interpolation","phpPattern","init_php","javadoclike","javaDocLike","docCommentSupport","tokenName","addSupport","docLanguage","init_javadoclike","scala","init_scala","javadoc","codeLinePattern","memberReference","init_javadoc","javastacktrace","init_javastacktrace","jexl","init_jexl","jolie","init_jolie","jq","stringInterpolation","init_jq","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","counter","tokenizeWithHooks","tokenizeInterpolationExpression","expression","tempGrammar","args","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedCode","interpolationExpression","embeddedTokens","placeholders","afterTokens","supportedLanguages","findTemplateStrings","embedded","stringContent","init_js_templates","typescript","init_typescript","jsdoc","parameterPrefix","init_jsdoc","n4js","init_n4js","jsExtras","withId","maybeClassNameTokens","init_js_extras","json5","init_json5","jsonp","init_jsonp","jsstacktrace","init_jsstacktrace","julia","init_julia","keepalived","init_keepalived","keyman","init_keyman","kotlin","interpolationInside","init_kotlin","kumir","nonId","wrapId","init_kumir","kusto","init_kusto","latex","funcPattern","insideEqu","init_latex","latte","markupLatte","lattePattern","init_latte","scheme","SortedBNF","init_scheme","lilypond","schemeExpression","recursivenessLog2","init_lilypond","liquid","liquidPattern","insideRaw","tagMatch","init_liquid","lisp","simple_form","primitive","symbol","marker","par","endpar","nestedPar","arg","forms","arglist","init_lisp","livescript","init_livescript","llvm","init_llvm","log","init_log","lolcode","init_lolcode","magma","init_magma","makefile","init_makefile","mata","orgType","init_mata","matlab","init_matlab","maxscript","init_maxscript","mel","init_mel","mermaid","init_mermaid","metafont","init_metafont","mizar","init_mizar","mongodb","operators","builtinFunctions","operatorsSource","init_mongodb","monkey","init_monkey","moonscript","init_moonscript","n1ql","init_n1ql","nand2tetrisHdl","init_nand2tetris_hdl","naniscript","expressionDef","params","getTextContent","isBracketsBalanced","brackets","stack","bracket","bracketsIndex","init_naniscript","nasm","init_nasm","neon","init_neon","nevod","init_nevod","nginx","init_nginx","nim","init_nim","nix","init_nix","nsis","init_nsis","objectivec","init_objectivec","ocaml","init_ocaml","odin","escapes","init_odin","opencl","init_opencl","openqasm","init_openqasm","oz","init_oz","parigp","init_parigp","parser","init_parser","pascal","init_pascal","pascaligo","braces","accum","init_pascaligo","psl","init_psl","pcaxis","init_pcaxis","peoplecode","init_peoplecode","perl","init_perl","phpdoc","init_phpdoc","phpExtras","init_php_extras","plantUml","arrowAttr","arrowDirection","arrowBody","arrowLeft","arrowRight","arrowPrefix","arrowSuffix","arrow","init_plant_uml","plsql","init_plsql","powerquery","init_powerquery","powershell","init_powershell","processing","init_processing","prolog","init_prolog","promql","aggregations","vectorMatching","offsetModifier","init_promql","init_properties","protobuf","builtinTypes","init_protobuf","stylus","init_stylus","twig","init_twig","pug","init_pug","puppet","init_puppet","pure","inlineLanguages","inlineLanguageRe","init_pure","purebasic","init_purebasic","purescript","init_purescript","python","init_python","qsharp","qualifiedName","interpolationExpr","init_qsharp","q","init_q","qml","jsString","jsComment","jsExpr","init_qml","qore","init_qore","r","init_r","racket","init_racket","cshtml","commentLike","stringLike","round","square","curly","angle","inlineCs","tagAttrInlineCs","tagAttrValue","tagAttrs","tagContent","tagRegion","csharpWithHtml","cs","inlineValue","init_cshtml","jsx","spread","stringifyToken","openedTags","notTagNorBrace","plainText","init_jsx","tsx","init_tsx","init_reason","rego","init_rego","renpy","init_renpy","rescript","init_rescript","init_rest","rip","init_rip","roboconf","init_roboconf","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","init_robotframework","rust","multilineComment","init_rust","sas","numericConstant","macroVariable","macroKeyword","step","func","format","altformat","globalStatements","submitStatement","actionSets","casActions","init_sas","sass","init_sass","shellSession","strings","init_shell_session","smali","init_smali","smalltalk","init_smalltalk","smarty","smartyPattern","smartyLiteralStart","smartyLiteralEnd","smartyLiteralMode","init_smarty","sml","init_sml","solidity","init_solidity","solutionFile","guid","init_solution_file","soy","numberPattern","soyPattern","soyLitteralStart","soyLitteralEnd","soyLitteralMode","init_soy","turtle","init_turtle","sparql","init_sparql","splunkSpl","init_splunk_spl","sqf","init_sqf","squirrel","init_squirrel","stan","higherOrderFunctions","init_stan","stata","init_stata","iecst","init_iecst","supercollider","init_supercollider","swift","rule","init_swift","systemd","quotesSource","init_systemd","t4Templating","createBlock","contentAlias","createT4","insideLang","init_t4_templating","t4Cs","init_t4_cs","vbnet","init_vbnet","t4Vb","init_t4_vb","tap","init_tap","tcl","init_tcl","tt2","tt2Pattern","init_tt2","toml","insertKey","init_toml","tremor","init_tremor","typoscript","init_typoscript","unrealscript","init_unrealscript","uorazor","init_uorazor","init_v","vala","init_vala","velocity","init_velocity","verilog","init_verilog","vhdl","init_vhdl","vim","init_vim","visualBasic","init_visual_basic","warpscript","init_warpscript","wasm","init_wasm","webIdl","init_web_idl","wgsl","init_wgsl","wiki","init_wiki","wolfram","init_wolfram","wren","init_wren","xeora","init_xeora","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","init_xml_doc","xojo","init_xojo","xquery","init_xquery","yang","init_yang","zig","literal","IDENTIFIER","ALIGN","PREFIX_TYPE_OP","SUFFIX_EXPR","TYPE","init_zig","init_all","require_interopRequireDefault","_interopRequireDefault","require_coy","require_dark","require_funky","require_okaidia","require_solarizedlight","require_tomorrow","require_twilight","require_prism","require_a11y_dark","require_atom_dark","require_base16_ateliersulphurpool_light","require_cb","require_coldark_cold","require_coldark_dark","require_coy_without_shadows","require_darcula","require_dracula","require_duotone_dark","require_duotone_earth","require_duotone_forest","require_duotone_light","require_duotone_sea","require_duotone_space","require_ghcolors","require_gruvbox_dark","require_gruvbox_light","require_holi_theme","require_hopscotch","require_lucario","require_material_dark","require_material_light","require_material_oceanic","require_night_owl","require_nord","require_one_dark","require_one_light","require_pojoaque","require_shades_of_purple","require_solarized_dark_atom","require_synthwave84","require_vs","require_vsc_dark_plus","require_xonokai","require_z_touch","_a11yDark","_atomDark","_base16Ateliersulphurpool","_cb","_coldarkCold","_coldarkDark","_coy","_coyWithoutShadows","_darcula","_dark","_dracula","_duotoneDark","_duotoneEarth","_duotoneForest","_duotoneLight","_duotoneSea","_duotoneSpace","_funky","_ghcolors","_gruvboxDark","_gruvboxLight","_holiTheme","_hopscotch","_lucario","_materialDark","_materialLight","_materialOceanic","_nightOwl","_nord","_okaidia","_oneDark","_oneLight","_pojoaque","_prism","_shadesOfPurple","_solarizedDarkAtom","_solarizedlight","_synthwave","_tomorrow","_twilight","_vs","_vscDarkPlus","_xonokai","_zTouch","cn","inputs","twMerge","clsx","alertVariants","cva","Alert","qu","variant","ref","AlertTitle","AlertDescription","badgeVariants","Badge","buttonVariants","Button","Sh","size","asChild","Slot","Card","CardHeader","CardContent","CardTitle","Checkbox","kh","Check","Dialog","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","Ho","DialogContent","hideCloseButton","jsxs","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","DropdownMenu","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","Fr","inset","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","Input","vh","labelVariants","Label","Th","Popover","PopoverTrigger","PopoverContent","Nh","align","Progress","Rh","ScrollArea","$m","ScrollBar","orientation","Select","SelectGroup","SelectValue","SelectTrigger","fn","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","SelectLabel","SelectItem","SelectSeparator","Separator","Dh","decorative","Slider","Mh","Switch","Fh","Table","$r","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","Tabs","TabsList","Ju","TabsTrigger","TabsContent","Textarea","Bh","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","zh","ImageWithFallback","fallbackSrc","hideOnError","onError","e","LoginPage","apiEndpoint","logoSrc","fallbackLogoSrc","appTitle","subtitle","showLanguageSelector","showPoweredBy","poweredByLogo","poweredByText","onLoginSuccess","onLoginError","customStyles","navigate","username","setUsername","useState","password","setPassword","loading","setLoading","setError","handleSubmit","response","data","errorMsg","AlertCircle","Globe","checkAuth","authEndpoint","storeAuthState","authenticated","ProtectedRoute","loginPath","loadingComponent","isAuthenticated","setIsAuthenticated","checkComplete","setCheckComplete","useEffect","Fragment","Navigate","variantConfig","Play","Pause","Trash2","ConfirmDialog","onOpenChange","title","description","confirmLabel","cancelLabel","onConfirm","onCancel","config","Icon","handleCancel","handleConfirm","useConfirmDialog","state","setState","confirm","resolve","prev","dialogProps","defaultCategories","Terminal","Archive","defaultLevelBadgeColors","EMPTY_LOGS","EMPTY_LOG_FILES","LogViewer","externalLogs","externalLogFiles","onFetchLogs","onFetchArchives","onClearLogs","onExportLogs","onDownloadArchive","onDeleteArchive","onLogReceived","autoRefreshMs","maxEntries","defaultCategory","enableLiveUpdates","enableAutoScroll","autoScrollDefault","newestFirst","enableSearch","enableFilter","enableExport","enableClear","enableCopy","categories","levelBadgeColors","currentLogLevel","mode","showHeader","showCategories","showArchives","height","logs","setLogs","filteredLogs","setFilteredLogs","logFiles","setLogFiles","effectiveCategory","activeCategory","setActiveCategory","searchTerm","setSearchTerm","levelFilter","setLevelFilter","categoryFilter","setCategoryFilter","availableCategories","setAvailableCategories","autoRefreshRef","useRef","autoRefreshOn","setAutoRefreshOn","autoScroll","setAutoScroll","virtuosoRef","deleteDialogOpen","setDeleteDialogOpen","archiveToDelete","setArchiveToDelete","archiveSortField","setArchiveSortField","archiveSortOrder","setArchiveSortOrder","LevelChip","normalizeLog","timestamp","message","category","metadata","tsMatch","levelMatch","sourceMatch","msgMatch","finalTimestamp","enforceMax","entries","coalesceStackTraces","out","normalized","sorted","a","b","cats","filtered","fetched","archivesFetchedRef","cancelled","fetchedLogs","archives","raw","currentLogs","last","merged","entry","handleDeleteLogs","toast","handleExportLogs","ts","formatTimestamp","blob","url","handleCopyLogs","date","formatFileSize","bytes","stripAnsiCodes","renderLogEntry","sortedArchives","aFilename","bFilename","comparison","handleArchiveSort","field","SortIcon","ArrowUpDown","ArrowUp","ArrowDown","handleDeleteArchive","f","filteredCategories","shouldShowSidebar","RefreshCw","CopyIcon","Download","file","filename","cat","Search","Virtuoso","ApiError","status","details","getApiBaseUrl","apiRequest","endpoint","timeout","retries","retryDelay","fetchOptions","headers","controller","timeoutId","lastError","attempt","apiResponse","LogsPage","apiUrl","eyebrow","compactAfterDays","viewerClassName","setArchives","stats","setStats","maintenanceAction","setMaintenanceAction","fetchLogs","useCallback","fetchArchives","normalizedFiles","fetchStats","nextStats","refreshSupportData","runMaintenanceAction","action","body","successFallback","newestArchiveLabel","useMemo","TerminalSquare","Database","anchor","RestartBanner","show","onRestart","onDismiss","isVisible","setIsVisible","isAnimating","setIsAnimating","SettingsPage","initialValues","saving","onSave","onReset","showRestartBanner","setValues","errors","setErrors","showPasswords","setShowPasswords","isDirty","setIsDirty","handleChange","setting","handleSave","newErrors","hasErrors","handleReset","activeSettings","renderSettingInput","EyeOff","Eye","RotateCcw","Save","ConnectionStatus","checkInterval","connected","setConnected","checking","setChecking","hasInitialized","mounted","checkConnection","interval","statusColor","statusText","tooltipContent","SocketManager","socket","socketManager","useSocketIO","autoConnect","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","transports","auth","query","otherOptions","socketRef","eventHandlers","reconnectCountRef","transport","_reason","attemptNumber","_attemptNumber","handlers","event","handler","emit","on","off","once","connect","disconnect","reconnect","actions","ConnectionLostOverlay","isConnected","appName","onRetry","showOverlay","setShowOverlay","retryCount","setRetryCount","isRetrying","setIsRetrying","retryTimeoutRef","showTimeoutRef","handleRetry","handleManualRetry","handleRefreshPage","Loader2","AlertTriangle","ConnectionOverlay","retryAttempts","setRetryAttempts","timer","ConnectionStatusBanner","connecting","apiReady","TEST_SCENARIOS","WifiOff","Clock","Zap","Activity","TestModeIndicator","showSettings","setShowSettings","testModeEnabled","setTestModeEnabled","activeScenarios","setActiveScenarios","testMode","scenarios","handleTestModeToggle","enabled","handleScenarioToggle","scenarioId","saveSettings","resetSettings","scenario","Settings","isActive","ConnectionIndicator","connectionTime","setConnectionTime","uptime","setUptime","hours","minutes","seconds","getStatusColor","getStatusText","getStatusIcon","Wifi","React","Server","DeviceIcon","iconProps","Gauge","Sun","Battery","Thermometer","Cpu","DogEarBadge","color","sizeClasses","iconSizes","colorGradients","EmptyState","resolveDescription","AppCrashFallback","reloadLabel","onReload","detail","handleReload","NoTemplatesFound","onCreate","FileText","Plus","NoSearchResults","onClearFilters","NoSimulatorsRunning","onNavigateToTemplates","EmptyStates","LoadingState","CardSkeleton","TableSkeleton","rows","HelpTooltip","side","iconClassName","iconSize","HelpCircle","NetworkInterfaceSelect","onChange","disabled","showRefresh","showNetworkInfo","interfaces","setInterfaces","networkInfo","setNetworkInfo","fetchInterfaces","interfacesList","getIcon","interfaceName","Home","selectedInterface","iface","nameRe","nameReJsx","emptyOptions","thing","empty","import_style_to_js","pointEnd","pointStart","stringifyPosition","VFileMessage","causeOrReason","optionsOrParentOrPlace","origin","legacyCause","parent","own","emptyMap","tableElements","tableCellElement","docs","toJsxRuntime","tree","filePath","developmentCreate","productionCreate","one","mdxExpression","mdxJsxElement","mdxEsm","parentSchema","findComponentFromName","createElementProps","createChildren","addNode","addChildren","crashEstree","createJsxElementProps","jsxDEV","isStaticChildren","alignValue","createProperty","objectExpression","countsByName","parseStyle","transformStylesToCssCasing","styleToJs","cause","allowExpression","identifiers","place","domCasing","cssCasing","transformStyleToCssCasing","toDash","urlAttributes","toString","includeImageAlt","includeHtml","all","splice","remove","items","chunkStart","parameters","push","hasOwnProperty","combineExtensions","extensions","syntaxExtension","extension","hook","left","right","constructs","existing","decodeNumericCharacterReference","base","normalizeIdentifier","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","asciiControl","asciiDigit","asciiHexDigit","asciiPunctuation","markdownLineEnding","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","normalizeUri","skip","factorySpace","effects","ok","max","limit","initializeContent","contentStart","afterContentStartConstruct","paragraphInitial","lineStart","document","initializeDocument","containerConstruct","tokenizeContainer","self","continued","childFlow","childToken","lineStartOffset","documentContinue","checkNewContainers","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","flowStart","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flowContinue","writeToChild","endOfFile","stream","seen","nok","classifyCharacter","resolveAll","events","context","called","attention","resolveAllAttention","tokenizeAttention","group","openingSequence","closingSequence","use","nextEvents","movePoint","attentionMarkers","autolink","tokenizeAutolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","blankLine","tokenizeBlankLine","blockQuote","tokenizeBlockQuoteContinuation","exit","tokenizeBlockQuoteStart","contStart","contBefore","characterEscape","tokenizeCharacterEscape","tokenizeCharacterReference","numeric","nonLazyContinuation","tokenizeNonLazyContinuation","codeFenced","tokenizeCodeFenced","closeStart","tokenizeCloseStart","initialPrefix","sizeOpen","beforeSequenceOpen","sequenceOpen","infoBefore","atNonLazyBreak","metaBefore","meta","contentBefore","beforeContentChunk","contentChunk","startBefore","beforeSequenceClose","sequenceClose","sequenceCloseAfter","codeIndented","tokenizeCodeIndented","furtherStart","tokenizeFurtherStart","afterPrefix","atBreak","codeText","resolveCodeText","tokenizeCodeText","tailExitIndex","headEnterIndex","enter","between","SpliceBuffer","initial","stop","deleteCount","removed","chunkedPush","n","subtokenize","eventsArray","jumps","lineIndex","otherIndex","otherEvent","subevents","more","subcontent","eventIndex","startPosition","startPositions","tokenizer","childEvents","gaps","current","breaks","slice","resolveContent","tokenizeContent","continuationConstruct","tokenizeContinuation","chunkInside","contentEnd","contentContinue","startLookahead","prefixed","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","enclosedBefore","enclosed","enclosedEscape","rawEscape","factoryLabel","markerType","labelInside","labelEscape","factoryTitle","factoryWhitespace","tokenizeDefinition","titleBefore","tokenizeTitleBefore","labelAfter","markerAfter","destinationBefore","destinationAfter","afterWhitespace","beforeMarker","titleAfter","titleAfterOptionalWhitespace","hardBreakEscape","tokenizeHardBreakEscape","headingAtx","resolveHeadingAtx","tokenizeHeadingAtx","sequenceFurther","htmlBlockNames","htmlRawNames","htmlFlow","resolveToHtmlFlow","tokenizeHtmlFlow","blankLineBefore","tokenizeBlankLineBefore","nonLazyContinuationStart","tokenizeNonLazyContinuationStart","closingTag","buffer","markerB","declarationOpen","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","continuation","slash","basicSelfClosing","completeClosingTagAfter","completeAttributeNameBefore","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCdataInside","continuationAfter","continuationStart","continuationStartNonLazy","continuationBefore","continuationRawEndTag","htmlText","tokenizeHtmlText","returnState","instruction","tagOpen","commentEnd","commentClose","lineEndingBefore","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","lineEndingAfter","lineEndingAfterPrefix","labelEnd","resolveAllLabelEnd","resolveToLabelEnd","tokenizeLabelEnd","resourceConstruct","tokenizeResource","referenceFullConstruct","tokenizeReferenceFull","referenceCollapsedConstruct","tokenizeReferenceCollapsed","newEvents","media","label","labelStart","defined","labelEndNok","labelEndOk","referenceNotFull","resourceStart","resourceBefore","resourceOpen","resourceEnd","resourceDestinationAfter","resourceDestinationMissing","resourceBetween","resourceTitleAfter","referenceFull","referenceFullAfter","referenceFullMissing","referenceCollapsedStart","referenceCollapsedOpen","labelStartImage","tokenizeLabelStartImage","labelStartLink","tokenizeLabelStartLink","lineEnding","tokenizeLineEnding","thematicBreak","tokenizeThematicBreak","sequence","tokenizeListContinuation","tokenizeListEnd","tokenizeListStart","listItemPrefixWhitespaceConstruct","tokenizeListItemPrefixWhitespace","indentConstruct","tokenizeIndent","initialSize","kind","atMarker","onBlank","endOfPrefix","otherPrefix","notBlank","notInCurrentItem","setextUnderline","resolveToSetextUnderline","tokenizeSetextUnderline","heading","paragraph","initializeFlow","atBlankEnding","afterConstruct","resolver","createResolver","initializeFactory","resolveAllLineSuffixes","initializeText","notText","extraResolver","resolveAllText","chunks","bufferIndex","tabs","chunk","constructs_exports","contentInitial","disable","flowInitial","insideSpan","createTokenizer","initialize","columnStart","resolveAllConstructs","constructFactory","onsuccessfulconstruct","onsuccessfulcheck","consume","defineSkip","sliceSerialize","sliceStream","write","main","addResult","expandTabs","serializeChunks","sliceChunks","_bufferIndex","_index","accountForPotentialSkip","chunkIndex","fields","construct","onreturn","bogusState","listOfConstructs","constructIndex","currentConstruct","handleListOfConstructs","handleMapOfConstructs","handleConstruct","store","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","restore","startIndex","startBufferIndex","endIndex","endBufferIndex","view","atTab","creator","postprocess","preprocess","atCarriageReturn","preprocessor","encoding","endPosition","characterEscapeOrReference","decodeString","decode","$1","$2","hex","fromMarkdown","compiler","opener","link","onenterdata","codeFlow","emphasis","hardBreak","image","listItem","onenterlistitemvalue","onenterlistordered","onenterreference","strong","closer","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","onexitdata","onexitcharacterreferencemarker","onexitcharacterreferencevalue","onexitcharacterreference","onexitcodefenced","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","onexitresource","onexitsetextheading","onexitsetextheadinglinesequence","onexitsetextheadingtext","configure","compile","resume","listStack","prepareList","defaultOnError","containerBalance","listSpread","firstBlankLineIndex","tailIndex","tailEvent","and","errorHandler","onExitError","ancestor","depth","siblings","referenceType","fragment","combined","remarkParse","doc","blockquote","strikethrough","footnoteReference","clobberPrefix","safeId","reuseCounter","sup","revert","subtype","contents","imageReference","inlineCode","linkReference","results","loose","listLoose","listItemLoose","table","firstRow","tableContent","cellIndex","cells","cell","trimLines","trimLine","deserializer","$","as","unpair","object","set","deserialize","serialized","EMPTY","typeOf","asString","shouldSkip","serializer","strict","pair","serialize","lossy","esm_default","any","defaultFootnoteBackContent","rereferenceIndex","defaultFootnoteBackLabel","referenceIndex","footer","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","listItems","backReferences","counts","tailTail","convert","castFactory","anyFactory","propsFactory","typeFactory","tests","checkAsRecord","nodeAsRecord","testFunction","looksLikeANode","CONTINUE","EXIT","SKIP","visitParents","visitor","reverse","is","factory","parents","visit","subresult","grandparents","toResult","nodeAsParent","testOrVisitor","visitorOrReverse","maybeReverse","overload","createState","definitionById","footnoteById","footnoteCounts","applyData","patch","wrap","handle","shallow","defaultUnknownHandler","trimMarkdownSpaceStart","hName","hChildren","hProperties","toHast","foot","remarkRehype","destination","hastTree","bail","import_extend","prototype","trough","fns","pipeline","run","middlewareIndex","middelware","middleware","fnExpectsCallback","done","exception","then","minpath","basename","dirname","extname","join","path","assertPath","seenNonSlash","firstNonSlashEnd","extnameIndex","unmatchedSlash","startPart","startDot","preDotState","segments","joined","absolute","normalizeString","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","minproc","cwd","isUrl","fileUrlOrPath","urlToPath","getPathFromURLPosix","pathname","third","order","VFile","isUint8Array","assertNonEmpty","assertPart","stem","part","CallableInstance","proto","apply","Processor","_Processor","attacher","assertUnfrozen","transformer","realFile","vfile","assertParser","assertCompiler","executor","reject","parseTree","realDone","compileTree","compileResult","looksLikeAValue","complete","assertDone","assertNode","transformers","outputTree","resultingTree","attachers","namespace","addPlugin","addList","addPreset","add","plugin","plugins","entryIndex","primary","currentPrimary","unified","frozen","asyncName","looksLikeAVFile","changelog","emptyPlugins","emptyRemarkRehypeOptions","safeProtocol","deprecations","Markdown","processor","createProcessor","createFile","post","rehypePlugins","remarkPlugins","remarkRehypeOptions","allowedElements","allowElement","components","disallowedElements","skipHtml","unwrapDisallowed","urlTransform","defaultUrlTransform","deprecation","transform","colon","questionMark","numberSign","ccount","escapeStringRegexp","findAndReplace","ignored","pairs","toPairs","pairIndex","grandparent","change","matchObject","tupleOrList","toExpression","toFunction","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","transformGfmAutolinkLiterals","enterLiteralAutolink","enterLiteralAutolinkValue","exitLiteralAutolink","exitLiteralAutolinkEmail","exitLiteralAutolinkHttp","exitLiteralAutolinkWww","gfmAutolinkLiteralToMarkdown","findUrl","findEmail","protocol","domain","isCorrectDomain","parts","splitUrl","atext","trailExec","trail","closingParenIndex","openingParens","closingParens","email","footnoteReferencePeek","enterFootnoteCallString","enterFootnoteCall","enterFootnoteDefinitionLabelString","enterFootnoteDefinition","exitFootnoteCallString","exitFootnoteCall","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","tracker","subexit","gfmFootnoteFromMarkdown","gfmFootnoteToMarkdown","firstLineBlank","footnoteDefinition","mapAll","mapExceptFirst","blank","constructsWithoutStrikethrough","handleDelete","peekDelete","gfmStrikethroughFromMarkdown","enterStrikethrough","exitStrikethrough","gfmStrikethroughToMarkdown","defaultStringLength","markdownTable","stringLength","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row","sizes","columnIndex","toAlignment","patternInScope","listInScope","none","_1","longestStreak","substring","expected","formatCodeAsIndented","checkFence","checkQuote","quote","checkEmphasis","encodeCharacterReference","encodeInfo","outside","outsideKind","insideKind","emphasisPeek","betweenHead","betweenTail","formatHeadingAsSetext","literalWithBreak","rank","htmlPeek","imagePeek","imageReferencePeek","alt","inlineCodePeek","formatLinkAsAutolink","linkPeek","linkReferencePeek","checkBullet","checkBulletOther","bullet","bulletOther","checkBulletOrdered","checkRule","bulletCurrent","useDifferentMarker","firstListItem","checkListItemIndent","listItemIndent","phrasing","checkStrong","strongPeek","checkRuleRepetition","repetition","gfmTableFromMarkdown","enterTable","enterCell","enterRow","exitCodeText","exitTable","gfmTableToMarkdown","padding","alignDelimiters","around","inlineCodeWithTable","handleTable","handleTableCell","handleTableRow","serializeData","handleTableAsData","handleTableRowAsData","matrix","gfmTaskListItemFromMarkdown","exitCheck","exitParagraphWithTaskListItem","gfmTaskListItemToMarkdown","listItemWithTaskListItem","firstParaghraph","sibling","checkable","checkbox","gfmFromMarkdown","gfmToMarkdown","wwwPrefix","tokenizeWwwPrefix","tokenizeDomain","tokenizePath","tokenizeTrail","emailDomainDotTrail","tokenizeEmailDomainDotTrail","wwwAutolink","tokenizeWwwAutolink","previousWww","protocolAutolink","tokenizeProtocolAutolink","previousProtocol","emailAutolink","tokenizeEmailAutolink","previousEmail","gfmAutolinkLiteral","gfmAtext","previousUnbalanced","emailDomain","emailDomainAfter","emailDomainDot","wwwStart","wwwAfter","protocolStart","protocolPrefixInside","protocolSlashesInside","afterProtocol","protocolAfter","wwwPrefixInside","wwwPrefixAfter","underscoreInLastSegment","underscoreInLastLastSegment","domainInside","domainAfter","domainAtPunctuation","sizeClose","pathInside","pathAtPunctuation","trailCharacterReferenceStart","trailBracketAfter","trailCharacterReferenceInside","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","call","callStart","callData","callEscape","labelAtMarker","whitespaceAfter","gfmStrikethrough","single","tokenizeStrikethrough","resolveAllStrikethrough","EditMap","addImplementation","vecs","editMap","at","gfmTableAlign","inDelimiterRow","alignIndex","gfmTable","tokenizeTable","resolveTable","sizeB","bodyRowStart","headRowBefore","headRowStart","headRowBreak","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","currentTable","currentBody","currentCell","flushTableEnd","flushCell","rowEnd","previousCell","valueName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","tasklistCheck","tokenizeTasklistCheck","gfmTaskListItem","spaceThenNonSpace","gfm","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","_objectWithoutPropertiesLoose","_objectWithoutProperties","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_toConsumableArray","_typeof","toPrimitive","toPropertyKey","_defineProperty","_extends","ownKeys","_objectSpread","powerSetPermutations","arrLength","classNameCombinations","getClassNameCombinations","classNames","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","createClassNameString","useInlineStyles","childrenCount","createElement","_ref","_ref$style","TagName","childrenCreator","allStylesheetSelectors","classes","startingClassName","checkForListedLanguage_default","astGenerator","_excluded","newLineRegex","getNewLines","getAllLineNumbers","startingLineNumber","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","_ref2$numberStyle","numberStyle","getEmWidthOfNumber","num","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","defaultLineNumberStyle","customLineNumberStyle","assembledStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","_ref3$wrapLines","wrapLines","flattenCodeTree","newTree","_node$properties","processLines","codeTree","_ref4","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","newLines","splitValue","newChild","_children","_line","stringChild","lastLineInPreviousSpan","newElem","_children2","_line2","_children3","_line3","defaultRenderer","_ref5","isHighlightJs","getCodeTree","_ref6","defaultCodeValue","hasLanguage","highlight_default","defaultAstGenerator","defaultStyle","_ref7","_code$match$length","_code$match","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","generatorClassName","preProps","lineBreakCount","supported_languages_default","prism_default","highlighter","import_prism","MarkdownViewer","showCopyButton","copiedCode","setCopiedCode","copyToClipboard","inline","Copy","href","MarkdownCard","MarkdownScrollArea","TruncatedText","maxWidth","tooltipSide","textRef","isTruncated","setIsTruncated","checkTruncation","resizeObserver","TAG_COLORS","ColorPalette","columns","isSelected","getRandomTagColor","getNextTagColor","currentColor","nextIndex","getNextAvailableColor","usedColors","usedSet","colorCounts","u","useDebounce","delay","debouncedValue","setDebouncedValue","PathTypeahead","onValidPath","projectId","browseUrl","suggestions","setSuggestions","showSuggestions","setShowSuggestions","selectedIndex","setSelectedIndex","expandedPath","setExpandedPath","isLoading","setIsLoading","inputRef","suggestionsRef","fetchControllerRef","shouldMaintainFocusRef","isNavigatingRef","fetchSuggestions","searchPath","showImmediately","res","suggestionList","useLayoutEffect","selectedElement","handleClickOutside","previewSuggestion","handleKeyDown","hasSuggestions","newIndex","selectSuggestion","commonPrefix","findCommonPrefix","suggestion","newValue","isDir","handleSuggestionMouseDown","handleInputChange","handleInputFocus","handleInputBlur","relatedTarget","File","Folder","highlightMatch","paths","queryParts","lastPart","matchIndex","absoluteMatchStart","absoluteMatchEnd","ResizableDialog","titleExtra","defaultWidth","defaultHeight","minWidth","minHeight","onFullscreenChange","isFullscreen","setIsFullscreen","setPosition","setSize","isInteracting","setIsInteracting","dialogRef","interactionRef","constrainedWidth","constrainedHeight","centerX","centerY","handleDragStart","handleResizeStart","direction","handleMouseMove","dialog","deltaX","deltaY","newX","newY","newWidth","newHeight","widthDelta","heightDelta","handleMouseUp","rect","toggleFullscreen","dialogStyle","GripVertical","Minimize2","Maximize2","ContextMenu","onClose","menuRef","adjustedPosition","setAdjustedPosition","viewportWidth","viewportHeight","handleScroll","handleClick","variantStyles","ContextMenuItem","onClick","onMouseEnter","ContextMenuSeparator","ContextMenuSubmenu","onOpen","externalIsOpen","internalIsOpen","setInternalIsOpen","isControlled","isOpen","handleMouseEnter","handleMouseLeave","one_dark_default","one_light_default","getLanguageFromFilename","ext","useIsDarkMode","CodeViewer","highlightLines","showFilename","autoScrollToHighlight","isDark","detectedLanguage","containerRef","hasScrolledRef","highlightSet","scrollToHighlight","container","preElement","codeElement","targetLine","lineHeight","scrollTarget","CodeSnippet","defaultFooterHint","AppCommandPalette","pendingId","onRunAction","emptyLabel","closeLabel","dialogTestId","maxWidthClassName","groupOrder","footerHint","orderedGroups","encounteredGroups","allGroups","ungroupedItems","groupedItems","runItem","Command","groupItems","formatRelativeTime","days","weeks","months","years","formatDateTime","dateObj","formatDuration","remainingMinutes","remainingHours","formatShortRelativeTime","formatBytes","formatNumber","formatDurationMs","ms","hashString","hash","char","getTagColor","getTagClassName","timeAgo","past","formatTimeAgo","checkApiReadiness","waitForApiReady","maxAttempts","initialDelay","maxDelay","attempts","readiness","useApiReadiness","ready","browserLogLevels","levelWeights","resolveIsDevelopment","resolveDefaultLevel","normalizeScope","scope","trimmed","joinScope","parentScope","childScope","segment","formatEntry","writeToConsole","formatted","BrowserLoggerImpl","_BrowserLoggerImpl","createBrowserLogger","createScopedBrowserLogger","browserLogger","isEqual","keysA","keysB","useFormState","defaultValues","validateChanges","isSaving","setIsSaving","initialValuesRef","saveTimeoutRef","hasChanges","setFieldValue","save","timeoutPromise","reset","resetToDefaults","AppLayout","appVersion","navigation","headerActions","logoClassName","logoOffset","headerHeight","showLogout","onLogout","connectionStatusUrl","primaryColor","navLayout","navActiveStyle","headerClassName","navClassName","headerActionsClassName","location","routerLocation","useRouterLocation","mobileMenuOpen","setMobileMenuOpen","handleLogout","isInline","isPill","getNavLinkClasses","getMobileLinkClasses","renderNavLinks","mobile","Link","LogOut","Menu","SidebarLayout","sidebarWidth","toneStyles","AppFooter","leading","center","trailing","statusLabel","statusTone","statusPulse","fixed","leadingClassName","centerClassName","trailingClassName","statusClassName","statusWidthClassName","tone","showPulse","SidebarContext","SidebarProvider","defaultCollapsed","collapsible","collapsed","setCollapsed","isMobile","setIsMobile","mq","update","matches","toggle","useSidebarContext","component","useSidebar","Sidebar","width","SidebarTrigger","SidebarInset","SidebarRail","SidebarHeader","SidebarFooter","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","tooltip","effectiveVariant","SidebarMenuAction","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton","SidebarSection","SidebarSeparator","SidebarMenuBadge","SidebarAppLayout","headerContent","footerContent","matchPath","navGroups","firstItem","groups","groupKey","isReactComponent","iconObj","renderNavItem","active","renderIcon","IconComponent","statusColors","ActivityLED","animate","colors","shouldAnimate","Sparkline","strokeWidth","fill","points","min","x","y","fillPoints","RealtimeDataTable","keyField","showActivity","activityField","activityDecay","showSparkline","sparklineField","sparklineHistory","sparklineColor","showStatus","statusField","statusConfig","expandable","childrenField","defaultExpanded","_striped","hover","compact","onRowClick","_onRefresh","expandedRows","setExpandedRows","activityMap","setActivityMap","newActivityMap","activity","toggleRow","renderRow","isExpanded","hasChildren","idx","DashboardStats","gridCols","colorClasses","iconColorClasses","stat","CompactStat","trend","LogStats","total","warn","debug","fileSize","oldestEntry","newestEntry","SettingsFramework","onLoad","onValidate","onRestartRequired","showResetButton","showUndoButton","customFields","renderCategory","renderSetting","autoSave","autoSaveDelay","confirmReset","persistState","containerClassName","categoryClassName","settingClassName","maxContentWidth","setInitialValues","setSaving","restartRequired","setRestartRequired","saveError","setSaveError","getDefaultValues","defaults","loadedValues","savedCategory","dirty","validateField","validateAll","customErrors","restartSettings","handleUndo","setValue","renderField","showPassword","widthClass","CustomComponent","CustomField","Undo","settingElement","LiveLogsSettings","LogArchivesSettings","LogsSettings","noticeToneClasses","SettingsPanel","bodyClassName","hasHeader","SettingsDetailList","itemClassName","SettingsNoticePanel","SettingsActionPanel","actionLabel","onAction","actionIcon","actionVariant","actionDisabled","actionButtonProps","theme","getCSSVariables","ThemeContext","createContext","ThemeProvider","defaultMode","customColors","persistPreference","themeConfig","setThemeConfig","setIsDark","savedMode","mediaQuery","actuallyDark","isDarkMode","hsl","hexToHSL","setThemeMode","useTheme","useContext","g","ThemeToggle","showLabel","toggleTheme","Moon","Monitor","CompactThemeToggle","defaultSettingsCategories","Network","Shield","Mail","Palette","createSettingsCategory","iconName","iconMap","Bell","Users","UpdateNotification","onDownload","updateInfo","setUpdateInfo","_isChecking","setIsChecking","isDismissed","setIsDismissed","showChangelog","setShowChangelog","checkForUpdates","force","dismissedVersion","handleDismiss","handleDownload","ExternalLink","useConnectionStatus","AuthHandler","userStr","currentToken","expiresIn","refreshTime","redirectTo","authHandler","cardStyles","buttonStyles","emptyStateStyles","activityStyles","statusStyles","DEFAULT_PAGE_SIZE","PAGE_SIZE_OPTIONS","usePagination","initialPageSize","storageKey","stored","page","pageSize","totalPages","paginatedData","setPage","newPage","setPageSize","newSize","nextPage","prevPage","firstPage","lastPage","useColumnVisibility","fullStorageKey","visibleColumns","setVisibleColumns","col","parsed","isColumnVisible","columnId","toggleColumn","showAllColumns","allVisible","hideAllColumns","onlyLocked","DEFAULT_MIN_WIDTH","DEFAULT_WIDTH","DRAG_THRESHOLD","useResizableColumns","tableId","effectiveStorageKey","getDefaultWidths","acc","startXRef","startWidthRef","activeColumnRef","hasDraggedRef","columnsRef","getColumnConfig","handlersRef","widthsRef","startResize","columnKey","clientX","getResizeHandleProps","getColumnStyle","currentWidth","totalWidth","sum","getTableStyle","useColumnOrder","defaultOrder","columnOrder","setColumnOrder","storedSet","defaultSet","validStored","missingColumns","missing","defaultIndex","insertAt","moveColumn","fromIndex","toIndex","newOrder","moveColumnById","resetOrder","getOrderedColumns","columnMap","useColumnDragDrop","lockedColumns","dragState","setDragState","handleDragOver","targetIndex","midpoint","dropIndex","handleDrop","handleDragEnd","getDragHandleProps","showDropIndicator","Pagination","totalItems","canGoNext","canGoPrev","pageSizeOptions","onPageChange","onPageSizeChange","onNextPage","onPrevPage","onFirstPage","onLastPage","getPageNumbers","pages","halfShow","startPage","endPage","ChevronsLeft","ChevronLeft","pageNum","ChevronsRight","DataTable","getRowId","selectable","selectedIds","onSelectionChange","onRowContextMenu","sortField","sortOrder","onSort","actionsColumn","actionsColumnWidth","externalPagination","hidePagination","rowClassName","enableHeaderContextMenu","defaultColumnOrder","emptyState","columnSizeConfig","configs","columnVisibilityConfig","columnWidths","columnVisibility","internalPagination","pagination","headerContextMenu","setHeaderContextMenu","handleHeaderContextMenu","isAllSelected","isSomeSelected","selected","toggleSelection","itemId","selectAll","ids","clearSelection","getSortIcon","getColumnDef","getColumnWidthPx","colKey","tableWidthPx","resizeActiveRef","beginResize","clear","getHeaderCellDragProps","dragProps","getResizeProps","renderHeaderContent","headerProps","el","rowId","cellProps","visible","isLocked","PaginationControls","_setPage","DataTablePage","onSearchChange","searchPlaceholder","activeFilterCount","beforeTable","showPagination","Filter","BatchActionsBar","selectedCount","onClear","itemLabel","ColumnVisibility","visibleCount","toggleableColumns","Columns3","TableFilters","popoverWidth","MultiSelectFilter","maxHeight","showBulkActions","handleToggle","newSelected","handleSelectAll","handleClear","allSelected","noneSelected"],"mappings":"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ACA,WAAA,CACA,YAAA,CACA,WACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,mBAAA,CACA,WAAA,CACA,SAAA,CACA,mBACA,IAAA,CACA,UAAA,CAEA,GAAA,CACA,IAAA,CACA,IACF,CAAA,CACA,oBAAqB,CACnB,YAAA,CACA,WACA,QAAA,CACA,kBAAA,CACA,SACA,YAAA,CACA,YAAA,CACA,WAAA,CACA,kBAAA,CACA,iBAAA,CACA,UAAA,CACA,aACA,MAAA,CACA,UAAA,CACA,SAAA,CACA,YAAA,CACA,WAAA,CACA,UAAA,CACA,OACA,MAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,QAAA,CACA,SAAA,CACA,aACA,YAAA,CACA,QAAA,CACA,QACA,SAAA,CACA,mBAAA,CACA,aACA,aAAA,CACA,MAAA,CACA,QAAA,CACA,eAAA,CACA,mBAAA,CACA,+BAAA,CACA,iCACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,QAAA,CACA,YAAA,CACA,YAAA,CACA,UACA,QAAA,CACA,MAAA,CACA,cAAA,CACA,cAAA,CACA,OAAA,CACA,MAAA,CACA,SACA,WAAA,CACA,SAAA,CACA,QACA,UAAA,CACA,aAAA,CACA,WACA,OAAA,CACA,WAAA,CACA,YAAA,CACA,YAAA,CACA,oBAAA,CACA,QAAA,CACA,SACA,UAAA,CACA,cAAA,CACA,SAAA,CACA,YAAA,CACA,MAAA,CACA,SAAA,CACA,QACA,QAAA,CACA,QAAA,CACA,MAAA,CACA,YAAA,CACA,UAAA,CACA,WAAA,CACA,MACA,YAAA,CACA,SAAA,CACA,aACA,QAAA,CACA,aAAA,CACA,YACA,MAAA,CACA,WAAA,CACA,QAAA,CACA,WAAA,CACA,gBAAA,CACA,SAAA,CACA,eACA,SAAA,CACA,eAAA,CACA,cAAA,CACA,WAAA,CACA,kBAAA,CACA,SAAA,CACA,SACA,UAAA,CACA,MAAA,CACA,YAAA,CACA,mBAAA,CACA,WAAA,CACA,SAAA,CACA,UACA,WAAA,CACA,UAAA,CACA,WACA,YAAA,CACA,MAAA,CACA,cACA,gBAAA,CACA,OAAA,CACA,SAAA,CACA,WAAA,CACA,eAAA,CACA,aAAA,CACA,oBACA,KAAA,CACA,SAAA,CACA,MAAA,CACA,QAAA,CACA,MAAA,CACA,qBAAA,CACA,aACA,YAAA,CACA,kBAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,YAAA,CACA,WACA,iBAAA,CACA,MAAA,CACA,OACA,OAAA,CACA,OAAA,CACA,QACA,WAAA,CACA,QAAA,CACA,cAAA,CACA,cAAA,CACA,UAAA,CACA,UAAA,CACA,MACA,YAAA,CACA,WAAA,CACA,UAAA,CACA,OAAA,CACA,mBAAA,CACA,cAAA,CACA,OACA,aAAA,CACA,OAAA,CACA,SAAA,CACA,SAAA,CACA,MAAA,CACA,aAAA,CACA,SACA,MAAA,CACA,eAAA,CACA,YACA,aACF,CAAA,CACA,eAAgB,CACd,SAAA,CACA,iBAAA,CACA,KAAA,CACA,aAAA,CACA,gBAAA,CACA,aACA,SAAA,CACA,cAAA,CACA,SAAA,CACA,UAAA,CACA,aAAA,CACA,KAAA,CACA,IACA,GAAA,CACA,aAAA,CACA,GAAA,CACA,KAAA,CACA,GAAA,CACA,IAAA,CACA,SACA,aAAA,CACA,uBAAA,CACA,OACA,GAAA,CACA,MAAA,CACA,IACA,UAAA,CACA,QAAA,CACA,aAAA,CACA,IAAA,CACA,OAAA,CACA,YAAA,CACA,SACA,OAAA,CACA,QAAA,CACA,OAAA,CACA,OAAA,CACA,OAAA,CACA,SAAA,CACA,SACA,SAAA,CACA,UAAA,CACA,IAAA,CACA,gBAAA,CACA,IAAA,CACA,KAAA,CACA,UACA,YAAA,CACA,IAAA,CACA,KACA,KAAA,CACA,OAAA,CACA,WACA,QAAA,CACA,IAAA,CACA,SAAA,CACA,SAAA,CACA,KAAA,CACA,QAAA,CACA,KACA,QAAA,CACA,OAAA,CACA,MAAA,CACA,UAAA,CACA,YAAA,CACA,SAAA,CACA,WACA,MAAA,CACA,WAAA,CACA,aAAA,CACA,OAAA,CACA,KAAA,CACA,gBAAA,CACA,YACA,wBAAA,CACA,YAAA,CACA,QACA,YAAA,CACA,OAAA,CACA,UACA,KAAA,CACA,QAAA,CACA,uBAAA,CACA,KAAA,CACA,MAAA,CACA,IAAA,CACA,OACA,UAAA,CACA,OAAA,CACA,WAAA,CACA,WACF,CAEF,CAAA,CACA,OAAO,IAAA,CAAKA,CAAQ,CAAA,CAAE,OAAA,CAAQ,SAAUhW,CAAAA,CAAG,CACzC4V,CAAAA,CAAO5V,CAAC,EAAE,OAAA,CAAU+V,CAAAA,CAAiBC,EAAShW,CAAC,CAAC,EAClD,CAAC,CAAA,CACD,IAAIiW,EAAc,CAEhB,KAAA,CACA,OAAA,CACA,MAAA,CACA,KAAA,CACA,MAAA,CACA,QACA,OAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA,CACA,KAAA,CACA,KAAA,CACA,OACA,OAAA,CACA,OAAA,CACA,UACA,QAAA,CACA,MAAA,CACA,OACA,OAAA,CACA,OAAA,CACA,KAAA,CACA,QAAA,CACA,IAAA,CACA,SAAA,CACA,YACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,OAAA,CACA,MAAA,CACA,OAAA,CACA,OACA,OAAA,CACA,SAAA,CACA,IAAA,CACA,OAAA,CACA,MAAA,CACA,QAAA,CACA,aACA,YAAA,CACA,UAAA,CACA,QACA,SAAA,CACA,MAAA,CACA,KACA,MAAA,CACA,QAAA,CACA,OAAA,CACA,MAAA,CACA,QAAA,CACA,KAAA,CACA,OACA,QAAA,CACA,KAAA,CACA,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,iBAAA,CACA,SACA,WAAA,CACA,OAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,aAAA,CACA,UACA,WAAA,CACA,eAAA,CACA,mBACA,QAAA,CACA,KAAA,CACA,UACA,aAAA,CACA,YAAA,CACA,QAAA,CACA,aAAA,CACA,MAAA,CACA,cAAA,CACA,YACA,SAAA,CACA,cAAA,CACA,cAAA,CACA,YAAA,CACA,iBAAA,CACA,OAAA,CACA,aACA,QAAA,CACA,cAAA,CACA,WAAA,CACA,cAAA,CACA,UAAA,CACA,QAAA,CACA,WACA,YAAA,CACA,MAAA,CACA,YACA,eAAA,CACA,cAAA,CACA,OACA,SAAA,CACA,SAAA,CACA,WAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBACA,SAAA,CACA,MAAA,CACA,WAAA,CACA,aAAA,CACA,SAAA,CACA,aAAA,CACA,aACA,MAAA,CACA,YAAA,CACA,gBAAA,CACA,YAAA,CACA,MAAA,CACA,cAAA,CACA,cACA,UAAA,CACA,eAAA,CACA,YACA,SAAA,CACA,OAAA,CACA,aACA,OAAA,CACA,MAAA,CACA,YAAA,CACA,SAAA,CACA,YAAA,CACA,YAAA,CACA,QACA,MAAA,CACA,WAAA,CACA,gBAAA,CACA,WAAA,CAEA,SAAA,CACA,cAAA,CACA,cACA,gBAAA,CACA,WAAA,CACA,mBAAA,CACA,iBAAA,CACA,OAAA,CACA,gBAAA,CACA,eACA,eAAA,CAEA,iBAAA,CACA,cACA,eAAA,CACA,eAAA,CACA,kBACA,aAAA,CAEA,MAAA,CACA,SAAA,CACA,WAAA,CACA,WAAA,CACA,SAAA,CACA,eACA,gBAAA,CACA,YAAA,CACA,MAAA,CACA,QAAA,CACA,aAAA,CACA,oBAAA,CACA,SACA,kBAAA,CAEA,KAAA,CACA,KAAA,CACA,KAAA,CACA,KAAA,CACA,KAAA,CACA,MACA,KAAA,CACA,KAAA,CACA,MACA,KAAA,CAEA,eAAA,CACA,cACA,gBAAA,CACA,aAAA,CACA,cAAA,CACA,YAAA,CACA,aAAA,CACA,UAAA,CACA,iBACA,mBAAA,CACA,aAAA,CACA,oBAAA,CACA,UAAA,CACA,cAAA,CACA,kBAAA,CACA,oBACA,gBAAA,CACA,SAAA,CACA,gBAAA,CACA,gBAAA,CACA,aAAA,CACA,QAAA,CACA,gBACA,cAAA,CACA,cAAA,CACA,aACA,YAAA,CACA,SAAA,CACA,oBACA,cAAA,CACA,WAAA,CACA,aAAA,CACA,uBAAA,CACA,iBAEF,CAAA,CACAL,EAAO,WAAA,CAAY,OAAA,CAAUG,CAAAA,CAAiBE,CAAW,CAAA,CACzD9U,CAAAA,CAAM,UAAU,MAAA,CAASyU,EAC3B,CAAA,EAAGzU,CAAK,EACV,CAx6B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CACA,QACA,MAAA,CAEA,YAAA,CACA,UACA,aAAA,CACA,YAAA,CACA,SACA,YAAA,CACA,QAAA,CACA,UAAA,CACA,cAAA,CACA,QAAA,CACA,aAAA,CACA,SACA,oBAAA,CACA,eAAA,CACA,SAAA,CACA,QAAA,CACA,QAAA,CACA,MAAA,CACA,kBACA,UAAA,CACA,SAAA,CACA,cAAA,CACA,cAAA,CACA,SAAA,CACA,MAAA,CACA,QACA,OAAA,CACA,cAAA,CACA,aACA,QAAA,CACA,SAAA,CACA,mBAEA,MAAA,CACA,cAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,WAAA,CACA,mBACA,MAAA,CACA,iBAAA,CACA,cAAA,CACA,gBAAA,CACA,OAAA,CACA,QAAA,CACA,QACA,QAAA,CACA,QAAA,CACA,MAAA,CACA,aAAA,CACA,WAAA,CACA,OAAA,CACA,OACA,SAAA,CACA,eAAA,CACA,QACA,UAAA,CACA,MAAA,CACA,iBACA,cAAA,CACA,iBAAA,CACA,eAAA,CACA,aAAA,CACA,YAAA,CACA,YAAA,CACA,oBACA,SAAA,CACA,KAAA,CACA,MAAA,CACA,SAAA,CACA,QAAA,CACA,QAAA,CACA,YACA,KAAA,CACA,MAAA,CACA,OAAA,CACA,SAAA,CACA,KAAA,CACA,eAAA,CACA,gBACA,YAAA,CACA,UAAA,CACA,YACA,eAAA,CACA,UAAA,CACA,eACA,OAAA,CACA,OAAA,CACA,MAAA,CACA,UAAA,CACA,KAAA,CACA,MAAA,CACA,SACA,KAAA,CACA,MAAA,CACA,QAAA,CACA,MAAA,CACA,MAAA,CACA,eAAA,CACA,QACA,MAAA,CACA,cAAA,CACA,SAAA,CACA,MAAA,CACA,QAAA,CACA,WAAA,CACA,MACA,MAAA,CACA,gBAAA,CACA,MACA,MAAA,CACA,OAAA,CACA,oBACA,QAAA,CACA,SAAA,CACA,YAAA,CACA,eAAA,CACA,aAAA,CACA,aAAA,CACA,cACA,eAAA,CACA,QAAA,CACA,QAAA,CACA,SAAA,CACA,gBAAA,CACA,YAAA,CACA,mBACA,cAAA,CACA,WAAA,C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","file":"index.mjs","sourcesContent":["/**\n * @typedef Options\n *   Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n *   Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n *   Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n *   Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n *   Comma-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  /** @type {Array<string>} */\n  const tokens = []\n  const input = String(value || '')\n  let index = input.indexOf(',')\n  let start = 0\n  /** @type {boolean} */\n  let end = false\n\n  while (!end) {\n    if (index === -1) {\n      index = input.length\n      end = true\n    }\n\n    const token = input.slice(start, index).trim()\n\n    if (token || !end) {\n      tokens.push(token)\n    }\n\n    start = index + 1\n    index = input.indexOf(',', start)\n  }\n\n  return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @param {Options} [options]\n *   Configuration for `stringify` (optional).\n * @returns {string}\n *   Comma-separated tokens.\n */\nexport function stringify(values, options) {\n  const settings = options || {}\n\n  // Ensure the last empty entry is seen.\n  const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n  return input\n    .join(\n      (settings.padRight ? ' ' : '') +\n        ',' +\n        (settings.padLeft === false ? '' : ' ')\n    )\n    .trim()\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n  /**\n   * @param {SchemaType['property']} property\n   *   Property.\n   * @param {SchemaType['normal']} normal\n   *   Normal.\n   * @param {Space | undefined} [space]\n   *   Space.\n   * @returns\n   *   Schema.\n   */\n  constructor(property, normal, space) {\n    this.normal = normal\n    this.property = property\n\n    if (space) {\n      this.space = space\n    }\n  }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n *   Definitions.\n * @param {Space | undefined} [space]\n *   Space.\n * @returns {Schema}\n *   Schema.\n */\nexport function merge(definitions, space) {\n  /** @type {Record<string, Info>} */\n  const property = {}\n  /** @type {Record<string, string>} */\n  const normal = {}\n\n  for (const definition of definitions) {\n    Object.assign(property, definition.property)\n    Object.assign(normal, definition.normal)\n  }\n\n  return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n *   An attribute-like or property-like name.\n * @returns {string}\n *   Value that can be used to look up the properly cased property on a\n *   `Schema`.\n */\nexport function normalize(value) {\n  return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n  /**\n   * @param {string} property\n   *   Property.\n   * @param {string} attribute\n   *   Attribute.\n   * @returns\n   *   Info.\n   */\n  constructor(property, attribute) {\n    this.attribute = attribute\n    this.property = property\n  }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n  return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n  Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n  /**\n   * @constructor\n   * @param {string} property\n   *   Property.\n   * @param {string} attribute\n   *   Attribute.\n   * @param {number | null | undefined} [mask]\n   *   Mask.\n   * @param {Space | undefined} [space]\n   *   Space.\n   * @returns\n   *   Info.\n   */\n  constructor(property, attribute, mask, space) {\n    let index = -1\n\n    super(property, attribute)\n\n    mark(this, 'space', space)\n\n    if (typeof mask === 'number') {\n      while (++index < checks.length) {\n        const check = checks[index]\n        mark(this, checks[index], (mask & types[check]) === types[check])\n      }\n    }\n  }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n *   Key type.\n * @param {DefinedInfo} values\n *   Info.\n * @param {Key} key\n *   Key.\n * @param {DefinedInfo[Key]} value\n *   Value.\n * @returns {undefined}\n *   Nothing.\n */\nfunction mark(values, key, value) {\n  if (value) {\n    values[key] = value\n  }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n *   Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n *   Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n *   Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n *   Property names to their types.\n * @property {Space | undefined} [space]\n *   Space.\n * @property {Transform} transform\n *   Transform a property name.\n */\n\n/**\n * @callback Transform\n *   Transform.\n * @param {Record<string, string>} attributes\n *   Attributes.\n * @param {string} property\n *   Property.\n * @returns {string}\n *   Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n *   Definition.\n * @returns {Schema}\n *   Schema.\n */\nexport function create(definition) {\n  /** @type {Record<string, Info>} */\n  const properties = {}\n  /** @type {Record<string, string>} */\n  const normals = {}\n\n  for (const [property, value] of Object.entries(definition.properties)) {\n    const info = new DefinedInfo(\n      property,\n      definition.transform(definition.attributes || {}, property),\n      value,\n      definition.space\n    )\n\n    if (\n      definition.mustUseProperty &&\n      definition.mustUseProperty.includes(property)\n    ) {\n      info.mustUseProperty = true\n    }\n\n    properties[property] = info\n\n    normals[normalize(property)] = property\n    normals[normalize(info.attribute)] = property\n  }\n\n  return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n  properties: {\n    ariaActiveDescendant: null,\n    ariaAtomic: booleanish,\n    ariaAutoComplete: null,\n    ariaBusy: booleanish,\n    ariaChecked: booleanish,\n    ariaColCount: number,\n    ariaColIndex: number,\n    ariaColSpan: number,\n    ariaControls: spaceSeparated,\n    ariaCurrent: null,\n    ariaDescribedBy: spaceSeparated,\n    ariaDetails: null,\n    ariaDisabled: booleanish,\n    ariaDropEffect: spaceSeparated,\n    ariaErrorMessage: null,\n    ariaExpanded: booleanish,\n    ariaFlowTo: spaceSeparated,\n    ariaGrabbed: booleanish,\n    ariaHasPopup: null,\n    ariaHidden: booleanish,\n    ariaInvalid: null,\n    ariaKeyShortcuts: null,\n    ariaLabel: null,\n    ariaLabelledBy: spaceSeparated,\n    ariaLevel: number,\n    ariaLive: null,\n    ariaModal: booleanish,\n    ariaMultiLine: booleanish,\n    ariaMultiSelectable: booleanish,\n    ariaOrientation: null,\n    ariaOwns: spaceSeparated,\n    ariaPlaceholder: null,\n    ariaPosInSet: number,\n    ariaPressed: booleanish,\n    ariaReadOnly: booleanish,\n    ariaRelevant: null,\n    ariaRequired: booleanish,\n    ariaRoleDescription: spaceSeparated,\n    ariaRowCount: number,\n    ariaRowIndex: number,\n    ariaRowSpan: number,\n    ariaSelected: booleanish,\n    ariaSetSize: number,\n    ariaSort: null,\n    ariaValueMax: number,\n    ariaValueMin: number,\n    ariaValueNow: number,\n    ariaValueText: null,\n    role: null\n  },\n  transform(_, property) {\n    return property === 'role'\n      ? property\n      : 'aria-' + property.slice(4).toLowerCase()\n  }\n})\n","/**\n * @param {Record<string, string>} attributes\n *   Attributes.\n * @param {string} attribute\n *   Attribute.\n * @returns {string}\n *   Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n  return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n *   Attributes.\n * @param {string} property\n *   Property.\n * @returns {string}\n *   Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n  return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n  booleanish,\n  boolean,\n  commaSeparated,\n  number,\n  overloadedBoolean,\n  spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n  attributes: {\n    acceptcharset: 'accept-charset',\n    classname: 'class',\n    htmlfor: 'for',\n    httpequiv: 'http-equiv'\n  },\n  mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n  properties: {\n    // Standard Properties.\n    abbr: null,\n    accept: commaSeparated,\n    acceptCharset: spaceSeparated,\n    accessKey: spaceSeparated,\n    action: null,\n    allow: null,\n    allowFullScreen: boolean,\n    allowPaymentRequest: boolean,\n    allowUserMedia: boolean,\n    alt: null,\n    as: null,\n    async: boolean,\n    autoCapitalize: null,\n    autoComplete: spaceSeparated,\n    autoFocus: boolean,\n    autoPlay: boolean,\n    blocking: spaceSeparated,\n    capture: null,\n    charSet: null,\n    checked: boolean,\n    cite: null,\n    className: spaceSeparated,\n    cols: number,\n    colSpan: null,\n    content: null,\n    contentEditable: booleanish,\n    controls: boolean,\n    controlsList: spaceSeparated,\n    coords: number | commaSeparated,\n    crossOrigin: null,\n    data: null,\n    dateTime: null,\n    decoding: null,\n    default: boolean,\n    defer: boolean,\n    dir: null,\n    dirName: null,\n    disabled: boolean,\n    download: overloadedBoolean,\n    draggable: booleanish,\n    encType: null,\n    enterKeyHint: null,\n    fetchPriority: null,\n    form: null,\n    formAction: null,\n    formEncType: null,\n    formMethod: null,\n    formNoValidate: boolean,\n    formTarget: null,\n    headers: spaceSeparated,\n    height: number,\n    hidden: overloadedBoolean,\n    high: number,\n    href: null,\n    hrefLang: null,\n    htmlFor: spaceSeparated,\n    httpEquiv: spaceSeparated,\n    id: null,\n    imageSizes: null,\n    imageSrcSet: null,\n    inert: boolean,\n    inputMode: null,\n    integrity: null,\n    is: null,\n    isMap: boolean,\n    itemId: null,\n    itemProp: spaceSeparated,\n    itemRef: spaceSeparated,\n    itemScope: boolean,\n    itemType: spaceSeparated,\n    kind: null,\n    label: null,\n    lang: null,\n    language: null,\n    list: null,\n    loading: null,\n    loop: boolean,\n    low: number,\n    manifest: null,\n    max: null,\n    maxLength: number,\n    media: null,\n    method: null,\n    min: null,\n    minLength: number,\n    multiple: boolean,\n    muted: boolean,\n    name: null,\n    nonce: null,\n    noModule: boolean,\n    noValidate: boolean,\n    onAbort: null,\n    onAfterPrint: null,\n    onAuxClick: null,\n    onBeforeMatch: null,\n    onBeforePrint: null,\n    onBeforeToggle: null,\n    onBeforeUnload: null,\n    onBlur: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onContextLost: null,\n    onContextMenu: null,\n    onContextRestored: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFormData: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLanguageChange: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadEnd: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMessageError: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRejectionHandled: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onScrollEnd: null,\n    onSecurityPolicyViolation: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onSlotChange: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnhandledRejection: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onWheel: null,\n    open: boolean,\n    optimum: number,\n    pattern: null,\n    ping: spaceSeparated,\n    placeholder: null,\n    playsInline: boolean,\n    popover: null,\n    popoverTarget: null,\n    popoverTargetAction: null,\n    poster: null,\n    preload: null,\n    readOnly: boolean,\n    referrerPolicy: null,\n    rel: spaceSeparated,\n    required: boolean,\n    reversed: boolean,\n    rows: number,\n    rowSpan: number,\n    sandbox: spaceSeparated,\n    scope: null,\n    scoped: boolean,\n    seamless: boolean,\n    selected: boolean,\n    shadowRootClonable: boolean,\n    shadowRootDelegatesFocus: boolean,\n    shadowRootMode: null,\n    shape: null,\n    size: number,\n    sizes: null,\n    slot: null,\n    span: number,\n    spellCheck: booleanish,\n    src: null,\n    srcDoc: null,\n    srcLang: null,\n    srcSet: null,\n    start: number,\n    step: null,\n    style: null,\n    tabIndex: number,\n    target: null,\n    title: null,\n    translate: null,\n    type: null,\n    typeMustMatch: boolean,\n    useMap: null,\n    value: booleanish,\n    width: number,\n    wrap: null,\n    writingSuggestions: null,\n\n    // Legacy.\n    // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n    align: null, // Several. Use CSS `text-align` instead,\n    aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n    archive: spaceSeparated, // `<object>`. List of URIs to archives\n    axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n    background: null, // `<body>`. Use CSS `background-image` instead\n    bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n    border: number, // `<table>`. Use CSS `border-width` instead,\n    borderColor: null, // `<table>`. Use CSS `border-color` instead,\n    bottomMargin: number, // `<body>`\n    cellPadding: null, // `<table>`\n    cellSpacing: null, // `<table>`\n    char: null, // Several table elements. When `align=char`, sets the character to align on\n    charOff: null, // Several table elements. When `char`, offsets the alignment\n    classId: null, // `<object>`\n    clear: null, // `<br>`. Use CSS `clear` instead\n    code: null, // `<object>`\n    codeBase: null, // `<object>`\n    codeType: null, // `<object>`\n    color: null, // `<font>` and `<hr>`. Use CSS instead\n    compact: boolean, // Lists. Use CSS to reduce space between items instead\n    declare: boolean, // `<object>`\n    event: null, // `<script>`\n    face: null, // `<font>`. Use CSS instead\n    frame: null, // `<table>`\n    frameBorder: null, // `<iframe>`. Use CSS `border` instead\n    hSpace: number, // `<img>` and `<object>`\n    leftMargin: number, // `<body>`\n    link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n    longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n    lowSrc: null, // `<img>`. Use a `<picture>`\n    marginHeight: number, // `<body>`\n    marginWidth: number, // `<body>`\n    noResize: boolean, // `<frame>`\n    noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n    noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n    noWrap: boolean, // `<td>` and `<th>`\n    object: null, // `<applet>`\n    profile: null, // `<head>`\n    prompt: null, // `<isindex>`\n    rev: null, // `<link>`\n    rightMargin: number, // `<body>`\n    rules: null, // `<table>`\n    scheme: null, // `<meta>`\n    scrolling: booleanish, // `<frame>`. Use overflow in the child context\n    standby: null, // `<object>`\n    summary: null, // `<table>`\n    text: null, // `<body>`. Use CSS `color` instead\n    topMargin: number, // `<body>`\n    valueType: null, // `<param>`\n    version: null, // `<html>`. Use a doctype.\n    vAlign: null, // Several. Use CSS `vertical-align` instead\n    vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n    vSpace: number, // `<img>` and `<object>`\n\n    // Non-standard Properties.\n    allowTransparency: null,\n    autoCorrect: null,\n    autoSave: null,\n    disablePictureInPicture: boolean,\n    disableRemotePlayback: boolean,\n    prefix: null,\n    property: null,\n    results: number,\n    security: null,\n    unselectable: null\n  },\n  space: 'html',\n  transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n  boolean,\n  commaOrSpaceSeparated,\n  commaSeparated,\n  number,\n  spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n  attributes: {\n    accentHeight: 'accent-height',\n    alignmentBaseline: 'alignment-baseline',\n    arabicForm: 'arabic-form',\n    baselineShift: 'baseline-shift',\n    capHeight: 'cap-height',\n    className: 'class',\n    clipPath: 'clip-path',\n    clipRule: 'clip-rule',\n    colorInterpolation: 'color-interpolation',\n    colorInterpolationFilters: 'color-interpolation-filters',\n    colorProfile: 'color-profile',\n    colorRendering: 'color-rendering',\n    crossOrigin: 'crossorigin',\n    dataType: 'datatype',\n    dominantBaseline: 'dominant-baseline',\n    enableBackground: 'enable-background',\n    fillOpacity: 'fill-opacity',\n    fillRule: 'fill-rule',\n    floodColor: 'flood-color',\n    floodOpacity: 'flood-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    fontSizeAdjust: 'font-size-adjust',\n    fontStretch: 'font-stretch',\n    fontStyle: 'font-style',\n    fontVariant: 'font-variant',\n    fontWeight: 'font-weight',\n    glyphName: 'glyph-name',\n    glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n    glyphOrientationVertical: 'glyph-orientation-vertical',\n    hrefLang: 'hreflang',\n    horizAdvX: 'horiz-adv-x',\n    horizOriginX: 'horiz-origin-x',\n    horizOriginY: 'horiz-origin-y',\n    imageRendering: 'image-rendering',\n    letterSpacing: 'letter-spacing',\n    lightingColor: 'lighting-color',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    navDown: 'nav-down',\n    navDownLeft: 'nav-down-left',\n    navDownRight: 'nav-down-right',\n    navLeft: 'nav-left',\n    navNext: 'nav-next',\n    navPrev: 'nav-prev',\n    navRight: 'nav-right',\n    navUp: 'nav-up',\n    navUpLeft: 'nav-up-left',\n    navUpRight: 'nav-up-right',\n    onAbort: 'onabort',\n    onActivate: 'onactivate',\n    onAfterPrint: 'onafterprint',\n    onBeforePrint: 'onbeforeprint',\n    onBegin: 'onbegin',\n    onCancel: 'oncancel',\n    onCanPlay: 'oncanplay',\n    onCanPlayThrough: 'oncanplaythrough',\n    onChange: 'onchange',\n    onClick: 'onclick',\n    onClose: 'onclose',\n    onCopy: 'oncopy',\n    onCueChange: 'oncuechange',\n    onCut: 'oncut',\n    onDblClick: 'ondblclick',\n    onDrag: 'ondrag',\n    onDragEnd: 'ondragend',\n    onDragEnter: 'ondragenter',\n    onDragExit: 'ondragexit',\n    onDragLeave: 'ondragleave',\n    onDragOver: 'ondragover',\n    onDragStart: 'ondragstart',\n    onDrop: 'ondrop',\n    onDurationChange: 'ondurationchange',\n    onEmptied: 'onemptied',\n    onEnd: 'onend',\n    onEnded: 'onended',\n    onError: 'onerror',\n    onFocus: 'onfocus',\n    onFocusIn: 'onfocusin',\n    onFocusOut: 'onfocusout',\n    onHashChange: 'onhashchange',\n    onInput: 'oninput',\n    onInvalid: 'oninvalid',\n    onKeyDown: 'onkeydown',\n    onKeyPress: 'onkeypress',\n    onKeyUp: 'onkeyup',\n    onLoad: 'onload',\n    onLoadedData: 'onloadeddata',\n    onLoadedMetadata: 'onloadedmetadata',\n    onLoadStart: 'onloadstart',\n    onMessage: 'onmessage',\n    onMouseDown: 'onmousedown',\n    onMouseEnter: 'onmouseenter',\n    onMouseLeave: 'onmouseleave',\n    onMouseMove: 'onmousemove',\n    onMouseOut: 'onmouseout',\n    onMouseOver: 'onmouseover',\n    onMouseUp: 'onmouseup',\n    onMouseWheel: 'onmousewheel',\n    onOffline: 'onoffline',\n    onOnline: 'ononline',\n    onPageHide: 'onpagehide',\n    onPageShow: 'onpageshow',\n    onPaste: 'onpaste',\n    onPause: 'onpause',\n    onPlay: 'onplay',\n    onPlaying: 'onplaying',\n    onPopState: 'onpopstate',\n    onProgress: 'onprogress',\n    onRateChange: 'onratechange',\n    onRepeat: 'onrepeat',\n    onReset: 'onreset',\n    onResize: 'onresize',\n    onScroll: 'onscroll',\n    onSeeked: 'onseeked',\n    onSeeking: 'onseeking',\n    onSelect: 'onselect',\n    onShow: 'onshow',\n    onStalled: 'onstalled',\n    onStorage: 'onstorage',\n    onSubmit: 'onsubmit',\n    onSuspend: 'onsuspend',\n    onTimeUpdate: 'ontimeupdate',\n    onToggle: 'ontoggle',\n    onUnload: 'onunload',\n    onVolumeChange: 'onvolumechange',\n    onWaiting: 'onwaiting',\n    onZoom: 'onzoom',\n    overlinePosition: 'overline-position',\n    overlineThickness: 'overline-thickness',\n    paintOrder: 'paint-order',\n    panose1: 'panose-1',\n    pointerEvents: 'pointer-events',\n    referrerPolicy: 'referrerpolicy',\n    renderingIntent: 'rendering-intent',\n    shapeRendering: 'shape-rendering',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strikethroughPosition: 'strikethrough-position',\n    strikethroughThickness: 'strikethrough-thickness',\n    strokeDashArray: 'stroke-dasharray',\n    strokeDashOffset: 'stroke-dashoffset',\n    strokeLineCap: 'stroke-linecap',\n    strokeLineJoin: 'stroke-linejoin',\n    strokeMiterLimit: 'stroke-miterlimit',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    tabIndex: 'tabindex',\n    textAnchor: 'text-anchor',\n    textDecoration: 'text-decoration',\n    textRendering: 'text-rendering',\n    transformOrigin: 'transform-origin',\n    typeOf: 'typeof',\n    underlinePosition: 'underline-position',\n    underlineThickness: 'underline-thickness',\n    unicodeBidi: 'unicode-bidi',\n    unicodeRange: 'unicode-range',\n    unitsPerEm: 'units-per-em',\n    vAlphabetic: 'v-alphabetic',\n    vHanging: 'v-hanging',\n    vIdeographic: 'v-ideographic',\n    vMathematical: 'v-mathematical',\n    vectorEffect: 'vector-effect',\n    vertAdvY: 'vert-adv-y',\n    vertOriginX: 'vert-origin-x',\n    vertOriginY: 'vert-origin-y',\n    wordSpacing: 'word-spacing',\n    writingMode: 'writing-mode',\n    xHeight: 'x-height',\n    // These were camelcased in Tiny. Now lowercased in SVG 2\n    playbackOrder: 'playbackorder',\n    timelineBegin: 'timelinebegin'\n  },\n  properties: {\n    about: commaOrSpaceSeparated,\n    accentHeight: number,\n    accumulate: null,\n    additive: null,\n    alignmentBaseline: null,\n    alphabetic: number,\n    amplitude: number,\n    arabicForm: null,\n    ascent: number,\n    attributeName: null,\n    attributeType: null,\n    azimuth: number,\n    bandwidth: null,\n    baselineShift: null,\n    baseFrequency: null,\n    baseProfile: null,\n    bbox: null,\n    begin: null,\n    bias: number,\n    by: null,\n    calcMode: null,\n    capHeight: number,\n    className: spaceSeparated,\n    clip: null,\n    clipPath: null,\n    clipPathUnits: null,\n    clipRule: null,\n    color: null,\n    colorInterpolation: null,\n    colorInterpolationFilters: null,\n    colorProfile: null,\n    colorRendering: null,\n    content: null,\n    contentScriptType: null,\n    contentStyleType: null,\n    crossOrigin: null,\n    cursor: null,\n    cx: null,\n    cy: null,\n    d: null,\n    dataType: null,\n    defaultAction: null,\n    descent: number,\n    diffuseConstant: number,\n    direction: null,\n    display: null,\n    dur: null,\n    divisor: number,\n    dominantBaseline: null,\n    download: boolean,\n    dx: null,\n    dy: null,\n    edgeMode: null,\n    editable: null,\n    elevation: number,\n    enableBackground: null,\n    end: null,\n    event: null,\n    exponent: number,\n    externalResourcesRequired: null,\n    fill: null,\n    fillOpacity: number,\n    fillRule: null,\n    filter: null,\n    filterRes: null,\n    filterUnits: null,\n    floodColor: null,\n    floodOpacity: null,\n    focusable: null,\n    focusHighlight: null,\n    fontFamily: null,\n    fontSize: null,\n    fontSizeAdjust: null,\n    fontStretch: null,\n    fontStyle: null,\n    fontVariant: null,\n    fontWeight: null,\n    format: null,\n    fr: null,\n    from: null,\n    fx: null,\n    fy: null,\n    g1: commaSeparated,\n    g2: commaSeparated,\n    glyphName: commaSeparated,\n    glyphOrientationHorizontal: null,\n    glyphOrientationVertical: null,\n    glyphRef: null,\n    gradientTransform: null,\n    gradientUnits: null,\n    handler: null,\n    hanging: number,\n    hatchContentUnits: null,\n    hatchUnits: null,\n    height: null,\n    href: null,\n    hrefLang: null,\n    horizAdvX: number,\n    horizOriginX: number,\n    horizOriginY: number,\n    id: null,\n    ideographic: number,\n    imageRendering: null,\n    initialVisibility: null,\n    in: null,\n    in2: null,\n    intercept: number,\n    k: number,\n    k1: number,\n    k2: number,\n    k3: number,\n    k4: number,\n    kernelMatrix: commaOrSpaceSeparated,\n    kernelUnitLength: null,\n    keyPoints: null, // SEMI_COLON_SEPARATED\n    keySplines: null, // SEMI_COLON_SEPARATED\n    keyTimes: null, // SEMI_COLON_SEPARATED\n    kerning: null,\n    lang: null,\n    lengthAdjust: null,\n    letterSpacing: null,\n    lightingColor: null,\n    limitingConeAngle: number,\n    local: null,\n    markerEnd: null,\n    markerMid: null,\n    markerStart: null,\n    markerHeight: null,\n    markerUnits: null,\n    markerWidth: null,\n    mask: null,\n    maskContentUnits: null,\n    maskUnits: null,\n    mathematical: null,\n    max: null,\n    media: null,\n    mediaCharacterEncoding: null,\n    mediaContentEncodings: null,\n    mediaSize: number,\n    mediaTime: null,\n    method: null,\n    min: null,\n    mode: null,\n    name: null,\n    navDown: null,\n    navDownLeft: null,\n    navDownRight: null,\n    navLeft: null,\n    navNext: null,\n    navPrev: null,\n    navRight: null,\n    navUp: null,\n    navUpLeft: null,\n    navUpRight: null,\n    numOctaves: null,\n    observer: null,\n    offset: null,\n    onAbort: null,\n    onActivate: null,\n    onAfterPrint: null,\n    onBeforePrint: null,\n    onBegin: null,\n    onCancel: null,\n    onCanPlay: null,\n    onCanPlayThrough: null,\n    onChange: null,\n    onClick: null,\n    onClose: null,\n    onCopy: null,\n    onCueChange: null,\n    onCut: null,\n    onDblClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragEnter: null,\n    onDragExit: null,\n    onDragLeave: null,\n    onDragOver: null,\n    onDragStart: null,\n    onDrop: null,\n    onDurationChange: null,\n    onEmptied: null,\n    onEnd: null,\n    onEnded: null,\n    onError: null,\n    onFocus: null,\n    onFocusIn: null,\n    onFocusOut: null,\n    onHashChange: null,\n    onInput: null,\n    onInvalid: null,\n    onKeyDown: null,\n    onKeyPress: null,\n    onKeyUp: null,\n    onLoad: null,\n    onLoadedData: null,\n    onLoadedMetadata: null,\n    onLoadStart: null,\n    onMessage: null,\n    onMouseDown: null,\n    onMouseEnter: null,\n    onMouseLeave: null,\n    onMouseMove: null,\n    onMouseOut: null,\n    onMouseOver: null,\n    onMouseUp: null,\n    onMouseWheel: null,\n    onOffline: null,\n    onOnline: null,\n    onPageHide: null,\n    onPageShow: null,\n    onPaste: null,\n    onPause: null,\n    onPlay: null,\n    onPlaying: null,\n    onPopState: null,\n    onProgress: null,\n    onRateChange: null,\n    onRepeat: null,\n    onReset: null,\n    onResize: null,\n    onScroll: null,\n    onSeeked: null,\n    onSeeking: null,\n    onSelect: null,\n    onShow: null,\n    onStalled: null,\n    onStorage: null,\n    onSubmit: null,\n    onSuspend: null,\n    onTimeUpdate: null,\n    onToggle: null,\n    onUnload: null,\n    onVolumeChange: null,\n    onWaiting: null,\n    onZoom: null,\n    opacity: null,\n    operator: null,\n    order: null,\n    orient: null,\n    orientation: null,\n    origin: null,\n    overflow: null,\n    overlay: null,\n    overlinePosition: number,\n    overlineThickness: number,\n    paintOrder: null,\n    panose1: null,\n    path: null,\n    pathLength: number,\n    patternContentUnits: null,\n    patternTransform: null,\n    patternUnits: null,\n    phase: null,\n    ping: spaceSeparated,\n    pitch: null,\n    playbackOrder: null,\n    pointerEvents: null,\n    points: null,\n    pointsAtX: number,\n    pointsAtY: number,\n    pointsAtZ: number,\n    preserveAlpha: null,\n    preserveAspectRatio: null,\n    primitiveUnits: null,\n    propagate: null,\n    property: commaOrSpaceSeparated,\n    r: null,\n    radius: null,\n    referrerPolicy: null,\n    refX: null,\n    refY: null,\n    rel: commaOrSpaceSeparated,\n    rev: commaOrSpaceSeparated,\n    renderingIntent: null,\n    repeatCount: null,\n    repeatDur: null,\n    requiredExtensions: commaOrSpaceSeparated,\n    requiredFeatures: commaOrSpaceSeparated,\n    requiredFonts: commaOrSpaceSeparated,\n    requiredFormats: commaOrSpaceSeparated,\n    resource: null,\n    restart: null,\n    result: null,\n    rotate: null,\n    rx: null,\n    ry: null,\n    scale: null,\n    seed: null,\n    shapeRendering: null,\n    side: null,\n    slope: null,\n    snapshotTime: null,\n    specularConstant: number,\n    specularExponent: number,\n    spreadMethod: null,\n    spacing: null,\n    startOffset: null,\n    stdDeviation: null,\n    stemh: null,\n    stemv: null,\n    stitchTiles: null,\n    stopColor: null,\n    stopOpacity: null,\n    strikethroughPosition: number,\n    strikethroughThickness: number,\n    string: null,\n    stroke: null,\n    strokeDashArray: commaOrSpaceSeparated,\n    strokeDashOffset: null,\n    strokeLineCap: null,\n    strokeLineJoin: null,\n    strokeMiterLimit: number,\n    strokeOpacity: number,\n    strokeWidth: null,\n    style: null,\n    surfaceScale: number,\n    syncBehavior: null,\n    syncBehaviorDefault: null,\n    syncMaster: null,\n    syncTolerance: null,\n    syncToleranceDefault: null,\n    systemLanguage: commaOrSpaceSeparated,\n    tabIndex: number,\n    tableValues: null,\n    target: null,\n    targetX: number,\n    targetY: number,\n    textAnchor: null,\n    textDecoration: null,\n    textRendering: null,\n    textLength: null,\n    timelineBegin: null,\n    title: null,\n    transformBehavior: null,\n    type: null,\n    typeOf: commaOrSpaceSeparated,\n    to: null,\n    transform: null,\n    transformOrigin: null,\n    u1: null,\n    u2: null,\n    underlinePosition: number,\n    underlineThickness: number,\n    unicode: null,\n    unicodeBidi: null,\n    unicodeRange: null,\n    unitsPerEm: number,\n    values: null,\n    vAlphabetic: number,\n    vMathematical: number,\n    vectorEffect: null,\n    vHanging: number,\n    vIdeographic: number,\n    version: null,\n    vertAdvY: number,\n    vertOriginX: number,\n    vertOriginY: number,\n    viewBox: null,\n    viewTarget: null,\n    visibility: null,\n    width: null,\n    widths: null,\n    wordSpacing: null,\n    writingMode: null,\n    x: null,\n    x1: null,\n    x2: null,\n    xChannelSelector: null,\n    xHeight: number,\n    y: null,\n    y1: null,\n    y2: null,\n    yChannelSelector: null,\n    z: null,\n    zoomAndPan: null\n  },\n  space: 'svg',\n  transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n  properties: {\n    xLinkActuate: null,\n    xLinkArcRole: null,\n    xLinkHref: null,\n    xLinkRole: null,\n    xLinkShow: null,\n    xLinkTitle: null,\n    xLinkType: null\n  },\n  space: 'xlink',\n  transform(_, property) {\n    return 'xlink:' + property.slice(5).toLowerCase()\n  }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n  attributes: {xmlnsxlink: 'xmlns:xlink'},\n  properties: {xmlnsXLink: null, xmlns: null},\n  space: 'xmlns',\n  transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n  properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n  space: 'xml',\n  transform(_, property) {\n    return 'xml:' + property.slice(3).toLowerCase()\n  }\n})\n","/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n  classId: 'classID',\n  dataType: 'datatype',\n  itemId: 'itemID',\n  strokeDashArray: 'strokeDasharray',\n  strokeDashOffset: 'strokeDashoffset',\n  strokeLineCap: 'strokeLinecap',\n  strokeLineJoin: 'strokeLinejoin',\n  strokeMiterLimit: 'strokeMiterlimit',\n  typeOf: 'typeof',\n  xLinkActuate: 'xlinkActuate',\n  xLinkArcRole: 'xlinkArcrole',\n  xLinkHref: 'xlinkHref',\n  xLinkRole: 'xlinkRole',\n  xLinkShow: 'xlinkShow',\n  xLinkTitle: 'xlinkTitle',\n  xLinkType: 'xlinkType',\n  xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n *   Schema;\n *   either the `html` or `svg` export.\n * @param {string} value\n *   An attribute-like or property-like name;\n *   it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n *   Info.\n */\nexport function find(schema, value) {\n  const normal = normalize(value)\n  let property = value\n  let Type = Info\n\n  if (normal in schema.normal) {\n    return schema.property[schema.normal[normal]]\n  }\n\n  if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n    // Attribute or property.\n    if (value.charAt(4) === '-') {\n      // Turn it into a property.\n      const rest = value.slice(5).replace(dash, camelcase)\n      property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n    } else {\n      // Turn it into an attribute.\n      const rest = value.slice(4)\n\n      if (!dash.test(rest)) {\n        let dashes = rest.replace(cap, kebab)\n\n        if (dashes.charAt(0) !== '-') {\n          dashes = '-' + dashes\n        }\n\n        value = 'data' + dashes\n      }\n    }\n\n    Type = DefinedInfo\n  }\n\n  return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n *   Value.\n * @returns {string}\n *   Kebab.\n */\nfunction kebab($0) {\n  return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n *   Value.\n * @returns {string}\n *   Camel.\n */\nfunction camelcase($0) {\n  return $0.charAt(1).toUpperCase()\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n  if (typeof style !== 'string') {\n    throw new TypeError('First argument must be a string');\n  }\n\n  if (!style) return [];\n\n  options = options || {};\n\n  /**\n   * Positional.\n   */\n  var lineno = 1;\n  var column = 1;\n\n  /**\n   * Update lineno and column based on `str`.\n   *\n   * @param {String} str\n   */\n  function updatePosition(str) {\n    var lines = str.match(NEWLINE_REGEX);\n    if (lines) lineno += lines.length;\n    var i = str.lastIndexOf(NEWLINE);\n    column = ~i ? str.length - i : column + str.length;\n  }\n\n  /**\n   * Mark position and patch `node.position`.\n   *\n   * @return {Function}\n   */\n  function position() {\n    var start = { line: lineno, column: column };\n    return function (node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n\n  /**\n   * Store position information for a node.\n   *\n   * @constructor\n   * @property {Object} start\n   * @property {Object} end\n   * @property {undefined|String} source\n   */\n  function Position(start) {\n    this.start = start;\n    this.end = { line: lineno, column: column };\n    this.source = options.source;\n  }\n\n  /**\n   * Non-enumerable source string.\n   */\n  Position.prototype.content = style;\n\n  var errorsList = [];\n\n  /**\n   * Error `msg`.\n   *\n   * @param {String} msg\n   * @throws {Error}\n   */\n  function error(msg) {\n    var err = new Error(\n      options.source + ':' + lineno + ':' + column + ': ' + msg\n    );\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = style;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n\n  /**\n   * Match `re` and return captures.\n   *\n   * @param {RegExp} re\n   * @return {undefined|Array}\n   */\n  function match(re) {\n    var m = re.exec(style);\n    if (!m) return;\n    var str = m[0];\n    updatePosition(str);\n    style = style.slice(str.length);\n    return m;\n  }\n\n  /**\n   * Parse whitespace.\n   */\n  function whitespace() {\n    match(WHITESPACE_REGEX);\n  }\n\n  /**\n   * Parse comments.\n   *\n   * @param {Object[]} [rules]\n   * @return {Object[]}\n   */\n  function comments(rules) {\n    var c;\n    rules = rules || [];\n    while ((c = comment())) {\n      if (c !== false) {\n        rules.push(c);\n      }\n    }\n    return rules;\n  }\n\n  /**\n   * Parse comment.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function comment() {\n    var pos = position();\n    if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n    var i = 2;\n    while (\n      EMPTY_STRING != style.charAt(i) &&\n      (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n    ) {\n      ++i;\n    }\n    i += 2;\n\n    if (EMPTY_STRING === style.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = style.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    style = style.slice(i);\n    column += 2;\n\n    return pos({\n      type: TYPE_COMMENT,\n      comment: str\n    });\n  }\n\n  /**\n   * Parse declaration.\n   *\n   * @return {Object}\n   * @throws {Error}\n   */\n  function declaration() {\n    var pos = position();\n\n    // prop\n    var prop = match(PROPERTY_REGEX);\n    if (!prop) return;\n    comment();\n\n    // :\n    if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n    // val\n    var val = match(VALUE_REGEX);\n\n    var ret = pos({\n      type: TYPE_DECLARATION,\n      property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n      value: val\n        ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n        : EMPTY_STRING\n    });\n\n    // ;\n    match(SEMICOLON_REGEX);\n\n    return ret;\n  }\n\n  /**\n   * Parse declarations.\n   *\n   * @return {Object[]}\n   */\n  function declarations() {\n    var decls = [];\n\n    comments(decls);\n\n    // declarations\n    var decl;\n    while ((decl = declaration())) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    return decls;\n  }\n\n  whitespace();\n  return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n  return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\ninterface StyleObject {\n  [name: string]: string;\n}\n\ntype Iterator = (\n  property: string,\n  value: string,\n  declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n  style: string,\n  iterator?: Iterator,\n): StyleObject | null {\n  let styleObject: StyleObject | null = null;\n\n  if (!style || typeof style !== 'string') {\n    return styleObject;\n  }\n\n  const declarations = parse(style);\n  const hasIterator = typeof iterator === 'function';\n\n  declarations.forEach((declaration) => {\n    if (declaration.type !== 'declaration') {\n      return;\n    }\n\n    const { property, value } = declaration;\n\n    if (hasIterator) {\n      iterator(property, value, declaration);\n    } else if (value) {\n      styleObject = styleObject || {};\n      styleObject[property] = value;\n    }\n  });\n\n  return styleObject;\n}\n","const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n  !property ||\n  NO_HYPHEN_REGEX.test(property) ||\n  CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n  character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n  reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n  if (skipCamelCase(property)) {\n    return property;\n  }\n\n  property = property.toLowerCase();\n\n  if (options.reactCompat) {\n    // `-ms` vendor prefix should not be capitalized\n    property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n  } else {\n    // for non-React, remove first hyphen so vendor prefix is not capitalized\n    property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n  }\n\n  return property.replace(HYPHEN_REGEX, capitalize);\n};\n","import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ninterface StyleToJSOptions extends CamelCaseOptions {}\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style: string, options?: StyleToJSOptions): StyleObject {\n  const output: StyleObject = {};\n\n  if (!style || typeof style !== 'string') {\n    return output;\n  }\n\n  StyleToObject(style, (property, value) => {\n    // skip CSS comment\n    if (property && value) {\n      output[camelCase(property, options)] = value;\n    }\n  });\n\n  return output;\n}\n\nStyleToJS.default = StyleToJS;\n\nexport = StyleToJS;\n","/// <reference lib=\"dom\" />\n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n  const characterReference = '&' + value + ';'\n  element.innerHTML = characterReference\n  const character = element.textContent\n\n  // Some named character references do not require the closing semicolon\n  // (`&not`, for instance), which leads to situations where parsing the assumed\n  // named reference of `&notit;` will result in the string `¬it;`.\n  // When we encounter a trailing semicolon after parsing, and the character\n  // reference to decode was not a semicolon (`&semi;`), we can assume that the\n  // matching was not complete.\n  if (\n    // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n    // yield `null`.\n    character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n    value !== 'semi'\n  ) {\n    return false\n  }\n\n  // If the decoded string is equal to the input, the character reference was\n  // not valid.\n  // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n  // yield `null`.\n  return character === characterReference ? false : character\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n *   Selector type.\n * @template {string} DefaultTagName\n *   Default tag name.\n * @typedef {(\n *   SimpleSelector extends ''\n *     ? DefaultTagName\n *     : SimpleSelector extends `${infer TagName}.${infer Rest}`\n *     ? ExtractTagName<TagName, DefaultTagName>\n *     : SimpleSelector extends `${infer TagName}#${infer Rest}`\n *     ? ExtractTagName<TagName, DefaultTagName>\n *     : SimpleSelector extends string\n *     ? SimpleSelector\n *     : DefaultTagName\n * )} ExtractTagName\n *   Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n *   Type of selector.\n * @template {string} [DefaultTagName='div']\n *   Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n *   Simple CSS selector (optional).\n *\n *   Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n *   Multiple classes are allowed.\n *   Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n *   Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName<Selector, DefaultTagName>}}\n *   Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n  const value = selector || ''\n  /** @type {Properties} */\n  const props = {}\n  let start = 0\n  /** @type {string | undefined} */\n  let previous\n  /** @type {string | undefined} */\n  let tagName\n\n  while (start < value.length) {\n    search.lastIndex = start\n    const match = search.exec(value)\n    const subvalue = value.slice(start, match ? match.index : value.length)\n\n    if (subvalue) {\n      if (!previous) {\n        tagName = subvalue\n      } else if (previous === '#') {\n        props.id = subvalue\n      } else if (Array.isArray(props.className)) {\n        props.className.push(subvalue)\n      } else {\n        props.className = [subvalue]\n      }\n\n      start += subvalue.length\n    }\n\n    if (match) {\n      previous = match[0]\n      start++\n    }\n  }\n\n  return {\n    type: 'element',\n    // @ts-expect-error: tag name is parsed.\n    tagName: tagName || defaultTagName || 'div',\n    properties: props,\n    children: []\n  }\n}\n","export {parseSelector} from './lib/index.js'\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n *   Space-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @returns {string}\n *   Space-separated tokens.\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n","/**\n * @import {Element, Nodes, RootContent, Root} from 'hast'\n * @import {Info, Schema} from 'property-information'\n */\n\n/**\n * @typedef {Array<Nodes | PrimitiveChild>} ArrayChildNested\n *   List of children (deep).\n */\n\n/**\n * @typedef {Array<ArrayChildNested | Nodes | PrimitiveChild>} ArrayChild\n *   List of children.\n */\n\n/**\n * @typedef {Array<number | string>} ArrayValue\n *   List of property values for space- or comma separated values (such as `className`).\n */\n\n/**\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n *   Acceptable child value.\n */\n\n/**\n * @typedef {number | string | null | undefined} PrimitiveChild\n *   Primitive children, either ignored (nullish), or turned into text nodes.\n */\n\n/**\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n *   Primitive property value.\n */\n\n/**\n * @typedef {Record<string, PropertyValue | Style>} Properties\n *   Acceptable value for element properties.\n */\n\n/**\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n *   Primitive value or list value.\n */\n\n/**\n * @typedef {Element | Root} Result\n *   Result from a `h` (or `s`) call.\n */\n\n/**\n * @typedef {number | string} StyleValue\n *   Value for a CSS style field.\n */\n\n/**\n * @typedef {Record<string, StyleValue>} Style\n *   Supported value of a `style` prop.\n */\n\nimport {parse as parseCommas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as parseSpaces} from 'space-separated-tokens'\n\n/**\n * @param {Schema} schema\n *   Schema to use.\n * @param {string} defaultTagName\n *   Default tag name.\n * @param {ReadonlyArray<string> | undefined} [caseSensitive]\n *   Case-sensitive tag names (default: `undefined`).\n * @returns\n *   `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n  const adjust = caseSensitive ? createAdjustMap(caseSensitive) : undefined\n\n  /**\n   * Hyperscript compatible DSL for creating virtual hast trees.\n   *\n   * @overload\n   * @param {null | undefined} [selector]\n   * @param {...Child} children\n   * @returns {Root}\n   *\n   * @overload\n   * @param {string} selector\n   * @param {Properties} properties\n   * @param {...Child} children\n   * @returns {Element}\n   *\n   * @overload\n   * @param {string} selector\n   * @param {...Child} children\n   * @returns {Element}\n   *\n   * @param {string | null | undefined} [selector]\n   *   Selector.\n   * @param {Child | Properties | null | undefined} [properties]\n   *   Properties (or first child) (default: `undefined`).\n   * @param {...Child} children\n   *   Children.\n   * @returns {Result}\n   *   Result.\n   */\n  function h(selector, properties, ...children) {\n    /** @type {Result} */\n    let node\n\n    if (selector === null || selector === undefined) {\n      node = {type: 'root', children: []}\n      // Properties are not supported for roots.\n      const child = /** @type {Child} */ (properties)\n      children.unshift(child)\n    } else {\n      node = parseSelector(selector, defaultTagName)\n      // Normalize the name.\n      const lower = node.tagName.toLowerCase()\n      const adjusted = adjust ? adjust.get(lower) : undefined\n      node.tagName = adjusted || lower\n\n      // Handle properties.\n      if (isChild(properties)) {\n        children.unshift(properties)\n      } else {\n        for (const [key, value] of Object.entries(properties)) {\n          addProperty(schema, node.properties, key, value)\n        }\n      }\n    }\n\n    // Handle children.\n    for (const child of children) {\n      addChild(node.children, child)\n    }\n\n    if (node.type === 'element' && node.tagName === 'template') {\n      node.content = {type: 'root', children: node.children}\n      node.children = []\n    }\n\n    return node\n  }\n\n  return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n *   Value to check.\n * @returns {value is Child}\n *   Whether `value` is definitely a child.\n */\nfunction isChild(value) {\n  // Never properties if not an object.\n  if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n    return true\n  }\n\n  // Never node without `type`; that’s the main discriminator.\n  if (typeof value.type !== 'string') return false\n\n  // Slower check: never property value if object or array with\n  // non-number/strings.\n  const record = /** @type {Record<string, unknown>} */ (value)\n  const keys = Object.keys(value)\n\n  for (const key of keys) {\n    const value = record[key]\n\n    if (value && typeof value === 'object') {\n      if (!Array.isArray(value)) return true\n\n      const list = /** @type {ReadonlyArray<unknown>} */ (value)\n\n      for (const item of list) {\n        if (typeof item !== 'number' && typeof item !== 'string') {\n          return true\n        }\n      }\n    }\n  }\n\n  // Also see empty `children` as a node.\n  if ('children' in value && Array.isArray(value.children)) {\n    return true\n  }\n\n  // Default to properties, someone can always pass an empty object,\n  // put `data: {}` in a node,\n  // or wrap it in an array.\n  return false\n}\n\n/**\n * @param {Schema} schema\n *   Schema.\n * @param {Properties} properties\n *   Properties object.\n * @param {string} key\n *   Property name.\n * @param {PropertyValue | Style} value\n *   Property value.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n  const info = find(schema, key)\n  /** @type {PropertyValue} */\n  let result\n\n  // Ignore nullish and NaN values.\n  if (value === null || value === undefined) return\n\n  if (typeof value === 'number') {\n    // Ignore NaN.\n    if (Number.isNaN(value)) return\n\n    result = value\n  }\n  // Booleans.\n  else if (typeof value === 'boolean') {\n    result = value\n  }\n  // Handle list values.\n  else if (typeof value === 'string') {\n    if (info.spaceSeparated) {\n      result = parseSpaces(value)\n    } else if (info.commaSeparated) {\n      result = parseCommas(value)\n    } else if (info.commaOrSpaceSeparated) {\n      result = parseSpaces(parseCommas(value).join(' '))\n    } else {\n      result = parsePrimitive(info, info.property, value)\n    }\n  } else if (Array.isArray(value)) {\n    result = [...value]\n  } else {\n    result = info.property === 'style' ? style(value) : String(value)\n  }\n\n  if (Array.isArray(result)) {\n    /** @type {Array<number | string>} */\n    const finalResult = []\n\n    for (const item of result) {\n      // Assume no booleans in array.\n      finalResult.push(\n        /** @type {number | string} */ (\n          parsePrimitive(info, info.property, item)\n        )\n      )\n    }\n\n    result = finalResult\n  }\n\n  // Class names (which can be added both on the `selector` and here).\n  if (info.property === 'className' && Array.isArray(properties.className)) {\n    // Assume no booleans in `className`.\n    result = properties.className.concat(\n      /** @type {Array<number | string> | number | string} */ (result)\n    )\n  }\n\n  properties[info.property] = result\n}\n\n/**\n * @param {Array<RootContent>} nodes\n *   Children.\n * @param {Child} value\n *   Child.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addChild(nodes, value) {\n  if (value === null || value === undefined) {\n    // Empty.\n  } else if (typeof value === 'number' || typeof value === 'string') {\n    nodes.push({type: 'text', value: String(value)})\n  } else if (Array.isArray(value)) {\n    for (const child of value) {\n      addChild(nodes, child)\n    }\n  } else if (typeof value === 'object' && 'type' in value) {\n    if (value.type === 'root') {\n      addChild(nodes, value.children)\n    } else {\n      nodes.push(value)\n    }\n  } else {\n    throw new Error('Expected node, nodes, or string, got `' + value + '`')\n  }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n *   Property information.\n * @param {string} name\n *   Property name.\n * @param {PrimitiveValue} value\n *   Property value.\n * @returns {PrimitiveValue}\n *   Property value.\n */\nfunction parsePrimitive(info, name, value) {\n  if (typeof value === 'string') {\n    if (info.number && value && !Number.isNaN(Number(value))) {\n      return Number(value)\n    }\n\n    if (\n      (info.boolean || info.overloadedBoolean) &&\n      (value === '' || normalize(value) === normalize(name))\n    ) {\n      return true\n    }\n  }\n\n  return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} styles\n *   Style object.\n * @returns {string}\n *   CSS string.\n */\nfunction style(styles) {\n  /** @type {Array<string>} */\n  const result = []\n\n  for (const [key, value] of Object.entries(styles)) {\n    result.push([key, value].join(': '))\n  }\n\n  return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {ReadonlyArray<string>} values\n *   List of properly cased keys.\n * @returns {Map<string, string>}\n *   Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n  /** @type {Map<string, string>} */\n  const result = new Map()\n\n  for (const value of values) {\n    result.set(value.toLowerCase(), value)\n  }\n\n  return result\n}\n","/**\n * List of case-sensitive SVG tag names.\n *\n * @type {ReadonlyArray<string>}\n */\nexport const svgCaseSensitiveTagNames = [\n  'altGlyph',\n  'altGlyphDef',\n  'altGlyphItem',\n  'animateColor',\n  'animateMotion',\n  'animateTransform',\n  'clipPath',\n  'feBlend',\n  'feColorMatrix',\n  'feComponentTransfer',\n  'feComposite',\n  'feConvolveMatrix',\n  'feDiffuseLighting',\n  'feDisplacementMap',\n  'feDistantLight',\n  'feDropShadow',\n  'feFlood',\n  'feFuncA',\n  'feFuncB',\n  'feFuncG',\n  'feFuncR',\n  'feGaussianBlur',\n  'feImage',\n  'feMerge',\n  'feMergeNode',\n  'feMorphology',\n  'feOffset',\n  'fePointLight',\n  'feSpecularLighting',\n  'feSpotLight',\n  'feTile',\n  'feTurbulence',\n  'foreignObject',\n  'glyphRef',\n  'linearGradient',\n  'radialGradient',\n  'solidColor',\n  'textArea',\n  'textPath'\n]\n","// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./lib/create-h.js').Child} Child\n * @typedef {import('./lib/create-h.js').Properties} Properties\n * @typedef {import('./lib/create-h.js').Result} Result\n */\n\nexport {h, s} from './lib/index.js'\n","/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n  'AElig',\n  'AMP',\n  'Aacute',\n  'Acirc',\n  'Agrave',\n  'Aring',\n  'Atilde',\n  'Auml',\n  'COPY',\n  'Ccedil',\n  'ETH',\n  'Eacute',\n  'Ecirc',\n  'Egrave',\n  'Euml',\n  'GT',\n  'Iacute',\n  'Icirc',\n  'Igrave',\n  'Iuml',\n  'LT',\n  'Ntilde',\n  'Oacute',\n  'Ocirc',\n  'Ograve',\n  'Oslash',\n  'Otilde',\n  'Ouml',\n  'QUOT',\n  'REG',\n  'THORN',\n  'Uacute',\n  'Ucirc',\n  'Ugrave',\n  'Uuml',\n  'Yacute',\n  'aacute',\n  'acirc',\n  'acute',\n  'aelig',\n  'agrave',\n  'amp',\n  'aring',\n  'atilde',\n  'auml',\n  'brvbar',\n  'ccedil',\n  'cedil',\n  'cent',\n  'copy',\n  'curren',\n  'deg',\n  'divide',\n  'eacute',\n  'ecirc',\n  'egrave',\n  'eth',\n  'euml',\n  'frac12',\n  'frac14',\n  'frac34',\n  'gt',\n  'iacute',\n  'icirc',\n  'iexcl',\n  'igrave',\n  'iquest',\n  'iuml',\n  'laquo',\n  'lt',\n  'macr',\n  'micro',\n  'middot',\n  'nbsp',\n  'not',\n  'ntilde',\n  'oacute',\n  'ocirc',\n  'ograve',\n  'ordf',\n  'ordm',\n  'oslash',\n  'otilde',\n  'ouml',\n  'para',\n  'plusmn',\n  'pound',\n  'quot',\n  'raquo',\n  'reg',\n  'sect',\n  'shy',\n  'sup1',\n  'sup2',\n  'sup3',\n  'szlig',\n  'thorn',\n  'times',\n  'uacute',\n  'ucirc',\n  'ugrave',\n  'uml',\n  'uuml',\n  'yacute',\n  'yen',\n  'yuml'\n]\n","/**\n * Map of invalid numeric character references to their replacements, according to HTML.\n *\n * @type {Record<number, string>}\n */\nexport const characterReferenceInvalid = {\n  0: '�',\n  128: '€',\n  130: '‚',\n  131: 'ƒ',\n  132: '„',\n  133: '…',\n  134: '†',\n  135: '‡',\n  136: 'ˆ',\n  137: '‰',\n  138: 'Š',\n  139: '‹',\n  140: 'Œ',\n  142: 'Ž',\n  145: '‘',\n  146: '’',\n  147: '“',\n  148: '”',\n  149: '•',\n  150: '–',\n  151: '—',\n  152: '˜',\n  153: '™',\n  154: 'š',\n  155: '›',\n  156: 'œ',\n  158: 'ž',\n  159: 'Ÿ'\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is decimal.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is a decimal\n */\nexport function isDecimal(character) {\n  const code =\n    typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return code >= 48 && code <= 57 /* 0-9 */\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is hexadecimal.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is hexadecimal\n */\nexport function isHexadecimal(character) {\n  const code =\n    typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 /* a */ && code <= 102) /* z */ ||\n    (code >= 65 /* A */ && code <= 70) /* Z */ ||\n    (code >= 48 /* A */ && code <= 57) /* Z */\n  )\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is alphabetical.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is alphabetical.\n */\nexport function isAlphabetical(character) {\n  const code =\n    typeof character === 'string' ? character.charCodeAt(0) : character\n\n  return (\n    (code >= 97 && code <= 122) /* a-z */ ||\n    (code >= 65 && code <= 90) /* A-Z */\n  )\n}\n","import {isAlphabetical} from 'is-alphabetical'\nimport {isDecimal} from 'is-decimal'\n\n/**\n * Check if the given character code, or the character code at the first\n * character, is alphanumerical.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is alphanumerical.\n */\nexport function isAlphanumerical(character) {\n  return isAlphabetical(character) || isDecimal(character)\n}\n","/**\n * @import {Point} from 'unist'\n * @import {Options} from '../index.js'\n */\n\nimport {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterReferenceInvalid} from 'character-reference-invalid'\nimport {isDecimal} from 'is-decimal'\nimport {isHexadecimal} from 'is-hexadecimal'\nimport {isAlphanumerical} from 'is-alphanumerical'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\n\n// Warning messages.\nconst messages = [\n  '',\n  /* 1: Non terminated (named) */\n  'Named character references must be terminated by a semicolon',\n  /* 2: Non terminated (numeric) */\n  'Numeric character references must be terminated by a semicolon',\n  /* 3: Empty (named) */\n  'Named character references cannot be empty',\n  /* 4: Empty (numeric) */\n  'Numeric character references cannot be empty',\n  /* 5: Unknown (named) */\n  'Named character references must be known',\n  /* 6: Disallowed (numeric) */\n  'Numeric character references cannot be disallowed',\n  /* 7: Prohibited (numeric) */\n  'Numeric character references cannot be outside the permissible Unicode range'\n]\n\n/**\n * Parse HTML character references.\n *\n * @param {string} value\n * @param {Readonly<Options> | null | undefined} [options]\n */\nexport function parseEntities(value, options) {\n  const settings = options || {}\n  const additional =\n    typeof settings.additional === 'string'\n      ? settings.additional.charCodeAt(0)\n      : settings.additional\n  /** @type {Array<string>} */\n  const result = []\n  let index = 0\n  let lines = -1\n  let queue = ''\n  /** @type {Point | undefined} */\n  let point\n  /** @type {Array<number>|undefined} */\n  let indent\n\n  if (settings.position) {\n    if ('start' in settings.position || 'indent' in settings.position) {\n      // @ts-expect-error: points don’t have indent.\n      indent = settings.position.indent\n      // @ts-expect-error: points don’t have indent.\n      point = settings.position.start\n    } else {\n      point = settings.position\n    }\n  }\n\n  let line = (point ? point.line : 0) || 1\n  let column = (point ? point.column : 0) || 1\n\n  // Cache the current point.\n  let previous = now()\n  /** @type {number|undefined} */\n  let character\n\n  // Ensure the algorithm walks over the first character (inclusive).\n  index--\n\n  while (++index <= value.length) {\n    // If the previous character was a newline.\n    if (character === 10 /* `\\n` */) {\n      column = (indent ? indent[lines] : 0) || 1\n    }\n\n    character = value.charCodeAt(index)\n\n    if (character === 38 /* `&` */) {\n      const following = value.charCodeAt(index + 1)\n\n      // The behavior depends on the identity of the next character.\n      if (\n        following === 9 /* `\\t` */ ||\n        following === 10 /* `\\n` */ ||\n        following === 12 /* `\\f` */ ||\n        following === 32 /* ` ` */ ||\n        following === 38 /* `&` */ ||\n        following === 60 /* `<` */ ||\n        Number.isNaN(following) ||\n        (additional && following === additional)\n      ) {\n        // Not a character reference.\n        // No characters are consumed, and nothing is returned.\n        // This is not an error, either.\n        queue += String.fromCharCode(character)\n        column++\n        continue\n      }\n\n      const start = index + 1\n      let begin = start\n      let end = start\n      /** @type {string} */\n      let type\n\n      if (following === 35 /* `#` */) {\n        // Numerical reference.\n        end = ++begin\n\n        // The behavior further depends on the next character.\n        const following = value.charCodeAt(end)\n\n        if (following === 88 /* `X` */ || following === 120 /* `x` */) {\n          // ASCII hexadecimal digits.\n          type = 'hexadecimal'\n          end = ++begin\n        } else {\n          // ASCII decimal digits.\n          type = 'decimal'\n        }\n      } else {\n        // Named reference.\n        type = 'named'\n      }\n\n      let characterReferenceCharacters = ''\n      let characterReference = ''\n      let characters = ''\n      // Each type of character reference accepts different characters.\n      // This test is used to detect whether a reference has ended (as the semicolon\n      // is not strictly needed).\n      const test =\n        type === 'named'\n          ? isAlphanumerical\n          : type === 'decimal'\n            ? isDecimal\n            : isHexadecimal\n\n      end--\n\n      while (++end <= value.length) {\n        const following = value.charCodeAt(end)\n\n        if (!test(following)) {\n          break\n        }\n\n        characters += String.fromCharCode(following)\n\n        // Check if we can match a legacy named reference.\n        // If so, we cache that as the last viable named reference.\n        // This ensures we do not need to walk backwards later.\n        if (type === 'named' && characterEntitiesLegacy.includes(characters)) {\n          characterReferenceCharacters = characters\n          // @ts-expect-error: always able to decode.\n          characterReference = decodeNamedCharacterReference(characters)\n        }\n      }\n\n      let terminated = value.charCodeAt(end) === 59 /* `;` */\n\n      if (terminated) {\n        end++\n\n        const namedReference =\n          type === 'named' ? decodeNamedCharacterReference(characters) : false\n\n        if (namedReference) {\n          characterReferenceCharacters = characters\n          characterReference = namedReference\n        }\n      }\n\n      let diff = 1 + end - start\n      let reference = ''\n\n      if (!terminated && settings.nonTerminated === false) {\n        // Empty.\n      } else if (!characters) {\n        // An empty (possible) reference is valid, unless it’s numeric (thus an\n        // ampersand followed by an octothorp).\n        if (type !== 'named') {\n          warning(4 /* Empty (numeric) */, diff)\n        }\n      } else if (type === 'named') {\n        // An ampersand followed by anything unknown, and not terminated, is\n        // invalid.\n        if (terminated && !characterReference) {\n          warning(5 /* Unknown (named) */, 1)\n        } else {\n          // If there’s something after an named reference which is not known,\n          // cap the reference.\n          if (characterReferenceCharacters !== characters) {\n            end = begin + characterReferenceCharacters.length\n            diff = 1 + end - begin\n            terminated = false\n          }\n\n          // If the reference is not terminated, warn.\n          if (!terminated) {\n            const reason = characterReferenceCharacters\n              ? 1 /* Non terminated (named) */\n              : 3 /* Empty (named) */\n\n            if (settings.attribute) {\n              const following = value.charCodeAt(end)\n\n              if (following === 61 /* `=` */) {\n                warning(reason, diff)\n                characterReference = ''\n              } else if (isAlphanumerical(following)) {\n                characterReference = ''\n              } else {\n                warning(reason, diff)\n              }\n            } else {\n              warning(reason, diff)\n            }\n          }\n        }\n\n        reference = characterReference\n      } else {\n        if (!terminated) {\n          // All nonterminated numeric references are not rendered, and emit a\n          // warning.\n          warning(2 /* Non terminated (numeric) */, diff)\n        }\n\n        // When terminated and numerical, parse as either hexadecimal or\n        // decimal.\n        let referenceCode = Number.parseInt(\n          characters,\n          type === 'hexadecimal' ? 16 : 10\n        )\n\n        // Emit a warning when the parsed number is prohibited, and replace with\n        // replacement character.\n        if (prohibited(referenceCode)) {\n          warning(7 /* Prohibited (numeric) */, diff)\n          reference = String.fromCharCode(65533 /* `�` */)\n        } else if (referenceCode in characterReferenceInvalid) {\n          // Emit a warning when the parsed number is disallowed, and replace by\n          // an alternative.\n          warning(6 /* Disallowed (numeric) */, diff)\n          reference = characterReferenceInvalid[referenceCode]\n        } else {\n          // Parse the number.\n          let output = ''\n\n          // Emit a warning when the parsed number should not be used.\n          if (disallowed(referenceCode)) {\n            warning(6 /* Disallowed (numeric) */, diff)\n          }\n\n          // Serialize the number.\n          if (referenceCode > 0xffff) {\n            referenceCode -= 0x10000\n            output += String.fromCharCode(\n              (referenceCode >>> (10 & 0x3ff)) | 0xd800\n            )\n            referenceCode = 0xdc00 | (referenceCode & 0x3ff)\n          }\n\n          reference = output + String.fromCharCode(referenceCode)\n        }\n      }\n\n      // Found it!\n      // First eat the queued characters as normal text, then eat a reference.\n      if (reference) {\n        flush()\n\n        previous = now()\n        index = end - 1\n        column += end - start + 1\n        result.push(reference)\n        const next = now()\n        next.offset++\n\n        if (settings.reference) {\n          settings.reference.call(\n            settings.referenceContext || undefined,\n            reference,\n            {start: previous, end: next},\n            value.slice(start - 1, end)\n          )\n        }\n\n        previous = next\n      } else {\n        // If we could not find a reference, queue the checked characters (as\n        // normal characters), and move the pointer to their end.\n        // This is possible because we can be certain neither newlines nor\n        // ampersands are included.\n        characters = value.slice(start - 1, end)\n        queue += characters\n        column += characters.length\n        index = end - 1\n      }\n    } else {\n      // Handle anything other than an ampersand, including newlines and EOF.\n      if (character === 10 /* `\\n` */) {\n        line++\n        lines++\n        column = 0\n      }\n\n      if (Number.isNaN(character)) {\n        flush()\n      } else {\n        queue += String.fromCharCode(character)\n        column++\n      }\n    }\n  }\n\n  // Return the reduced nodes.\n  return result.join('')\n\n  // Get current position.\n  function now() {\n    return {\n      line,\n      column,\n      offset: index + ((point ? point.offset : 0) || 0)\n    }\n  }\n\n  /**\n   * Handle the warning.\n   *\n   * @param {1|2|3|4|5|6|7} code\n   * @param {number} offset\n   */\n  function warning(code, offset) {\n    /** @type {ReturnType<now>} */\n    let position\n\n    if (settings.warning) {\n      position = now()\n      position.column += offset\n      position.offset += offset\n\n      settings.warning.call(\n        settings.warningContext || undefined,\n        messages[code],\n        position,\n        code\n      )\n    }\n  }\n\n  /**\n   * Flush `queue` (normal text).\n   * Macro invoked before each reference and at the end of `value`.\n   * Does nothing when `queue` is empty.\n   */\n  function flush() {\n    if (queue) {\n      result.push(queue)\n\n      if (settings.text) {\n        settings.text.call(settings.textContext || undefined, queue, {\n          start: previous,\n          end: now()\n        })\n      }\n\n      queue = ''\n    }\n  }\n}\n\n/**\n * Check if `character` is outside the permissible unicode range.\n *\n * @param {number} code\n * @returns {boolean}\n */\nfunction prohibited(code) {\n  return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n/**\n * Check if `character` is disallowed.\n *\n * @param {number} code\n * @returns {boolean}\n */\nfunction disallowed(code) {\n  return (\n    (code >= 0x0001 && code <= 0x0008) ||\n    code === 0x000b ||\n    (code >= 0x000d && code <= 0x001f) ||\n    (code >= 0x007f && code <= 0x009f) ||\n    (code >= 0xfdd0 && code <= 0xfdef) ||\n    (code & 0xffff) === 0xffff ||\n    (code & 0xffff) === 0xfffe\n  )\n}\n","// Note: more types exposed from `index.d.ts`.\n// To do: refactor to include type parameters in JS.\nexport {parseEntities} from './lib/index.js'\n","// @ts-nocheck\n\n// This is a slimmed down version of `prism-core.js`, to remove globals,\n// document, workers, `util.encode`, `Token.stringify`\n\n// Private helper vars\nvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i\nvar uniqueId = 0\n\n// The grammar object for plaintext\nvar plainTextGrammar = {}\n\nvar _ = {\n  /**\n   * A namespace for utility methods.\n   *\n   * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n   * change or disappear at any time.\n   *\n   * @namespace\n   * @memberof Prism\n   */\n  util: {\n    /**\n     * Returns the name of the type of the given value.\n     *\n     * @param {any} o\n     * @returns {string}\n     * @example\n     * type(null)      === 'Null'\n     * type(undefined) === 'Undefined'\n     * type(123)       === 'Number'\n     * type('foo')     === 'String'\n     * type(true)      === 'Boolean'\n     * type([1, 2])    === 'Array'\n     * type({})        === 'Object'\n     * type(String)    === 'Function'\n     * type(/abc+/)    === 'RegExp'\n     */\n    type: function (o) {\n      return Object.prototype.toString.call(o).slice(8, -1)\n    },\n\n    /**\n     * Returns a unique number for the given object. Later calls will still return the same number.\n     *\n     * @param {Object} obj\n     * @returns {number}\n     */\n    objId: function (obj) {\n      if (!obj['__id']) {\n        Object.defineProperty(obj, '__id', {value: ++uniqueId})\n      }\n      return obj['__id']\n    },\n\n    /**\n     * Creates a deep clone of the given object.\n     *\n     * The main intended use of this function is to clone language definitions.\n     *\n     * @param {T} o\n     * @param {Record<number, any>} [visited]\n     * @returns {T}\n     * @template T\n     */\n    clone: function deepClone(o, visited) {\n      visited = visited || {}\n\n      var clone\n      var id\n      switch (_.util.type(o)) {\n        case 'Object':\n          id = _.util.objId(o)\n          if (visited[id]) {\n            return visited[id]\n          }\n          clone = /** @type {Record<string, any>} */ ({})\n          visited[id] = clone\n\n          for (var key in o) {\n            if (o.hasOwnProperty(key)) {\n              clone[key] = deepClone(o[key], visited)\n            }\n          }\n\n          return /** @type {any} */ (clone)\n\n        case 'Array':\n          id = _.util.objId(o)\n          if (visited[id]) {\n            return visited[id]\n          }\n          clone = []\n          visited[id] = clone\n\n          ;/** @type {Array} */ (/** @type {any} */ (o)).forEach(\n            function (v, i) {\n              clone[i] = deepClone(v, visited)\n            }\n          )\n\n          return /** @type {any} */ (clone)\n\n        default:\n          return o\n      }\n    }\n  },\n\n  /**\n   * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n   *\n   * @namespace\n   * @memberof Prism\n   * @public\n   */\n  languages: {\n    /**\n     * The grammar for plain, unformatted text.\n     */\n    plain: plainTextGrammar,\n    plaintext: plainTextGrammar,\n    text: plainTextGrammar,\n    txt: plainTextGrammar,\n\n    /**\n     * Creates a deep copy of the language with the given id and appends the given tokens.\n     *\n     * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n     * will be overwritten at its original position.\n     *\n     * ## Best practices\n     *\n     * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n     * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n     * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n     *\n     * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n     * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n     *\n     * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n     * @param {Grammar} redef The new tokens to append.\n     * @returns {Grammar} The new language created.\n     * @public\n     * @example\n     * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n     *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n     *     // at its original position\n     *     'comment': { ... },\n     *     // CSS doesn't have a 'color' token, so this token will be appended\n     *     'color': /\\b(?:red|green|blue)\\b/\n     * });\n     */\n    extend: function (id, redef) {\n      var lang = _.util.clone(_.languages[id])\n\n      for (var key in redef) {\n        lang[key] = redef[key]\n      }\n\n      return lang\n    },\n\n    /**\n     * Inserts tokens _before_ another token in a language definition or any other grammar.\n     *\n     * ## Usage\n     *\n     * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n     * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n     * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n     * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n     * this:\n     *\n     * ```js\n     * Prism.languages.markup.style = {\n     *     // token\n     * };\n     * ```\n     *\n     * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n     * before existing tokens. For the CSS example above, you would use it like this:\n     *\n     * ```js\n     * Prism.languages.insertBefore('markup', 'cdata', {\n     *     'style': {\n     *         // token\n     *     }\n     * });\n     * ```\n     *\n     * ## Special cases\n     *\n     * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n     * will be ignored.\n     *\n     * This behavior can be used to insert tokens after `before`:\n     *\n     * ```js\n     * Prism.languages.insertBefore('markup', 'comment', {\n     *     'comment': Prism.languages.markup.comment,\n     *     // tokens after 'comment'\n     * });\n     * ```\n     *\n     * ## Limitations\n     *\n     * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n     * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n     * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n     * deleting properties which is necessary to insert at arbitrary positions.\n     *\n     * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n     * Instead, it will create a new object and replace all references to the target object with the new one. This\n     * can be done without temporarily deleting properties, so the iteration order is well-defined.\n     *\n     * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n     * you hold the target object in a variable, then the value of the variable will not change.\n     *\n     * ```js\n     * var oldMarkup = Prism.languages.markup;\n     * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n     *\n     * assert(oldMarkup !== Prism.languages.markup);\n     * assert(newMarkup === Prism.languages.markup);\n     * ```\n     *\n     * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n     * object to be modified.\n     * @param {string} before The key to insert before.\n     * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n     * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n     * object to be modified.\n     *\n     * Defaults to `Prism.languages`.\n     * @returns {Grammar} The new grammar object.\n     * @public\n     */\n    insertBefore: function (inside, before, insert, root) {\n      root = root || /** @type {any} */ (_.languages)\n      var grammar = root[inside]\n      /** @type {Grammar} */\n      var ret = {}\n\n      for (var token in grammar) {\n        if (grammar.hasOwnProperty(token)) {\n          if (token == before) {\n            for (var newToken in insert) {\n              if (insert.hasOwnProperty(newToken)) {\n                ret[newToken] = insert[newToken]\n              }\n            }\n          }\n\n          // Do not insert token which also occur in insert. See #1525\n          if (!insert.hasOwnProperty(token)) {\n            ret[token] = grammar[token]\n          }\n        }\n      }\n\n      var old = root[inside]\n      root[inside] = ret\n\n      // Update references in other language definitions\n      _.languages.DFS(_.languages, function (key, value) {\n        if (value === old && key != inside) {\n          this[key] = ret\n        }\n      })\n\n      return ret\n    },\n\n    // Traverse a language definition with Depth First Search\n    DFS: function DFS(o, callback, type, visited) {\n      visited = visited || {}\n\n      var objId = _.util.objId\n\n      for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n          callback.call(o, i, o[i], type || i)\n\n          var property = o[i]\n          var propertyType = _.util.type(property)\n\n          if (propertyType === 'Object' && !visited[objId(property)]) {\n            visited[objId(property)] = true\n            DFS(property, callback, null, visited)\n          } else if (propertyType === 'Array' && !visited[objId(property)]) {\n            visited[objId(property)] = true\n            DFS(property, callback, i, visited)\n          }\n        }\n      }\n    }\n  },\n\n  plugins: {},\n\n  /**\n   * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n   * and the language definitions to use, and returns a string with the HTML produced.\n   *\n   * The following hooks will be run:\n   * 1. `before-tokenize`\n   * 2. `after-tokenize`\n   * 3. `wrap`: On each {@link Token}.\n   *\n   * @param {string} text A string with the code to be highlighted.\n   * @param {Grammar} grammar An object containing the tokens to use.\n   *\n   * Usually a language definition like `Prism.languages.markup`.\n   * @param {string} language The name of the language definition passed to `grammar`.\n   * @returns {string} The highlighted HTML.\n   * @memberof Prism\n   * @public\n   * @example\n   * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n   */\n  highlight: function (text, grammar, language) {\n    var env = {\n      code: text,\n      grammar: grammar,\n      language: language\n    }\n    _.hooks.run('before-tokenize', env)\n    if (!env.grammar) {\n      throw new Error('The language \"' + env.language + '\" has no grammar.')\n    }\n    env.tokens = _.tokenize(env.code, env.grammar)\n    _.hooks.run('after-tokenize', env)\n    return Token.stringify(_.util.encode(env.tokens), env.language)\n  },\n\n  /**\n   * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n   * and the language definitions to use, and returns an array with the tokenized code.\n   *\n   * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n   *\n   * This method could be useful in other contexts as well, as a very crude parser.\n   *\n   * @param {string} text A string with the code to be highlighted.\n   * @param {Grammar} grammar An object containing the tokens to use.\n   *\n   * Usually a language definition like `Prism.languages.markup`.\n   * @returns {TokenStream} An array of strings and tokens, a token stream.\n   * @memberof Prism\n   * @public\n   * @example\n   * let code = `var foo = 0;`;\n   * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n   * tokens.forEach(token => {\n   *     if (token instanceof Prism.Token && token.type === 'number') {\n   *         console.log(`Found numeric literal: ${token.content}`);\n   *     }\n   * });\n   */\n  tokenize: function (text, grammar) {\n    var rest = grammar.rest\n    if (rest) {\n      for (var token in rest) {\n        grammar[token] = rest[token]\n      }\n\n      delete grammar.rest\n    }\n\n    var tokenList = new LinkedList()\n    addAfter(tokenList, tokenList.head, text)\n\n    matchGrammar(text, tokenList, grammar, tokenList.head, 0)\n\n    return toArray(tokenList)\n  },\n\n  /**\n   * @namespace\n   * @memberof Prism\n   * @public\n   */\n  hooks: {\n    all: {},\n\n    /**\n     * Adds the given callback to the list of callbacks for the given hook.\n     *\n     * The callback will be invoked when the hook it is registered for is run.\n     * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n     *\n     * One callback function can be registered to multiple hooks and the same hook multiple times.\n     *\n     * @param {string} name The name of the hook.\n     * @param {HookCallback} callback The callback function which is given environment variables.\n     * @public\n     */\n    add: function (name, callback) {\n      var hooks = _.hooks.all\n\n      hooks[name] = hooks[name] || []\n\n      hooks[name].push(callback)\n    },\n\n    /**\n     * Runs a hook invoking all registered callbacks with the given environment variables.\n     *\n     * Callbacks will be invoked synchronously and in the order in which they were registered.\n     *\n     * @param {string} name The name of the hook.\n     * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n     * @public\n     */\n    run: function (name, env) {\n      var callbacks = _.hooks.all[name]\n\n      if (!callbacks || !callbacks.length) {\n        return\n      }\n\n      for (var i = 0, callback; (callback = callbacks[i++]); ) {\n        callback(env)\n      }\n    }\n  },\n\n  Token: Token\n}\n\n// Typescript note:\n// The following can be used to import the Token type in JSDoc:\n//\n//   @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n/**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\nfunction Token(type, content, alias, matchedStr) {\n  /**\n   * The type of the token.\n   *\n   * This is usually the key of a pattern in a {@link Grammar}.\n   *\n   * @type {string}\n   * @see GrammarToken\n   * @public\n   */\n  this.type = type\n  /**\n   * The strings or tokens contained by this token.\n   *\n   * This will be a token stream if the pattern matched also defined an `inside` grammar.\n   *\n   * @type {string | TokenStream}\n   * @public\n   */\n  this.content = content\n  /**\n   * The alias(es) of the token.\n   *\n   * @type {string|string[]}\n   * @see GrammarToken\n   * @public\n   */\n  this.alias = alias\n  // Copy of the full string this token was created from\n  this.length = (matchedStr || '').length | 0\n}\n\n/**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n *    The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n/**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\nfunction matchPattern(pattern, pos, text, lookbehind) {\n  pattern.lastIndex = pos\n  var match = pattern.exec(text)\n  if (match && lookbehind && match[1]) {\n    // change the match to remove the text matched by the Prism lookbehind group\n    var lookbehindLength = match[1].length\n    match.index += lookbehindLength\n    match[0] = match[0].slice(lookbehindLength)\n  }\n  return match\n}\n\n/**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n  for (var token in grammar) {\n    if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n      continue\n    }\n\n    var patterns = grammar[token]\n    patterns = Array.isArray(patterns) ? patterns : [patterns]\n\n    for (var j = 0; j < patterns.length; ++j) {\n      if (rematch && rematch.cause == token + ',' + j) {\n        return\n      }\n\n      var patternObj = patterns[j]\n      var inside = patternObj.inside\n      var lookbehind = !!patternObj.lookbehind\n      var greedy = !!patternObj.greedy\n      var alias = patternObj.alias\n\n      if (greedy && !patternObj.pattern.global) {\n        // Without the global flag, lastIndex won't work\n        var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0]\n        patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g')\n      }\n\n      /** @type {RegExp} */\n      var pattern = patternObj.pattern || patternObj\n\n      for (\n        // iterate the token list and keep track of the current token/string position\n        var currentNode = startNode.next, pos = startPos;\n        currentNode !== tokenList.tail;\n        pos += currentNode.value.length, currentNode = currentNode.next\n      ) {\n        if (rematch && pos >= rematch.reach) {\n          break\n        }\n\n        var str = currentNode.value\n\n        if (tokenList.length > text.length) {\n          // Something went terribly wrong, ABORT, ABORT!\n          return\n        }\n\n        if (str instanceof Token) {\n          continue\n        }\n\n        var removeCount = 1 // this is the to parameter of removeBetween\n        var match\n\n        if (greedy) {\n          match = matchPattern(pattern, pos, text, lookbehind)\n          if (!match || match.index >= text.length) {\n            break\n          }\n\n          var from = match.index\n          var to = match.index + match[0].length\n          var p = pos\n\n          // find the node that contains the match\n          p += currentNode.value.length\n          while (from >= p) {\n            currentNode = currentNode.next\n            p += currentNode.value.length\n          }\n          // adjust pos (and p)\n          p -= currentNode.value.length\n          pos = p\n\n          // the current node is a Token, then the match starts inside another Token, which is invalid\n          if (currentNode.value instanceof Token) {\n            continue\n          }\n\n          // find the last node which is affected by this match\n          for (\n            var k = currentNode;\n            k !== tokenList.tail && (p < to || typeof k.value === 'string');\n            k = k.next\n          ) {\n            removeCount++\n            p += k.value.length\n          }\n          removeCount--\n\n          // replace with the new match\n          str = text.slice(pos, p)\n          match.index -= pos\n        } else {\n          match = matchPattern(pattern, 0, str, lookbehind)\n          if (!match) {\n            continue\n          }\n        }\n\n        // eslint-disable-next-line no-redeclare\n        var from = match.index\n        var matchStr = match[0]\n        var before = str.slice(0, from)\n        var after = str.slice(from + matchStr.length)\n\n        var reach = pos + str.length\n        if (rematch && reach > rematch.reach) {\n          rematch.reach = reach\n        }\n\n        var removeFrom = currentNode.prev\n\n        if (before) {\n          removeFrom = addAfter(tokenList, removeFrom, before)\n          pos += before.length\n        }\n\n        removeRange(tokenList, removeFrom, removeCount)\n\n        var wrapped = new Token(\n          token,\n          inside ? _.tokenize(matchStr, inside) : matchStr,\n          alias,\n          matchStr\n        )\n        currentNode = addAfter(tokenList, removeFrom, wrapped)\n\n        if (after) {\n          addAfter(tokenList, currentNode, after)\n        }\n\n        if (removeCount > 1) {\n          // at least one Token object was removed, so we have to do some rematching\n          // this can only happen if the current pattern is greedy\n\n          /** @type {RematchOptions} */\n          var nestedRematch = {\n            cause: token + ',' + j,\n            reach: reach\n          }\n          matchGrammar(\n            text,\n            tokenList,\n            grammar,\n            currentNode.prev,\n            pos,\n            nestedRematch\n          )\n\n          // the reach might have been extended because of the rematching\n          if (rematch && nestedRematch.reach > rematch.reach) {\n            rematch.reach = nestedRematch.reach\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n/**\n * @template T\n * @private\n */\nfunction LinkedList() {\n  /** @type {LinkedListNode<T>} */\n  var head = {value: null, prev: null, next: null}\n  /** @type {LinkedListNode<T>} */\n  var tail = {value: null, prev: head, next: null}\n  head.next = tail\n\n  /** @type {LinkedListNode<T>} */\n  this.head = head\n  /** @type {LinkedListNode<T>} */\n  this.tail = tail\n  this.length = 0\n}\n\n/**\n * Adds a new node with the given value to the list.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n  // assumes that node != list.tail && values.length >= 0\n  var next = node.next\n\n  var newNode = {value: value, prev: node, next: next}\n  node.next = newNode\n  next.prev = newNode\n  list.length++\n\n  return newNode\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n  var next = node.next\n  for (var i = 0; i < count && next !== list.tail; i++) {\n    next = next.next\n  }\n  node.next = next\n  next.prev = node\n  list.length -= i\n}\n/**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n  var array = []\n  var node = list.head.next\n  while (node !== list.tail) {\n    array.push(node.value)\n    node = node.next\n  }\n  return array\n}\n\nexport const Prism = _\n","/**\n * @import {Element, Root, Text} from 'hast'\n * @import {Grammar, Languages} from 'prismjs'\n */\n\n/**\n * @typedef _Token\n *   Hidden Prism token.\n * @property {string} alias\n *   Alias.\n * @property {string} content\n *   Content.\n * @property {number} length\n *   Length.\n * @property {string} type\n *   Type.\n */\n\n/**\n * @typedef _Env\n *   Hidden Prism environment.\n * @property {Record<string, string>} attributes\n *   Attributes.\n * @property {Array<string>} classes\n *   Classes.\n * @property {Array<Element | Text> | Element | Text} content\n *   Content.\n * @property {string} language\n *   Language.\n * @property {string} tag\n *   Tag.\n * @property {string} type\n *   Type.\n */\n\n/**\n * @typedef {((prism: Refractor) => undefined | void) & {aliases?: Array<string> | undefined, displayName: string}} Syntax\n *   Refractor syntax function.\n */\n\n/**\n * @typedef Refractor\n *   Virtual syntax highlighting\n * @property {typeof alias} alias\n * @property {Languages} languages\n * @property {typeof listLanguages} listLanguages\n * @property {typeof highlight} highlight\n * @property {typeof registered} registered\n * @property {typeof register} register\n */\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nimport {h} from 'hastscript'\nimport {parseEntities} from 'parse-entities'\nimport {Prism} from './prism-core.js'\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n/** @type {Refractor} */\n// @ts-expect-error: TS is wrong.\nexport const refractor = new Refractor()\n\n// Create.\nrefractor.highlight = highlight\nrefractor.register = register\nrefractor.alias = alias\nrefractor.registered = registered\nrefractor.listLanguages = listLanguages\n\n// @ts-expect-error Overwrite Prism.\nrefractor.util.encode = encode\n// @ts-expect-error Overwrite Prism.\nrefractor.Token.stringify = stringify\n\n/**\n * Highlight `value` (code) as `language` (programming language).\n *\n * @param {string} value\n *   Code to highlight.\n * @param {Grammar | string} language\n *   Programming language name, alias, or grammar.\n * @returns {Root}\n *   Node representing highlighted code.\n */\nfunction highlight(value, language) {\n  if (typeof value !== 'string') {\n    throw new TypeError('Expected `string` for `value`, got `' + value + '`')\n  }\n\n  /** @type {Grammar} */\n  let grammar\n  /** @type {string | undefined} */\n  let name\n\n  // `name` is a grammar object.\n  // This was called internally by Prism.js before 1.28.0.\n  /* c8 ignore next 2 */\n  if (language && typeof language === 'object') {\n    grammar = language\n  } else {\n    name = language\n\n    if (typeof name !== 'string') {\n      throw new TypeError('Expected `string` for `name`, got `' + name + '`')\n    }\n\n    if (Object.hasOwn(refractor.languages, name)) {\n      grammar = refractor.languages[name]\n    } else {\n      throw new Error('Unknown language: `' + name + '` is not registered')\n    }\n  }\n\n  return {\n    type: 'root',\n    // @ts-expect-error: we hacked Prism to accept and return the things we want.\n    children: Prism.highlight.call(refractor, value, grammar, name)\n  }\n}\n\n/**\n * Register a syntax.\n *\n * @param {Syntax} syntax\n *   Language function made for refractor, as in, the files in\n *   `refractor/lang/*.js`.\n * @returns {undefined}\n *   Nothing.\n */\nfunction register(syntax) {\n  if (typeof syntax !== 'function' || !syntax.displayName) {\n    throw new Error('Expected `function` for `syntax`, got `' + syntax + '`')\n  }\n\n  // Do not duplicate registrations.\n  if (!Object.hasOwn(refractor.languages, syntax.displayName)) {\n    syntax(refractor)\n  }\n}\n\n/**\n * Register aliases for already registered languages.\n *\n * @param {Record<string, ReadonlyArray<string> | string> | string} language\n *   Language to alias.\n * @param {ReadonlyArray<string> | string | null | undefined} [alias]\n *   Aliases.\n * @returns {undefined}\n *   Nothing.\n */\nfunction alias(language, alias) {\n  const languages = refractor.languages\n  /** @type {Record<string, ReadonlyArray<string> | string>} */\n  let map = {}\n\n  if (typeof language === 'string') {\n    if (alias) {\n      map[language] = alias\n    }\n  } else {\n    map = language\n  }\n\n  /** @type {string} */\n  let key\n\n  for (key in map) {\n    if (Object.hasOwn(map, key)) {\n      const value = map[key]\n      const list = typeof value === 'string' ? [value] : value\n      let index = -1\n\n      while (++index < list.length) {\n        languages[list[index]] = languages[key]\n      }\n    }\n  }\n}\n\n/**\n * Check whether an `alias` or `language` is registered.\n *\n * @param {string} aliasOrLanguage\n *   Language or alias to check.\n * @returns {boolean}\n *   Whether the language is registered.\n */\nfunction registered(aliasOrLanguage) {\n  if (typeof aliasOrLanguage !== 'string') {\n    throw new TypeError(\n      'Expected `string` for `aliasOrLanguage`, got `' + aliasOrLanguage + '`'\n    )\n  }\n\n  return Object.hasOwn(refractor.languages, aliasOrLanguage)\n}\n\n/**\n * List all registered languages (names and aliases).\n *\n * @returns {Array<string>}\n *   List of language names.\n */\nfunction listLanguages() {\n  const languages = refractor.languages\n  /** @type {Array<string>} */\n  const list = []\n  /** @type {string} */\n  let language\n\n  for (language in languages) {\n    if (\n      Object.hasOwn(languages, language) &&\n      typeof languages[language] === 'object'\n    ) {\n      list.push(language)\n    }\n  }\n\n  return list\n}\n\n/**\n * @param {Array<_Token | string> | _Token | string} value\n *   Token to stringify.\n * @param {string} language\n *   Language of the token.\n * @returns {Array<Element | Text> | Element | Text}\n *   Node representing the token.\n */\nfunction stringify(value, language) {\n  if (typeof value === 'string') {\n    return {type: 'text', value}\n  }\n\n  if (Array.isArray(value)) {\n    /** @type {Array<Element | Text>} */\n    const result = []\n    let index = -1\n\n    while (++index < value.length) {\n      if (\n        value[index] !== null &&\n        value[index] !== undefined &&\n        value[index] !== ''\n      ) {\n        // Cast because we assume no sub-arrays.\n        result.push(\n          /** @type {Element | Text} */ (stringify(value[index], language))\n        )\n      }\n    }\n\n    return result\n  }\n\n  /** @type {_Env} */\n  const env = {\n    attributes: {},\n    classes: ['token', value.type],\n    content: stringify(value.content, language),\n    language,\n    tag: 'span',\n    type: value.type\n  }\n\n  if (value.alias) {\n    env.classes.push(\n      ...(typeof value.alias === 'string' ? [value.alias] : value.alias)\n    )\n  }\n\n  // @ts-expect-error Prism.\n  refractor.hooks.run('wrap', env)\n\n  return h(\n    env.tag + '.' + env.classes.join('.'),\n    attributes(env.attributes),\n    env.content\n  )\n}\n\n/**\n * @template {unknown} T\n *   Tokens.\n * @param {T} tokens\n *   Input.\n * @returns {T}\n *   Output, same as input.\n */\nfunction encode(tokens) {\n  return tokens\n}\n\n/**\n * @param {Record<string, string>} record\n *   Attributes.\n * @returns {Record<string, string>}\n *   Attributes.\n */\nfunction attributes(record) {\n  /** @type {string} */\n  let key\n\n  for (key in record) {\n    if (Object.hasOwn(record, key)) {\n      record[key] = parseEntities(record[key])\n    }\n  }\n\n  return record\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmarkup.displayName = 'markup'\nmarkup.aliases = ['atom', 'html', 'mathml', 'rss', 'ssml', 'svg', 'xml']\n\n/** @param {Refractor} Prism */\nexport default function markup(Prism) {\n  Prism.languages.markup = {\n    comment: {\n      pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n      greedy: true\n    },\n    prolog: {\n      pattern: /<\\?[\\s\\S]+?\\?>/,\n      greedy: true\n    },\n    doctype: {\n      // https://www.w3.org/TR/xml/#NT-doctypedecl\n      pattern:\n        /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n      greedy: true,\n      inside: {\n        'internal-subset': {\n          pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        string: {\n          pattern: /\"[^\"]*\"|'[^']*'/,\n          greedy: true\n        },\n        punctuation: /^<!|>$|[[\\]]/,\n        'doctype-tag': /^DOCTYPE/i,\n        name: /[^\\s<>'\"]+/\n      }\n    },\n    cdata: {\n      pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n      greedy: true\n    },\n    tag: {\n      pattern:\n        /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n      greedy: true,\n      inside: {\n        tag: {\n          pattern: /^<\\/?[^\\s>\\/]+/,\n          inside: {\n            punctuation: /^<\\/?/,\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        },\n        'special-attr': [],\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n          inside: {\n            punctuation: [\n              {\n                pattern: /^=/,\n                alias: 'attr-equals'\n              },\n              {\n                pattern: /^(\\s*)[\"']|[\"']$/,\n                lookbehind: true\n              }\n            ]\n          }\n        },\n        punctuation: /\\/?>/,\n        'attr-name': {\n          pattern: /[^\\s>\\/]+/,\n          inside: {\n            namespace: /^[^\\s>\\/:]+:/\n          }\n        }\n      }\n    },\n    entity: [\n      {\n        pattern: /&[\\da-z]{1,8};/i,\n        alias: 'named-entity'\n      },\n      /&#x?[\\da-f]{1,8};/i\n    ]\n  }\n  Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n    Prism.languages.markup['entity']\n  Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n    Prism.languages.markup\n\n  // Plugin to make entity title show the real entity, idea by Roman Komarov\n  Prism.hooks.add('wrap', function (env) {\n    if (env.type === 'entity') {\n      env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n    /**\n     * Adds an inlined language to markup.\n     *\n     * An example of an inlined language is CSS with `<style>` tags.\n     *\n     * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addInlined('style', 'css');\n     */\n    value: function addInlined(tagName, lang) {\n      var includedCdataInside = {}\n      includedCdataInside['language-' + lang] = {\n        pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n        lookbehind: true,\n        inside: Prism.languages[lang]\n      }\n      includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n      var inside = {\n        'included-cdata': {\n          pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n          inside: includedCdataInside\n        }\n      }\n      inside['language-' + lang] = {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages[lang]\n      }\n      var def = {}\n      def[tagName] = {\n        pattern: RegExp(\n          /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n            /__/g,\n            function () {\n              return tagName\n            }\n          ),\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: inside\n      }\n      Prism.languages.insertBefore('markup', 'cdata', def)\n    }\n  })\n  Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n    /**\n     * Adds an pattern to highlight languages embedded in HTML attributes.\n     *\n     * An example of an inlined language is CSS with `style` attributes.\n     *\n     * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n     * case insensitive.\n     * @param {string} lang The language key.\n     * @example\n     * addAttribute('style', 'css');\n     */\n    value: function (attrName, lang) {\n      Prism.languages.markup.tag.inside['special-attr'].push({\n        pattern: RegExp(\n          /(^|[\"'\\s])/.source +\n            '(?:' +\n            attrName +\n            ')' +\n            /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n          'i'\n        ),\n        lookbehind: true,\n        inside: {\n          'attr-name': /^[^\\s=]+/,\n          'attr-value': {\n            pattern: /=[\\s\\S]+/,\n            inside: {\n              value: {\n                pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n                lookbehind: true,\n                alias: [lang, 'language-' + lang],\n                inside: Prism.languages[lang]\n              },\n              punctuation: [\n                {\n                  pattern: /^=/,\n                  alias: 'attr-equals'\n                },\n                /\"|'/\n              ]\n            }\n          }\n        }\n      })\n    }\n  })\n  Prism.languages.html = Prism.languages.markup\n  Prism.languages.mathml = Prism.languages.markup\n  Prism.languages.svg = Prism.languages.markup\n  Prism.languages.xml = Prism.languages.extend('markup', {})\n  Prism.languages.ssml = Prism.languages.xml\n  Prism.languages.atom = Prism.languages.xml\n  Prism.languages.rss = Prism.languages.xml\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncss.displayName = 'css'\ncss.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function css(Prism) {\n  ;(function (Prism) {\n    var string =\n      /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n    Prism.languages.css = {\n      comment: /\\/\\*[\\s\\S]*?\\*\\//,\n      atrule: {\n        pattern: RegExp(\n          '@[\\\\w-](?:' +\n            /[^;{\\s\"']|\\s+(?!\\s)/.source +\n            '|' +\n            string.source +\n            ')*?' +\n            /(?:;|(?=\\s*\\{))/.source\n        ),\n        inside: {\n          rule: /^@[\\w-]+/,\n          'selector-function-argument': {\n            pattern:\n              /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n            lookbehind: true,\n            alias: 'selector'\n          },\n          keyword: {\n            pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n            lookbehind: true\n          }\n          // See rest below\n        }\n      },\n      url: {\n        // https://drafts.csswg.org/css-values-3/#urls\n        pattern: RegExp(\n          '\\\\burl\\\\((?:' +\n            string.source +\n            '|' +\n            /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n            ')\\\\)',\n          'i'\n        ),\n        greedy: true,\n        inside: {\n          function: /^url/i,\n          punctuation: /^\\(|\\)$/,\n          string: {\n            pattern: RegExp('^' + string.source + '$'),\n            alias: 'url'\n          }\n        }\n      },\n      selector: {\n        pattern: RegExp(\n          '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n            string.source +\n            ')*(?=\\\\s*\\\\{)'\n        ),\n        lookbehind: true\n      },\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      property: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n        lookbehind: true\n      },\n      important: /!important\\b/i,\n      function: {\n        pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n        lookbehind: true\n      },\n      punctuation: /[(){};:,]/\n    }\n    Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n    var markup = Prism.languages.markup\n    if (markup) {\n      markup.tag.addInlined('style', 'css')\n      markup.tag.addAttribute('style', 'css')\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nclike.displayName = 'clike'\nclike.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function clike(Prism) {\n  Prism.languages.clike = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /[.\\\\]/\n      }\n    },\n    keyword:\n      /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b\\w+(?=\\()/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nregex.displayName = 'regex'\nregex.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function regex(Prism) {\n  ;(function (Prism) {\n    var specialEscape = {\n      pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n      alias: 'escape'\n    }\n    var escape =\n      /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n    var charSet = {\n      pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var charSetWithoutDot = {\n      pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n      alias: 'class-name'\n    }\n    var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n    var range = RegExp(rangeChar + '-' + rangeChar)\n\n    // the name of a capturing group\n    var groupName = {\n      pattern: /(<|')[^<>']+(?=[>']$)/,\n      lookbehind: true,\n      alias: 'variable'\n    }\n    Prism.languages.regex = {\n      'char-class': {\n        pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n        lookbehind: true,\n        inside: {\n          'char-class-negation': {\n            pattern: /(^\\[)\\^/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          'char-class-punctuation': {\n            pattern: /^\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          range: {\n            pattern: range,\n            inside: {\n              escape: escape,\n              'range-punctuation': {\n                pattern: /-/,\n                alias: 'operator'\n              }\n            }\n          },\n          'special-escape': specialEscape,\n          'char-set': charSetWithoutDot,\n          escape: escape\n        }\n      },\n      'special-escape': specialEscape,\n      'char-set': charSet,\n      backreference: [\n        {\n          // a backreference which is not an octal escape\n          pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n          alias: 'keyword'\n        },\n        {\n          pattern: /\\\\k<[^<>']+>/,\n          alias: 'keyword',\n          inside: {\n            'group-name': groupName\n          }\n        }\n      ],\n      anchor: {\n        pattern: /[$^]|\\\\[ABbGZz]/,\n        alias: 'function'\n      },\n      escape: escape,\n      group: [\n        {\n          // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n          // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n\n          // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n          pattern:\n            /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n          alias: 'punctuation',\n          inside: {\n            'group-name': groupName\n          }\n        },\n        {\n          pattern: /\\)/,\n          alias: 'punctuation'\n        }\n      ],\n      quantifier: {\n        pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n        alias: 'number'\n      },\n      alternation: {\n        pattern: /\\|/,\n        alias: 'keyword'\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\n\n/** @param {Refractor} Prism */\nexport default function javascript(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.javascript = Prism.languages.extend('clike', {\n    'class-name': [\n      Prism.languages.clike['class-name'],\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /((?:^|\\})\\s*)catch\\b/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n        lookbehind: true\n      }\n    ],\n    // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n    function:\n      /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n    number: {\n      pattern: RegExp(\n        /(^|[^\\w$])/.source +\n          '(?:' +\n          // constant\n          (/NaN|Infinity/.source +\n            '|' +\n            // binary integer\n            /0[bB][01]+(?:_[01]+)*n?/.source +\n            '|' +\n            // octal integer\n            /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n            '|' +\n            // hexadecimal integer\n            /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n            '|' +\n            // decimal bigint\n            /\\d+(?:_\\d+)*n/.source +\n            '|' +\n            // decimal number (integer or float) but no bigint\n            /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n              .source) +\n          ')' +\n          /(?![\\w$])/.source\n      ),\n      lookbehind: true\n    },\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n  })\n  Prism.languages.javascript['class-name'][0].pattern =\n    /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n  Prism.languages.insertBefore('javascript', 'keyword', {\n    regex: {\n      pattern: RegExp(\n        // lookbehind\n        // eslint-disable-next-line regexp/no-dupe-characters-character-class\n        /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n          // Regex pattern:\n          // There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n          // classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n          // with the only syntax, so we have to define 2 different regex patterns.\n          /\\//.source +\n          '(?:' +\n          /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/\n            .source +\n          '|' +\n          // `v` flag syntax. This supports 3 levels of nested character classes.\n          /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/\n            .source +\n          ')' +\n          // lookahead\n          /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/\n            .source\n      ),\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\/|\\/$/,\n        'regex-flags': /^[a-z]+$/\n      }\n    },\n    // This must be declared before keyword because we use \"function\" inside the look-forward\n    'function-variable': {\n      pattern:\n        /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    },\n    parameter: [\n      {\n        pattern:\n          /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      {\n        pattern:\n          /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    ],\n    constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n  })\n  Prism.languages.insertBefore('javascript', 'string', {\n    hashbang: {\n      pattern: /^#!.*/,\n      greedy: true,\n      alias: 'comment'\n    },\n    'template-string': {\n      pattern:\n        /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n      greedy: true,\n      inside: {\n        'template-punctuation': {\n          pattern: /^`|`$/,\n          alias: 'string'\n        },\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.javascript\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'string-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    }\n  })\n  Prism.languages.insertBefore('javascript', 'operator', {\n    'literal-property': {\n      pattern:\n        /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n      lookbehind: true,\n      alias: 'property'\n    }\n  })\n  if (Prism.languages.markup) {\n    Prism.languages.markup.tag.addInlined('script', 'javascript')\n\n    // add attribute support for all DOM events.\n    // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n    Prism.languages.markup.tag.addAttribute(\n      /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n        .source,\n      'javascript'\n    )\n  }\n  Prism.languages.js = Prism.languages.javascript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nabap.displayName = 'abap'\nabap.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function abap(Prism) {\n  Prism.languages.abap = {\n    comment: /^\\*.*/m,\n    string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'string-template': {\n      pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n    'eol-comment': {\n      pattern: /(^|\\s)\".*/m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    keyword: {\n      pattern:\n        /(\\s|\\.|^)(?:\\*-INPUT|\\?TO|ABAP-SOURCE|ABBREVIATED|ABS|ABSTRACT|ACCEPT|ACCEPTING|ACCESSPOLICY|ACCORDING|ACOS|ACTIVATION|ACTUAL|ADD|ADD-CORRESPONDING|ADJACENT|AFTER|ALIAS|ALIASES|ALIGN|ALL|ALLOCATE|ALPHA|ANALYSIS|ANALYZER|AND|ANY|APPEND|APPENDAGE|APPENDING|APPLICATION|ARCHIVE|AREA|ARITHMETIC|AS|ASCENDING|ASIN|ASPECT|ASSERT|ASSIGN|ASSIGNED|ASSIGNING|ASSOCIATION|ASYNCHRONOUS|AT|ATAN|ATTRIBUTES|AUTHORITY|AUTHORITY-CHECK|AVG|BACK|BACKGROUND|BACKUP|BACKWARD|BADI|BASE|BEFORE|BEGIN|BETWEEN|BIG|BINARY|BINDING|BIT|BIT-AND|BIT-NOT|BIT-OR|BIT-XOR|BLACK|BLANK|BLANKS|BLOB|BLOCK|BLOCKS|BLUE|BOUND|BOUNDARIES|BOUNDS|BOXED|BREAK-POINT|BT|BUFFER|BY|BYPASSING|BYTE|BYTE-CA|BYTE-CN|BYTE-CO|BYTE-CS|BYTE-NA|BYTE-NS|BYTE-ORDER|C|CA|CALL|CALLING|CASE|CAST|CASTING|CATCH|CEIL|CENTER|CENTERED|CHAIN|CHAIN-INPUT|CHAIN-REQUEST|CHANGE|CHANGING|CHANNELS|CHAR-TO-HEX|CHARACTER|CHARLEN|CHECK|CHECKBOX|CIRCULAR|CI_|CLASS|CLASS-CODING|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|CLEANUP|CLEAR|CLIENT|CLOB|CLOCK|CLOSE|CN|CNT|CO|COALESCE|CODE|CODING|COLLECT|COLOR|COLUMN|COLUMNS|COL_BACKGROUND|COL_GROUP|COL_HEADING|COL_KEY|COL_NEGATIVE|COL_NORMAL|COL_POSITIVE|COL_TOTAL|COMMENT|COMMENTS|COMMIT|COMMON|COMMUNICATION|COMPARING|COMPONENT|COMPONENTS|COMPRESSION|COMPUTE|CONCAT|CONCATENATE|COND|CONDENSE|CONDITION|CONNECT|CONNECTION|CONSTANTS|CONTEXT|CONTEXTS|CONTINUE|CONTROL|CONTROLS|CONV|CONVERSION|CONVERT|COPIES|COPY|CORRESPONDING|COS|COSH|COUNT|COUNTRY|COVER|CP|CPI|CREATE|CREATING|CRITICAL|CS|CURRENCY|CURRENCY_CONVERSION|CURRENT|CURSOR|CURSOR-SELECTION|CUSTOMER|CUSTOMER-FUNCTION|DANGEROUS|DATA|DATABASE|DATAINFO|DATASET|DATE|DAYLIGHT|DBMAXLEN|DD\\/MM\\/YY|DD\\/MM\\/YYYY|DDMMYY|DEALLOCATE|DECIMALS|DECIMAL_SHIFT|DECLARATIONS|DEEP|DEFAULT|DEFERRED|DEFINE|DEFINING|DEFINITION|DELETE|DELETING|DEMAND|DEPARTMENT|DESCENDING|DESCRIBE|DESTINATION|DETAIL|DIALOG|DIRECTORY|DISCONNECT|DISPLAY|DISPLAY-MODE|DISTANCE|DISTINCT|DIV|DIVIDE|DIVIDE-CORRESPONDING|DIVISION|DO|DUMMY|DUPLICATE|DUPLICATES|DURATION|DURING|DYNAMIC|DYNPRO|E|EACH|EDIT|EDITOR-CALL|ELSE|ELSEIF|EMPTY|ENABLED|ENABLING|ENCODING|END|END-ENHANCEMENT-SECTION|END-LINES|END-OF-DEFINITION|END-OF-FILE|END-OF-PAGE|END-OF-SELECTION|ENDAT|ENDCASE|ENDCATCH|ENDCHAIN|ENDCLASS|ENDDO|ENDENHANCEMENT|ENDEXEC|ENDFOR|ENDFORM|ENDFUNCTION|ENDIAN|ENDIF|ENDING|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDON|ENDPROVIDE|ENDSELECT|ENDTRY|ENDWHILE|ENGINEERING|ENHANCEMENT|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|ENHANCEMENTS|ENTRIES|ENTRY|ENVIRONMENT|EQ|EQUAL|EQUIV|ERRORMESSAGE|ERRORS|ESCAPE|ESCAPING|EVENT|EVENTS|EXACT|EXCEPT|EXCEPTION|EXCEPTION-TABLE|EXCEPTIONS|EXCLUDE|EXCLUDING|EXEC|EXECUTE|EXISTS|EXIT|EXIT-COMMAND|EXP|EXPAND|EXPANDING|EXPIRATION|EXPLICIT|EXPONENT|EXPORT|EXPORTING|EXTEND|EXTENDED|EXTENSION|EXTRACT|FAIL|FETCH|FIELD|FIELD-GROUPS|FIELD-SYMBOL|FIELD-SYMBOLS|FIELDS|FILE|FILTER|FILTER-TABLE|FILTERS|FINAL|FIND|FIRST|FIRST-LINE|FIXED-POINT|FKEQ|FKGE|FLOOR|FLUSH|FONT|FOR|FORM|FORMAT|FORWARD|FOUND|FRAC|FRAME|FRAMES|FREE|FRIENDS|FROM|FUNCTION|FUNCTION-POOL|FUNCTIONALITY|FURTHER|GAPS|GE|GENERATE|GET|GIVING|GKEQ|GKGE|GLOBAL|GRANT|GREATER|GREEN|GROUP|GROUPS|GT|HANDLE|HANDLER|HARMLESS|HASHED|HAVING|HDB|HEAD-LINES|HEADER|HEADERS|HEADING|HELP-ID|HELP-REQUEST|HIDE|HIGH|HINT|HOLD|HOTSPOT|I|ICON|ID|IDENTIFICATION|IDENTIFIER|IDS|IF|IGNORE|IGNORING|IMMEDIATELY|IMPLEMENTATION|IMPLEMENTATIONS|IMPLEMENTED|IMPLICIT|IMPORT|IMPORTING|IN|INACTIVE|INCL|INCLUDE|INCLUDES|INCLUDING|INCREMENT|INDEX|INDEX-LINE|INFOTYPES|INHERITING|INIT|INITIAL|INITIALIZATION|INNER|INOUT|INPUT|INSERT|INSTANCES|INTENSIFIED|INTERFACE|INTERFACE-POOL|INTERFACES|INTERNAL|INTERVALS|INTO|INVERSE|INVERTED-DATE|IS|ISO|ITERATOR|ITNO|JOB|JOIN|KEEP|KEEPING|KERNEL|KEY|KEYS|KEYWORDS|KIND|LANGUAGE|LAST|LATE|LAYOUT|LE|LEADING|LEAVE|LEFT|LEFT-JUSTIFIED|LEFTPLUS|LEFTSPACE|LEGACY|LENGTH|LESS|LET|LEVEL|LEVELS|LIKE|LINE|LINE-COUNT|LINE-SELECTION|LINE-SIZE|LINEFEED|LINES|LIST|LIST-PROCESSING|LISTBOX|LITTLE|LLANG|LOAD|LOAD-OF-PROGRAM|LOB|LOCAL|LOCALE|LOCATOR|LOG|LOG-POINT|LOG10|LOGFILE|LOGICAL|LONG|LOOP|LOW|LOWER|LPAD|LPI|LT|M|MAIL|MAIN|MAJOR-ID|MAPPING|MARGIN|MARK|MASK|MATCH|MATCHCODE|MAX|MAXIMUM|MEDIUM|MEMBERS|MEMORY|MESH|MESSAGE|MESSAGE-ID|MESSAGES|MESSAGING|METHOD|METHODS|MIN|MINIMUM|MINOR-ID|MM\\/DD\\/YY|MM\\/DD\\/YYYY|MMDDYY|MOD|MODE|MODIF|MODIFIER|MODIFY|MODULE|MOVE|MOVE-CORRESPONDING|MULTIPLY|MULTIPLY-CORRESPONDING|NA|NAME|NAMETAB|NATIVE|NB|NE|NESTED|NESTING|NEW|NEW-LINE|NEW-PAGE|NEW-SECTION|NEXT|NO|NO-DISPLAY|NO-EXTENSION|NO-GAP|NO-GAPS|NO-GROUPING|NO-HEADING|NO-SCROLLING|NO-SIGN|NO-TITLE|NO-TOPOFPAGE|NO-ZERO|NODE|NODES|NON-UNICODE|NON-UNIQUE|NOT|NP|NS|NULL|NUMBER|NUMOFCHAR|O|OBJECT|OBJECTS|OBLIGATORY|OCCURRENCE|OCCURRENCES|OCCURS|OF|OFF|OFFSET|OLE|ON|ONLY|OPEN|OPTION|OPTIONAL|OPTIONS|OR|ORDER|OTHER|OTHERS|OUT|OUTER|OUTPUT|OUTPUT-LENGTH|OVERFLOW|OVERLAY|PACK|PACKAGE|PAD|PADDING|PAGE|PAGES|PARAMETER|PARAMETER-TABLE|PARAMETERS|PART|PARTIALLY|PATTERN|PERCENTAGE|PERFORM|PERFORMING|PERSON|PF|PF-STATUS|PINK|PLACES|POOL|POSITION|POS_HIGH|POS_LOW|PRAGMAS|PRECOMPILED|PREFERRED|PRESERVING|PRIMARY|PRINT|PRINT-CONTROL|PRIORITY|PRIVATE|PROCEDURE|PROCESS|PROGRAM|PROPERTY|PROTECTED|PROVIDE|PUBLIC|PUSHBUTTON|PUT|QUEUE-ONLY|QUICKINFO|RADIOBUTTON|RAISE|RAISING|RANGE|RANGES|RAW|READ|READ-ONLY|READER|RECEIVE|RECEIVED|RECEIVER|RECEIVING|RED|REDEFINITION|REDUCE|REDUCED|REF|REFERENCE|REFRESH|REGEX|REJECT|REMOTE|RENAMING|REPLACE|REPLACEMENT|REPLACING|REPORT|REQUEST|REQUESTED|RESERVE|RESET|RESOLUTION|RESPECTING|RESPONSIBLE|RESULT|RESULTS|RESUMABLE|RESUME|RETRY|RETURN|RETURNCODE|RETURNING|RIGHT|RIGHT-JUSTIFIED|RIGHTPLUS|RIGHTSPACE|RISK|RMC_COMMUNICATION_FAILURE|RMC_INVALID_STATUS|RMC_SYSTEM_FAILURE|ROLE|ROLLBACK|ROUND|ROWS|RTTI|RUN|SAP|SAP-SPOOL|SAVING|SCALE_PRESERVING|SCALE_PRESERVING_SCIENTIFIC|SCAN|SCIENTIFIC|SCIENTIFIC_WITH_LEADING_ZERO|SCREEN|SCROLL|SCROLL-BOUNDARY|SCROLLING|SEARCH|SECONDARY|SECONDS|SECTION|SELECT|SELECT-OPTIONS|SELECTION|SELECTION-SCREEN|SELECTION-SET|SELECTION-SETS|SELECTION-TABLE|SELECTIONS|SELECTOR|SEND|SEPARATE|SEPARATED|SET|SHARED|SHIFT|SHORT|SHORTDUMP-ID|SIGN|SIGN_AS_POSTFIX|SIMPLE|SIN|SINGLE|SINH|SIZE|SKIP|SKIPPING|SMART|SOME|SORT|SORTABLE|SORTED|SOURCE|SPACE|SPECIFIED|SPLIT|SPOOL|SPOTS|SQL|SQLSCRIPT|SQRT|STABLE|STAMP|STANDARD|START-OF-SELECTION|STARTING|STATE|STATEMENT|STATEMENTS|STATIC|STATICS|STATUSINFO|STEP-LOOP|STOP|STRLEN|STRUCTURE|STRUCTURES|STYLE|SUBKEY|SUBMATCHES|SUBMIT|SUBROUTINE|SUBSCREEN|SUBSTRING|SUBTRACT|SUBTRACT-CORRESPONDING|SUFFIX|SUM|SUMMARY|SUMMING|SUPPLIED|SUPPLY|SUPPRESS|SWITCH|SWITCHSTATES|SYMBOL|SYNCPOINTS|SYNTAX|SYNTAX-CHECK|SYNTAX-TRACE|SYSTEM-CALL|SYSTEM-EXCEPTIONS|SYSTEM-EXIT|TAB|TABBED|TABLE|TABLES|TABLEVIEW|TABSTRIP|TAN|TANH|TARGET|TASK|TASKS|TEST|TESTING|TEXT|TEXTPOOL|THEN|THROW|TIME|TIMES|TIMESTAMP|TIMEZONE|TITLE|TITLE-LINES|TITLEBAR|TO|TOKENIZATION|TOKENS|TOP-LINES|TOP-OF-PAGE|TRACE-FILE|TRACE-TABLE|TRAILING|TRANSACTION|TRANSFER|TRANSFORMATION|TRANSLATE|TRANSPORTING|TRMAC|TRUNC|TRUNCATE|TRUNCATION|TRY|TYPE|TYPE-POOL|TYPE-POOLS|TYPES|ULINE|UNASSIGN|UNDER|UNICODE|UNION|UNIQUE|UNIT|UNIT_CONVERSION|UNIX|UNPACK|UNTIL|UNWIND|UP|UPDATE|UPPER|USER|USER-COMMAND|USING|UTF-8|VALID|VALUE|VALUE-REQUEST|VALUES|VARY|VARYING|VERIFICATION-MESSAGE|VERSION|VIA|VIEW|VISIBLE|WAIT|WARNING|WHEN|WHENEVER|WHERE|WHILE|WIDTH|WINDOW|WINDOWS|WITH|WITH-HEADING|WITH-TITLE|WITHOUT|WORD|WORK|WRITE|WRITER|X|XML|XOR|XSD|XSTRLEN|YELLOW|YES|YYMMDD|Z|ZERO|ZONE)(?![\\w-])/i,\n      lookbehind: true\n    },\n    /* Numbers can be only integers. Decimal or Hex appear only as strings */\n    number: /\\b\\d+\\b/,\n    /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n    operator: {\n      pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n      lookbehind: true\n    },\n    'string-operator': {\n      pattern: /(\\s)&&?(?=\\s)/,\n      lookbehind: true,\n      /* The official editor highlights */\n      alias: 'keyword'\n    },\n    'token-operator': [\n      {\n        /* Special operators used to access structure components, class methods/attributes, etc. */\n        pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      {\n        /* Special tokens used do delimit string templates */\n        pattern: /[|{}]/,\n        alias: 'punctuation'\n      }\n    ],\n    punctuation: /[,.:()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nabnf.displayName = 'abnf'\nabnf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function abnf(Prism) {\n  ;(function (Prism) {\n    var coreRules =\n      '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n    Prism.languages.abnf = {\n      comment: /;.*/,\n      string: {\n        pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n        greedy: true,\n        inside: {\n          punctuation: /^%[is]/\n        }\n      },\n      range: {\n        pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n        alias: 'number'\n      },\n      terminal: {\n        pattern:\n          /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n        alias: 'number'\n      },\n      repetition: {\n        pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      definition: {\n        pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n        lookbehind: true,\n        alias: 'keyword',\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      'core-rule': {\n        pattern: RegExp(\n          '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n          'i'\n        ),\n        lookbehind: true,\n        alias: ['rule', 'constant'],\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      rule: {\n        pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /<|>/\n        }\n      },\n      operator: /=\\/?|\\//,\n      punctuation: /[()\\[\\]]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function actionscript(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.languages.actionscript = Prism.languages.extend('javascript', {\n    keyword:\n      /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n    operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n  })\n  Prism.languages.actionscript['class-name'].alias = 'function'\n\n  // doesn't work with AS because AS is too complex\n  delete Prism.languages.actionscript['parameter']\n  delete Prism.languages.actionscript['literal-property']\n  if (Prism.languages.markup) {\n    Prism.languages.insertBefore('actionscript', 'string', {\n      xml: {\n        pattern:\n          /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      }\n    })\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nada.displayName = 'ada'\nada.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ada(Prism) {\n  Prism.languages.ada = {\n    comment: /--.*/,\n    string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n    number: [\n      {\n        pattern:\n          /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n      },\n      {\n        pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n      }\n    ],\n    attribute: {\n      pattern: /\\b'\\w+/,\n      alias: 'attr-name'\n    },\n    keyword:\n      /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n    punctuation: /\\.\\.?|[,;():]/,\n    char: /'.'/,\n    variable: /\\b[a-z](?:\\w)*\\b/i\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nagda.displayName = 'agda'\nagda.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function agda(Prism) {\n  ;(function (Prism) {\n    Prism.languages.agda = {\n      comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n      string: {\n        pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      punctuation: /[(){}⦃⦄.;@]/,\n      'class-name': {\n        pattern: /((?:data|record) +)\\S+/,\n        lookbehind: true\n      },\n      function: {\n        pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nal.displayName = 'al'\nal.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function al(Prism) {\n  // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n\n  Prism.languages.al = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    keyword: [\n      // keywords\n      /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i,\n      // objects and metadata that are used like keywords\n      /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n    ],\n    number:\n      /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n    'class-name':\n      /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n    operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n    punctuation: /[()\\[\\]{}:.;,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\n\n/** @param {Refractor} Prism */\nexport default function antlr4(Prism) {\n  Prism.languages.antlr4 = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    string: {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n      greedy: true\n    },\n    'character-class': {\n      pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n      greedy: true,\n      alias: 'regex',\n      inside: {\n        range: {\n          pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n          lookbehind: true,\n          alias: 'punctuation'\n        },\n        escape:\n          /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n        punctuation: /[\\[\\]]/\n      }\n    },\n    action: {\n      pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n      greedy: true,\n      inside: {\n        content: {\n          // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n          pattern: /(\\{)[\\s\\S]+(?=\\})/,\n          lookbehind: true\n        },\n        punctuation: /[{}]/\n      }\n    },\n    command: {\n      pattern:\n        /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n      lookbehind: true,\n      inside: {\n        function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n        punctuation: /[,()]/\n      }\n    },\n    annotation: {\n      pattern: /@\\w+(?:::\\w+)*/,\n      alias: 'keyword'\n    },\n    label: {\n      pattern: /#[ \\t]*\\w+/,\n      alias: 'punctuation'\n    },\n    keyword:\n      /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n    definition: [\n      {\n        pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n        alias: ['rule', 'class-name']\n      },\n      {\n        pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n        alias: ['token', 'constant']\n      }\n    ],\n    constant: /\\b[A-Z][A-Z_]*\\b/,\n    operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n    punctuation: /[;:()=]/\n  }\n  Prism.languages.g4 = Prism.languages.antlr4\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function apacheconf(Prism) {\n  Prism.languages.apacheconf = {\n    comment: /#.*/,\n    'directive-inline': {\n      pattern:\n        /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n      lookbehind: true,\n      alias: 'property'\n    },\n    'directive-block': {\n      pattern:\n        /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n      inside: {\n        'directive-block': {\n          pattern: /^<\\/?\\w+/,\n          inside: {\n            punctuation: /^<\\/?/\n          },\n          alias: 'tag'\n        },\n        'directive-block-parameter': {\n          pattern: /.*[^>]/,\n          inside: {\n            punctuation: /:/,\n            string: {\n              pattern: /(\"|').*\\1/,\n              inside: {\n                variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n              }\n            }\n          },\n          alias: 'attr-value'\n        },\n        punctuation: />/\n      },\n      alias: 'tag'\n    },\n    'directive-flags': {\n      pattern: /\\[(?:[\\w=],?)+\\]/,\n      alias: 'keyword'\n    },\n    string: {\n      pattern: /(\"|').*\\1/,\n      inside: {\n        variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n      }\n    },\n    variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n    regex: /\\^?.*\\$|\\^.*\\$?/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsql.displayName = 'sql'\nsql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function sql(Prism) {\n  Prism.languages.sql = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    variable: [\n      {\n        pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n        greedy: true\n      },\n      /@[\\w.$]+/\n    ],\n    string: {\n      pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n      greedy: true,\n      lookbehind: true\n    },\n    identifier: {\n      pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n      greedy: true,\n      lookbehind: true,\n      inside: {\n        punctuation: /^`|`$/\n      }\n    },\n    function:\n      /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n    // Should we highlight user defined functions too?\n    keyword:\n      /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n    punctuation: /[;[\\]()`,.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nimport refractorSql from './sql.js'\napex.displayName = 'apex'\napex.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function apex(Prism) {\n  Prism.register(refractorClike)\n  Prism.register(refractorSql)\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n    var className =\n      /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n        /<keyword>/g,\n        function () {\n          return keywords.source\n        }\n      )\n    /** @param {string} pattern */\n    function insertClassName(pattern) {\n      return RegExp(\n        pattern.replace(/<CLASS-NAME>/g, function () {\n          return className\n        }),\n        'i'\n      )\n    }\n    var classNameInside = {\n      keyword: keywords,\n      punctuation: /[()\\[\\]{};,:.<>]/\n    }\n    Prism.languages.apex = {\n      comment: Prism.languages.clike.comment,\n      string: Prism.languages.clike.string,\n      sql: {\n        pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-sql',\n        inside: Prism.languages.sql\n      },\n      annotation: {\n        pattern: /@\\w+\\b/,\n        alias: 'punctuation'\n      },\n      'class-name': [\n        {\n          pattern: insertClassName(\n            /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n              .source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // cast\n          pattern: insertClassName(\n            /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n          ),\n          lookbehind: true,\n          inside: classNameInside\n        },\n        {\n          // variable/parameter declaration and return types\n          pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n          inside: classNameInside\n        }\n      ],\n      trigger: {\n        pattern: /(\\btrigger\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      keyword: keywords,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      boolean: /\\b(?:false|true)\\b/i,\n      number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n      operator:\n        /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n      punctuation: /[()\\[\\]{};,.]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\napl.displayName = 'apl'\napl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function apl(Prism) {\n  Prism.languages.apl = {\n    comment: /(?:⍝|#[! ]).*$/m,\n    string: {\n      pattern: /'(?:[^'\\r\\n]|'')*'/,\n      greedy: true\n    },\n    number:\n      /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n    statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n    'system-function': {\n      pattern: /⎕[A-Z]+/i,\n      alias: 'function'\n    },\n    constant: /[⍬⌾#⎕⍞]/,\n    function:\n      /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n    'monadic-operator': {\n      pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n      alias: 'operator'\n    },\n    'dyadic-operator': {\n      pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n      alias: 'operator'\n    },\n    assignment: {\n      pattern: /←/,\n      alias: 'keyword'\n    },\n    punctuation: /[\\[;\\]()◇⋄]/,\n    dfn: {\n      pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n      alias: 'builtin'\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\napplescript.displayName = 'applescript'\napplescript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function applescript(Prism) {\n  Prism.languages.applescript = {\n    comment: [\n      // Allow one level of nesting\n      /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n      /--.+/,\n      /#.+/\n    ],\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n    operator: [\n      /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n      /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n    ],\n    keyword:\n      /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n    'class-name':\n      /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n    punctuation: /[{}():,¬«»《》]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\naql.displayName = 'aql'\naql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function aql(Prism) {\n  Prism.languages.aql = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    property: {\n      pattern:\n        /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n      greedy: true\n    },\n    variable: /@@?\\w+/,\n    keyword: [\n      {\n        pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n        lookbehind: true\n      },\n      /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i,\n      // pseudo keywords get a lookbehind to avoid false positives\n      {\n        pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n        lookbehind: true\n      },\n      {\n        pattern: /\\bOPTIONS(?=\\s*\\{)/i\n      }\n    ],\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    boolean: /\\b(?:false|true)\\b/i,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    number: [\n      /\\b0b[01]+/i,\n      /\\b0x[0-9a-f]+/i,\n      /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n    ],\n    operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n    punctuation: /::|[?.:,;()[\\]{}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nc.displayName = 'c'\nc.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function c(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.c = Prism.languages.extend('clike', {\n    comment: {\n      pattern:\n        /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    string: {\n      // https://en.cppreference.com/w/c/language/string_literal\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number:\n      /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n    operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    char: {\n      // https://en.cppreference.com/w/c/language/character_constant\n      pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('c', 'string', {\n    macro: {\n      // allow for multiline macro definitions\n      // spaces after the # character compile fine with gcc\n      pattern:\n        /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        string: [\n          {\n            // highlight the path of the include statement as a string\n            pattern: /^(#\\s*include\\s*)<[^>]+>/,\n            lookbehind: true\n          },\n          Prism.languages.c['string']\n        ],\n        char: Prism.languages.c['char'],\n        comment: Prism.languages.c['comment'],\n        'macro-name': [\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n            lookbehind: true\n          },\n          {\n            pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n            lookbehind: true,\n            alias: 'function'\n          }\n        ],\n        // highlight macro directives as keywords\n        directive: {\n          pattern: /^(#\\s*)[a-z]+/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        'directive-hash': /^#/,\n        punctuation: /##|\\\\(?=[\\r\\n])/,\n        expression: {\n          pattern: /\\S[\\s\\S]*/,\n          inside: Prism.languages.c\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('c', 'function', {\n    // highlight predefined macros as constants\n    constant:\n      /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n  })\n  delete Prism.languages.c['boolean']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\ncpp.displayName = 'cpp'\ncpp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cpp(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    var keyword =\n      /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n    var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n      /<keyword>/g,\n      function () {\n        return keyword.source\n      }\n    )\n    Prism.languages.cpp = Prism.languages.extend('c', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n              /<keyword>/g,\n              function () {\n                return keyword.source\n              }\n            )\n          ),\n          lookbehind: true\n        },\n        // This is intended to capture the class name of method implementations like:\n        //   void foo::bar() const {}\n        // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n        // it starts with an uppercase letter. This approximation should give decent results.\n        /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n        // This will capture the class name before destructors like:\n        //   Foo::~Foo() {}\n        /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n        // This also intends to capture the class name of method implementations but here the class has template\n        // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n        /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n      ],\n      keyword: keyword,\n      number: {\n        pattern:\n          /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n        greedy: true\n      },\n      operator:\n        />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n      boolean: /\\b(?:false|true)\\b/\n    })\n    Prism.languages.insertBefore('cpp', 'string', {\n      module: {\n        // https://en.cppreference.com/w/cpp/language/modules\n        pattern: RegExp(\n          /(\\b(?:import|module)\\s+)/.source +\n            '(?:' +\n            // header-name\n            /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n            '|' +\n            // module name or partition or both\n            /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n              /<mod-name>/g,\n              function () {\n                return modName\n              }\n            ) +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: /^[<\"][\\s\\S]+/,\n          operator: /:/,\n          punctuation: /\\./\n        }\n      },\n      'raw-string': {\n        pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n        alias: 'string',\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'keyword', {\n      'generic-function': {\n        pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            alias: 'class-name',\n            inside: Prism.languages.cpp\n          }\n        }\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('cpp', 'class-name', {\n      // the base clause is an optional list of parent classes\n      // https://en.cppreference.com/w/cpp/language/class\n      'base-clause': {\n        pattern:\n          /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: Prism.languages.extend('cpp', {})\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'double-colon',\n      {\n        // All untokenized words that are not namespaces should be class names\n        'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n      },\n      Prism.languages.cpp['base-clause']\n    )\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCpp from './cpp.js'\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\n\n/** @param {Refractor} Prism */\nexport default function arduino(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.arduino = Prism.languages.extend('cpp', {\n    keyword:\n      /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n    constant:\n      /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n    builtin:\n      /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n  })\n  Prism.languages.ino = Prism.languages.arduino\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\narff.displayName = 'arff'\narff.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function arff(Prism) {\n  Prism.languages.arff = {\n    comment: /%.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: /@(?:attribute|data|end|relation)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    punctuation: /[{},]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\narmasm.displayName = 'armasm'\narmasm.aliases = ['arm-asm']\n\n/** @param {Refractor} Prism */\nexport default function armasm(Prism) {\n  Prism.languages.armasm = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\r\\n]|\"\")*\"/,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /((?:^|[^$])(?:\\${2})*)\\$\\w+/,\n          lookbehind: true\n        }\n      }\n    },\n    char: {\n      pattern: /'(?:[^'\\r\\n]{0,4}|'')'/,\n      greedy: true\n    },\n    'version-symbol': {\n      pattern: /\\|[\\w@]+\\|/,\n      greedy: true,\n      alias: 'property'\n    },\n    boolean: /\\b(?:FALSE|TRUE)\\b/,\n    directive: {\n      pattern:\n        /\\b(?:ALIAS|ALIGN|AREA|ARM|ASSERT|ATTR|CN|CODE|CODE16|CODE32|COMMON|CP|DATA|DCB|DCD|DCDO|DCDU|DCFD|DCFDU|DCI|DCQ|DCQU|DCW|DCWU|DN|ELIF|ELSE|END|ENDFUNC|ENDIF|ENDP|ENTRY|EQU|EXPORT|EXPORTAS|EXTERN|FIELD|FILL|FN|FUNCTION|GBLA|GBLL|GBLS|GET|GLOBAL|IF|IMPORT|INCBIN|INCLUDE|INFO|KEEP|LCLA|LCLL|LCLS|LTORG|MACRO|MAP|MEND|MEXIT|NOFP|OPT|PRESERVE8|PROC|QN|READONLY|RELOC|REQUIRE|REQUIRE8|RLIST|ROUT|SETA|SETL|SETS|SN|SPACE|SUBT|THUMB|THUMBX|TTL|WEND|WHILE)\\b/,\n      alias: 'property'\n    },\n    instruction: {\n      pattern:\n        /((?:^|(?:^|[^\\\\])(?:\\r\\n?|\\n))[ \\t]*(?:(?:[A-Z][A-Z0-9_]*[a-z]\\w*|[a-z]\\w*|\\d+)[ \\t]+)?)\\b[A-Z.]+\\b/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    variable: /\\$\\w+/,\n    number:\n      /(?:\\b[2-9]_\\d+|(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e-?\\d+)?|\\b0(?:[fd]_|x)[0-9a-f]+|&[0-9a-f]+)\\b/i,\n    register: {\n      pattern: /\\b(?:r\\d|lr)\\b/,\n      alias: 'symbol'\n    },\n    operator: /<>|<<|>>|&&|\\|\\||[=!<>/]=?|[+\\-*%#?&|^]|:[A-Z]+:/,\n    punctuation: /[()[\\],]/\n  }\n  Prism.languages['arm-asm'] = Prism.languages.armasm\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbash.displayName = 'bash'\nbash.aliases = ['sh', 'shell']\n\n/** @param {Refractor} Prism */\nexport default function bash(Prism) {\n  ;(function (Prism) {\n    // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n    // + LC_ALL, RANDOM, REPLY, SECONDS.\n    // + make sure PS1..4 are here as they are not always set,\n    // - some useless things.\n    var envVars =\n      '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n    var commandAfterHeredoc = {\n      pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n      lookbehind: true,\n      alias: 'punctuation',\n      // this looks reasonably well in all themes\n      inside: null // see below\n    }\n    var insideString = {\n      bash: commandAfterHeredoc,\n      environment: {\n        pattern: RegExp('\\\\$' + envVars),\n        alias: 'constant'\n      },\n      variable: [\n        // [0]: Arithmetic Environment\n        {\n          pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n          greedy: true,\n          inside: {\n            // If there is a $ sign at the beginning highlight $(( and )) as variable\n            variable: [\n              {\n                pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n                lookbehind: true\n              },\n              /^\\$\\(\\(/\n            ],\n            number:\n              /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n            // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n            operator:\n              /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n            // If there is no $ sign at the beginning highlight (( and )) as punctuation\n            punctuation: /\\(\\(?|\\)\\)?|,|;/\n          }\n        },\n        // [1]: Command Substitution\n        {\n          pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n          greedy: true,\n          inside: {\n            variable: /^\\$\\(|^`|\\)$|`$/\n          }\n        },\n        // [2]: Brace expansion\n        {\n          pattern: /\\$\\{[^}]+\\}/,\n          greedy: true,\n          inside: {\n            operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n            punctuation: /[\\[\\]]/,\n            environment: {\n              pattern: RegExp('(\\\\{)' + envVars),\n              lookbehind: true,\n              alias: 'constant'\n            }\n          }\n        },\n        /\\$(?:\\w+|[#?*!@$])/\n      ],\n      // Escape sequences from echo and printf's manuals, and escaped quotes.\n      entity:\n        /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n    }\n    Prism.languages.bash = {\n      shebang: {\n        pattern: /^#!\\s*\\/.*/,\n        alias: 'important'\n      },\n      comment: {\n        pattern: /(^|[^\"{\\\\$])#.*/,\n        lookbehind: true\n      },\n      'function-name': [\n        // a) function foo {\n        // b) foo() {\n        // c) function foo() {\n        // but not “foo {”\n        {\n          // a) and c)\n          pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n          lookbehind: true,\n          alias: 'function'\n        },\n        {\n          // b)\n          pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n          alias: 'function'\n        }\n      ],\n      // Highlight variable names as variables in for and select beginnings.\n      'for-or-select': {\n        pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight variable names as variables in the left-hand part\n      // of assignments (“=” and “+=”).\n      'assign-left': {\n        pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n        inside: {\n          environment: {\n            pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n            lookbehind: true,\n            alias: 'constant'\n          }\n        },\n        alias: 'variable',\n        lookbehind: true\n      },\n      // Highlight parameter names as variables\n      parameter: {\n        pattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n        alias: 'variable',\n        lookbehind: true\n      },\n      string: [\n        // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        // Here-document with quotes around the tag\n        // → No expansion (so no “inside”).\n        {\n          pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            bash: commandAfterHeredoc\n          }\n        },\n        // “Normal” string\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n          pattern:\n            /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n          lookbehind: true,\n          greedy: true,\n          inside: insideString\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n          pattern: /(^|[^$\\\\])'[^']*'/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n          pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n          greedy: true,\n          inside: {\n            entity: insideString.entity\n          }\n        }\n      ],\n      environment: {\n        pattern: RegExp('\\\\$?' + envVars),\n        alias: 'constant'\n      },\n      variable: insideString.variable,\n      function: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n      builtin: {\n        pattern:\n          /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n        lookbehind: true,\n        // Alias added to make those easier to distinguish from strings.\n        alias: 'class-name'\n      },\n      boolean: {\n        pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n        lookbehind: true\n      },\n      'file-descriptor': {\n        pattern: /\\B&\\d\\b/,\n        alias: 'important'\n      },\n      operator: {\n        // Lots of redirections here, but not just that.\n        pattern:\n          /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n        inside: {\n          'file-descriptor': {\n            pattern: /^\\d/,\n            alias: 'important'\n          }\n        }\n      },\n      punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n      number: {\n        pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n        lookbehind: true\n      }\n    }\n    commandAfterHeredoc.inside = Prism.languages.bash\n\n    /* Patterns in command substitution. */\n    var toBeCopied = [\n      'comment',\n      'function-name',\n      'for-or-select',\n      'assign-left',\n      'parameter',\n      'string',\n      'environment',\n      'function',\n      'keyword',\n      'builtin',\n      'boolean',\n      'file-descriptor',\n      'operator',\n      'punctuation',\n      'number'\n    ]\n    var inside = insideString.variable[1].inside\n    for (var i = 0; i < toBeCopied.length; i++) {\n      inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n    }\n    Prism.languages.sh = Prism.languages.bash\n    Prism.languages.shell = Prism.languages.bash\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\n\n/** @param {Refractor} Prism */\nexport default function yaml(Prism) {\n  ;(function (Prism) {\n    // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n    // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n    var anchorOrAlias = /[*&][^\\s[\\]{},]+/\n    // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n    var tag =\n      /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/\n    // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n    var properties =\n      '(?:' +\n      tag.source +\n      '(?:[ \\t]+' +\n      anchorOrAlias.source +\n      ')?|' +\n      anchorOrAlias.source +\n      '(?:[ \\t]+' +\n      tag.source +\n      ')?)'\n    // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n    // This is a simplified version that doesn't support \"#\" and multiline keys\n    // All these long scarry character classes are simplified versions of YAML's characters\n    var plainKey =\n      /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n        /<PLAIN>/g,\n        function () {\n          return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n            .source\n        }\n      )\n    var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n\n    /**\n     *\n     * @param {string} value\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function createValuePattern(value, flags) {\n      flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n      var pattern =\n        /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n          .replace(/<<prop>>/g, function () {\n            return properties\n          })\n          .replace(/<<value>>/g, function () {\n            return value\n          })\n      return RegExp(pattern, flags)\n    }\n    Prism.languages.yaml = {\n      scalar: {\n        pattern: RegExp(\n          /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n            /<<prop>>/g,\n            function () {\n              return properties\n            }\n          )\n        ),\n        lookbehind: true,\n        alias: 'string'\n      },\n      comment: /#.*/,\n      key: {\n        pattern: RegExp(\n          /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n            .replace(/<<prop>>/g, function () {\n              return properties\n            })\n            .replace(/<<key>>/g, function () {\n              return '(?:' + plainKey + '|' + string + ')'\n            })\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'atrule'\n      },\n      directive: {\n        pattern: /(^[ \\t]*)%.+/m,\n        lookbehind: true,\n        alias: 'important'\n      },\n      datetime: {\n        pattern: createValuePattern(\n          /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n            .source\n        ),\n        lookbehind: true,\n        alias: 'number'\n      },\n      boolean: {\n        pattern: createValuePattern(/false|true/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      null: {\n        pattern: createValuePattern(/null|~/.source, 'i'),\n        lookbehind: true,\n        alias: 'important'\n      },\n      string: {\n        pattern: createValuePattern(string),\n        lookbehind: true,\n        greedy: true\n      },\n      number: {\n        pattern: createValuePattern(\n          /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      tag: tag,\n      important: anchorOrAlias,\n      punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n    }\n    Prism.languages.yml = Prism.languages.yaml\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\n\n/** @param {Refractor} Prism */\nexport default function markdown(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    // Allow only one line break\n    var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n\n    /**\n     * This function is intended for the creation of the bold or italic pattern.\n     *\n     * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n     *\n     * _Note:_ Keep in mind that this adds a capturing group.\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function createInline(pattern) {\n      pattern = pattern.replace(/<inner>/g, function () {\n        return inner\n      })\n      return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n    }\n    var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n      .source\n    var tableRow =\n      /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n        /__/g,\n        function () {\n          return tableCell\n        }\n      )\n    var tableLine =\n      /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n        .source\n    Prism.languages.markdown = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore('markdown', 'prolog', {\n      'front-matter-block': {\n        pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^---|---$/,\n          'front-matter': {\n            pattern: /\\S+(?:\\s+\\S+)*/,\n            alias: ['yaml', 'language-yaml'],\n            inside: Prism.languages.yaml\n          }\n        }\n      },\n      blockquote: {\n        // > ...\n        pattern: /^>(?:[\\t ]*>)*/m,\n        alias: 'punctuation'\n      },\n      table: {\n        pattern: RegExp(\n          '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n          'm'\n        ),\n        inside: {\n          'table-data-rows': {\n            pattern: RegExp(\n              '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n            ),\n            lookbehind: true,\n            inside: {\n              'table-data': {\n                pattern: RegExp(tableCell),\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          },\n          'table-line': {\n            pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n            lookbehind: true,\n            inside: {\n              punctuation: /\\||:?-{3,}:?/\n            }\n          },\n          'table-header-row': {\n            pattern: RegExp('^' + tableRow + '$'),\n            inside: {\n              'table-header': {\n                pattern: RegExp(tableCell),\n                alias: 'important',\n                inside: Prism.languages.markdown\n              },\n              punctuation: /\\|/\n            }\n          }\n        }\n      },\n      code: [\n        {\n          // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n          pattern:\n            /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n          lookbehind: true,\n          alias: 'keyword'\n        },\n        {\n          // ```optional language\n          // code block\n          // ```\n          pattern: /^```[\\s\\S]*?^```$/m,\n          greedy: true,\n          inside: {\n            'code-block': {\n              pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n              lookbehind: true\n            },\n            'code-language': {\n              pattern: /^(```).+/,\n              lookbehind: true\n            },\n            punctuation: /```/\n          }\n        }\n      ],\n      title: [\n        {\n          // title 1\n          // =======\n\n          // title 2\n          // -------\n          pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n          alias: 'important',\n          inside: {\n            punctuation: /==+$|--+$/\n          }\n        },\n        {\n          // # title 1\n          // ###### title 6\n          pattern: /(^\\s*)#.+/m,\n          lookbehind: true,\n          alias: 'important',\n          inside: {\n            punctuation: /^#+|#+$/\n          }\n        }\n      ],\n      hr: {\n        // ***\n        // ---\n        // * * *\n        // -----------\n        pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      list: {\n        // * item\n        // + item\n        // - item\n        // 1. item\n        pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'url-reference': {\n        // [id]: http://example.com \"Optional title\"\n        // [id]: http://example.com 'Optional title'\n        // [id]: http://example.com (Optional title)\n        // [id]: <http://example.com> \"Optional title\"\n        pattern:\n          /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n        inside: {\n          variable: {\n            pattern: /^(!?\\[)[^\\]]+/,\n            lookbehind: true\n          },\n          string:\n            /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n          punctuation: /^[\\[\\]!:]|[<>]/\n        },\n        alias: 'url'\n      },\n      bold: {\n        // **strong**\n        // __strong__\n\n        // allow one nested instance of italic text using the same delimiter\n        pattern: createInline(\n          /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^..)[\\s\\S]+(?=..$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /\\*\\*|__/\n        }\n      },\n      italic: {\n        // *em*\n        // _em_\n\n        // allow one nested instance of bold text using the same delimiter\n        pattern: createInline(\n          /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^.)[\\s\\S]+(?=.$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /[*_]/\n        }\n      },\n      strike: {\n        // ~~strike through~~\n        // ~strike~\n        // eslint-disable-next-line regexp/strict\n        pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          punctuation: /~~?/\n        }\n      },\n      'code-snippet': {\n        // `code`\n        // ``code``\n        pattern:\n          /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n        lookbehind: true,\n        greedy: true,\n        alias: ['code', 'keyword']\n      },\n      url: {\n        // [example](http://example.com \"Optional title\")\n        // [example][id]\n        // [example] [id]\n        pattern: createInline(\n          /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n            .source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          operator: /^!/,\n          content: {\n            pattern: /(^\\[)[^\\]]+(?=\\])/,\n            lookbehind: true,\n            inside: {} // see below\n          },\n          variable: {\n            pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n            lookbehind: true\n          },\n          url: {\n            pattern: /(^\\]\\()[^\\s)]+/,\n            lookbehind: true\n          },\n          string: {\n            pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n            lookbehind: true\n          }\n        }\n      }\n    })\n    ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n      ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(\n        function (inside) {\n          if (token !== inside) {\n            Prism.languages.markdown[token].inside.content.inside[inside] =\n              Prism.languages.markdown[inside]\n          }\n        }\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'markdown' && env.language !== 'md') {\n        return\n      }\n      function walkTokens(tokens) {\n        if (!tokens || typeof tokens === 'string') {\n          return\n        }\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (token.type !== 'code') {\n            walkTokens(token.content)\n            continue\n          }\n\n          /*\n           * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n           * is optional. But the grammar is defined so that there is only one case we have to handle:\n           *\n           * token.content = [\n           *     <span class=\"punctuation\">```</span>,\n           *     <span class=\"code-language\">xxxx</span>,\n           *     '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n           *     <span class=\"code-block\">...</span>,\n           *     '\\n', // exactly one new lines again\n           *     <span class=\"punctuation\">```</span>\n           * ];\n           */\n\n          var codeLang = token.content[1]\n          var codeBlock = token.content[3]\n          if (\n            codeLang &&\n            codeBlock &&\n            codeLang.type === 'code-language' &&\n            codeBlock.type === 'code-block' &&\n            typeof codeLang.content === 'string'\n          ) {\n            // this might be a language that Prism does not support\n\n            // do some replacements to support C++, C#, and F#\n            var lang = codeLang.content\n              .replace(/\\b#/g, 'sharp')\n              .replace(/\\b\\+\\+/g, 'pp')\n            // only use the first word\n            lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n            var alias = 'language-' + lang\n\n            // add alias\n            if (!codeBlock.alias) {\n              codeBlock.alias = [alias]\n            } else if (typeof codeBlock.alias === 'string') {\n              codeBlock.alias = [codeBlock.alias, alias]\n            } else {\n              codeBlock.alias.push(alias)\n            }\n          }\n        }\n      }\n      walkTokens(env.tokens)\n    })\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type !== 'code-block') {\n        return\n      }\n      var codeLang = ''\n      for (var i = 0, l = env.classes.length; i < l; i++) {\n        var cls = env.classes[i]\n        var match = /language-(.+)/.exec(cls)\n        if (match) {\n          codeLang = match[1]\n          break\n        }\n      }\n      var grammar = Prism.languages[codeLang]\n      if (!grammar) {\n        if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n          var id =\n            'md-' +\n            new Date().valueOf() +\n            '-' +\n            Math.floor(Math.random() * 1e16)\n          env.attributes['id'] = id\n          Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n            var ele = document.getElementById(id)\n            if (ele) {\n              ele.innerHTML = Prism.highlight(\n                ele.textContent,\n                Prism.languages[codeLang],\n                codeLang\n              )\n            }\n          })\n        }\n      } else {\n        env.content = Prism.highlight(env.content.value, grammar, codeLang)\n      }\n    })\n    var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n\n    /**\n     * A list of known entity names.\n     *\n     * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n     *\n     * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n     */\n    var KNOWN_ENTITY_NAMES = {\n      amp: '&',\n      lt: '<',\n      gt: '>',\n      quot: '\"'\n    }\n\n    // IE 11 doesn't support `String.fromCodePoint`\n    var fromCodePoint = String.fromCodePoint || String.fromCharCode\n\n    /**\n     * Returns the text content of a given HTML source code string.\n     *\n     * @param {string} html\n     * @returns {string}\n     */\n    function textContent(html) {\n      // remove all tags\n      var text = html.replace(tagPattern, '')\n\n      // decode known entities\n      text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n        code = code.toLowerCase()\n        if (code[0] === '#') {\n          var value\n          if (code[1] === 'x') {\n            value = parseInt(code.slice(2), 16)\n          } else {\n            value = Number(code.slice(1))\n          }\n          return fromCodePoint(value)\n        } else {\n          var known = KNOWN_ENTITY_NAMES[code]\n          if (known) {\n            return known\n          }\n\n          // unable to decode\n          return m\n        }\n      })\n      return text\n    }\n    Prism.languages.md = Prism.languages.markdown\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\narturo.displayName = 'arturo'\narturo.aliases = ['art']\n\n/** @param {Refractor} Prism */\nexport default function arturo(Prism) {\n  ;(function (Prism) {\n    /**\n     * @param {string} lang\n     * @param {string} pattern\n     */\n    var createLanguageString = function (lang, pattern) {\n      return {\n        pattern: RegExp(\n          /\\{!/.source + '(?:' + (pattern || lang) + ')' + /$[\\s\\S]*\\}/.source,\n          'm'\n        ),\n        greedy: true,\n        inside: {\n          embedded: {\n            pattern: /(^\\{!\\w+\\b)[\\s\\S]+(?=\\}$)/,\n            lookbehind: true,\n            alias: 'language-' + lang,\n            inside: Prism.languages[lang]\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    }\n    Prism.languages.arturo = {\n      comment: {\n        pattern: /;.*/,\n        greedy: true\n      },\n      character: {\n        pattern: /`.`/,\n        alias: 'char',\n        greedy: true\n      },\n      number: {\n        pattern: /\\b\\d+(?:\\.\\d+(?:\\.\\d+(?:-[\\w+-]+)?)?)?\\b/\n      },\n      string: {\n        pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n        greedy: true\n      },\n      regex: {\n        pattern: /\\{\\/.*?\\/\\}/,\n        greedy: true\n      },\n      'html-string': createLanguageString('html'),\n      'css-string': createLanguageString('css'),\n      'js-string': createLanguageString('js'),\n      'md-string': createLanguageString('md'),\n      'sql-string': createLanguageString('sql'),\n      'sh-string': createLanguageString('shell', 'sh'),\n      multistring: {\n        pattern: /».*|\\{:[\\s\\S]*?:\\}|\\{[\\s\\S]*?\\}|^-{6}$[\\s\\S]*/m,\n        alias: 'string',\n        greedy: true\n      },\n      label: {\n        pattern: /\\w+\\b\\??:/,\n        alias: 'property'\n      },\n      literal: {\n        pattern: /'(?:\\w+\\b\\??:?)/,\n        alias: 'constant'\n      },\n      type: {\n        pattern: /:(?:\\w+\\b\\??:?)/,\n        alias: 'class-name'\n      },\n      color: /#\\w+/,\n      predicate: {\n        pattern:\n          /\\b(?:all|and|any|ascii|attr|attribute|attributeLabel|binary|block|char|contains|database|date|dictionary|empty|equal|even|every|exists|false|floating|function|greater|greaterOrEqual|if|in|inline|integer|is|key|label|leap|less|lessOrEqual|literal|logical|lower|nand|negative|nor|not|notEqual|null|numeric|odd|or|path|pathLabel|positive|prefix|prime|regex|same|set|some|sorted|standalone|string|subset|suffix|superset|symbol|symbolLiteral|true|try|type|unless|upper|when|whitespace|word|xnor|xor|zero)\\?/,\n        alias: 'keyword'\n      },\n      'builtin-function': {\n        pattern:\n          /\\b(?:abs|acos|acosh|acsec|acsech|actan|actanh|add|after|alert|alias|and|angle|append|arg|args|arity|array|as|asec|asech|asin|asinh|atan|atan2|atanh|attr|attrs|average|before|benchmark|blend|break|call|capitalize|case|ceil|chop|clear|clip|close|color|combine|conj|continue|copy|cos|cosh|crc|csec|csech|ctan|ctanh|cursor|darken|dec|decode|define|delete|desaturate|deviation|dialog|dictionary|difference|digest|digits|div|do|download|drop|dup|e|else|empty|encode|ensure|env|escape|execute|exit|exp|extend|extract|factors|fdiv|filter|first|flatten|floor|fold|from|function|gamma|gcd|get|goto|hash|hypot|if|inc|indent|index|infinity|info|input|insert|inspect|intersection|invert|jaro|join|keys|kurtosis|last|let|levenshtein|lighten|list|ln|log|loop|lower|mail|map|match|max|median|min|mod|module|mul|nand|neg|new|nor|normalize|not|now|null|open|or|outdent|pad|palette|panic|path|pause|permissions|permutate|pi|pop|popup|pow|powerset|powmod|prefix|print|prints|process|product|query|random|range|read|relative|remove|rename|render|repeat|replace|request|return|reverse|round|sample|saturate|script|sec|sech|select|serve|set|shl|shr|shuffle|sin|sinh|size|skewness|slice|sort|spin|split|sqrt|squeeze|stack|strip|sub|suffix|sum|switch|symbols|symlink|sys|take|tan|tanh|terminal|terminate|to|truncate|try|type|unclip|union|unique|unless|until|unzip|upper|values|var|variance|volume|webview|while|with|wordwrap|write|xnor|xor|zip)\\b/,\n        alias: 'keyword'\n      },\n      sugar: {\n        pattern: /->|=>|\\||::/,\n        alias: 'operator'\n      },\n      punctuation: /[()[\\],]/,\n      symbol: {\n        pattern: /<:|-:|ø|@|#|\\+|\\||\\*|\\$|---|-|%|\\/|\\.\\.|\\^|~|=|<|>|\\\\/\n      },\n      boolean: {\n        pattern: /\\b(?:false|maybe|true)\\b/\n      }\n    }\n    Prism.languages.art = Prism.languages['arturo']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\n\n/** @param {Refractor} Prism */\nexport default function asciidoc(Prism) {\n  ;(function (Prism) {\n    var attributes = {\n      pattern:\n        /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n      lookbehind: true,\n      inside: {\n        quoted: {\n          pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          inside: {\n            punctuation: /^[$`]|[$`]$/\n          }\n        },\n        interpreted: {\n          pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n          inside: {\n            punctuation: /^'|'$/\n            // See rest below\n          }\n        },\n        string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        variable: /\\w+(?==)/,\n        punctuation: /^\\[|\\]$|,/,\n        operator: /=/,\n        // The negative look-ahead prevents blank matches\n        'attr-value': /(?!^\\s+$).+/\n      }\n    }\n    var asciidoc = (Prism.languages.asciidoc = {\n      'comment-block': {\n        pattern: /^(\\/{4,})$[\\s\\S]*?^\\1/m,\n        alias: 'comment'\n      },\n      table: {\n        pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n        inside: {\n          specifiers: {\n            pattern:\n              /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n            alias: 'attr-value'\n          },\n          punctuation: {\n            pattern: /(^|[^\\\\])[|!]=*/,\n            lookbehind: true\n          }\n          // See rest below\n        }\n      },\n      'passthrough-block': {\n        pattern: /^(\\+{4,})$[\\s\\S]*?^\\1$/m,\n        inside: {\n          punctuation: /^\\++|\\++$/\n          // See rest below\n        }\n      },\n      // Literal blocks and listing blocks\n      'literal-block': {\n        pattern: /^(-{4,}|\\.{4,})$[\\s\\S]*?^\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/\n          // See rest below\n        }\n      },\n      // Sidebar blocks, quote blocks, example blocks and open blocks\n      'other-block': {\n        pattern: /^(--|\\*{4,}|_{4,}|={4,})$[\\s\\S]*?^\\1$/m,\n        inside: {\n          punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/\n          // See rest below\n        }\n      },\n      // list-punctuation and list-label must appear before indented-block\n      'list-punctuation': {\n        pattern:\n          /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      'list-label': {\n        pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n        lookbehind: true,\n        alias: 'symbol'\n      },\n      'indented-block': {\n        pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n        lookbehind: true\n      },\n      comment: /^\\/\\/.*/m,\n      title: {\n        pattern:\n          /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n        alias: 'important',\n        inside: {\n          punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/\n          // See rest below\n        }\n      },\n      'attribute-entry': {\n        pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n        alias: 'tag'\n      },\n      attributes: attributes,\n      hr: {\n        pattern: /^'{3,}$/m,\n        alias: 'punctuation'\n      },\n      'page-break': {\n        pattern: /^<{3,}$/m,\n        alias: 'punctuation'\n      },\n      admonition: {\n        pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n        alias: 'keyword'\n      },\n      callout: [\n        {\n          pattern: /(^[ \\t]*)<?\\d*>/m,\n          lookbehind: true,\n          alias: 'symbol'\n        },\n        {\n          pattern: /<\\d+>/,\n          alias: 'symbol'\n        }\n      ],\n      macro: {\n        pattern:\n          /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n        inside: {\n          function: /^[a-z\\d-]+(?=:)/,\n          punctuation: /^::?/,\n          attributes: {\n            pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n            inside: attributes.inside\n          }\n        }\n      },\n      inline: {\n        /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n        pattern:\n          /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n        lookbehind: true,\n        inside: {\n          attributes: attributes,\n          url: {\n            pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n            inside: {\n              punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n            }\n          },\n          'attribute-ref': {\n            pattern: /^\\{.+\\}$/,\n            inside: {\n              variable: {\n                pattern: /(^\\{)[a-z\\d,+_-]+/,\n                lookbehind: true\n              },\n              operator: /^[=?!#%@$]|!(?=[:}])/,\n              punctuation: /^\\{|\\}$|::?/\n            }\n          },\n          italic: {\n            pattern: /^(['_])[\\s\\S]+\\1$/,\n            inside: {\n              punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n            }\n          },\n          bold: {\n            pattern: /^\\*[\\s\\S]+\\*$/,\n            inside: {\n              punctuation: /^\\*\\*?|\\*\\*?$/\n            }\n          },\n          punctuation:\n            /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n        }\n      },\n      replacement: {\n        pattern: /\\((?:C|R|TM)\\)/,\n        alias: 'builtin'\n      },\n      entity: /&#?[\\da-z]{1,8};/i,\n      'line-continuation': {\n        pattern: /(^| )\\+$/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n\n    // Allow some nesting. There is no recursion though, so cloning should not be needed.\n\n    function copyFromAsciiDoc(keys) {\n      keys = keys.split(' ')\n      var o = {}\n      for (var i = 0, l = keys.length; i < l; i++) {\n        o[keys[i]] = asciidoc[keys[i]]\n      }\n      return o\n    }\n    attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    )\n    asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n    asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n    asciidoc['table'].inside.rest = copyFromAsciiDoc(\n      'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n    )\n    asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n      'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n    )\n    asciidoc['title'].inside.rest = copyFromAsciiDoc(\n      'macro inline replacement entity'\n    )\n\n    // Plugin to make entity title show the real entity, idea by Roman Komarov\n    Prism.hooks.add('wrap', function (env) {\n      if (env.type === 'entity') {\n        env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n      }\n    })\n    Prism.languages.adoc = Prism.languages.asciidoc\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['cs', 'dotnet']\n\n/** @param {Refractor} Prism */\nexport default function csharp(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    }\n\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n      // keywords which are used to declare a type\n      typeDeclaration: 'class enum interface record struct',\n      // contextual keywords\n      // (\"var\" and \"dynamic\" are missing because they are used like types)\n      contextual:\n        'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n      // all other keywords\n      other:\n        'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n    }\n\n    // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var typeDeclarationKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration\n    )\n    var keywords = RegExp(\n      keywordsToPattern(\n        keywordKinds.type +\n          ' ' +\n          keywordKinds.typeDeclaration +\n          ' ' +\n          keywordKinds.contextual +\n          ' ' +\n          keywordKinds.other\n      )\n    )\n    var nonTypeKeywords = keywordsToPattern(\n      keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.contextual +\n        ' ' +\n        keywordKinds.other\n    )\n    var nonContextualKeywords = keywordsToPattern(\n      keywordKinds.type +\n        ' ' +\n        keywordKinds.typeDeclaration +\n        ' ' +\n        keywordKinds.other\n    )\n\n    // types\n    var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n    var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n    var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n    var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n    var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n      nonTypeKeywords,\n      genericName\n    ])\n    var array = /\\[\\s*(?:,\\s*)*\\]/.source\n    var typeExpressionWithoutTuple = replace(\n      /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n      [identifier, array]\n    )\n    var tupleElement = replace(\n      /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n      [generic, nestedRound, array]\n    )\n    var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n    var typeExpression = replace(\n      /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n      [tuple, identifier, array]\n    )\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    }\n\n    // strings & characters\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n    // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n    var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n    var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n    var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n    Prism.languages.csharp = Prism.languages.extend('clike', {\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // Using static\n          // using static System.Math;\n          pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n            identifier\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (type)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n            name,\n            typeExpression\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Using alias (alias)\n          // using Project = PC.MyCompany.Project;\n          pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Type declarations\n          // class Foo<A, B>\n          // interface Foo<out A, B>\n          pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n            typeDeclarationKeywords,\n            genericName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Single catch exception declaration\n          // catch(Foo)\n          // (things like catch(Foo e) is covered by variable declaration)\n          pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Name of the type parameter of generic constraints\n          // where Foo : class\n          pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n          lookbehind: true\n        },\n        {\n          // Casts and checks via as and is.\n          // as Foo<A>, is Bar<B>\n          // (things like if(a is Foo b) is covered by variable declaration)\n          pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n            typeExpressionWithoutTuple\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // Variable, field and parameter declaration\n          // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n          pattern: re(\n            /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n              .source,\n            [typeExpression, nonContextualKeywords, name]\n          ),\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n      number:\n        /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n      operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n      punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('csharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'punctuation', {\n      'named-parameter': {\n        pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      namespace: {\n        // namespace Foo.Bar {}\n        // using Foo.Bar;\n        pattern: re(\n          /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n          [name]\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      'type-expression': {\n        // default(Foo), typeof(Foo<Bar>), sizeof(int)\n        pattern: re(\n          /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n            .source,\n          [nestedRound]\n        ),\n        lookbehind: true,\n        alias: 'class-name',\n        inside: typeInside\n      },\n      'return-type': {\n        // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n        // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n        // int Foo => 0; int Foo { get; set } = 0;\n        pattern: re(\n          /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n          [typeExpression, identifier]\n        ),\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      'constructor-invocation': {\n        // new List<Foo<Bar[]>> { }\n        pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n        lookbehind: true,\n        inside: typeInside,\n        alias: 'class-name'\n      },\n      /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n      'generic-method': {\n        // foo<Bar>()\n        pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n        inside: {\n          function: re(/^<<0>>/.source, [name]),\n          generic: {\n            pattern: RegExp(generic),\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      },\n      'type-list': {\n        // The list of types inherited or of generic constraints\n        // class Foo<F> : Bar, IList<FooBar>\n        // where F : Bar, IList<int>\n        pattern: re(\n          /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n            .source,\n          [\n            typeDeclarationKeywords,\n            genericName,\n            name,\n            typeExpression,\n            keywords.source,\n            nestedRound,\n            /\\bnew\\s*\\(\\s*\\)/.source\n          ]\n        ),\n        lookbehind: true,\n        inside: {\n          'record-arguments': {\n            pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n              genericName,\n              nestedRound\n            ]),\n            lookbehind: true,\n            greedy: true,\n            inside: Prism.languages.csharp\n          },\n          keyword: keywords,\n          'class-name': {\n            pattern: RegExp(typeExpression),\n            greedy: true,\n            inside: typeInside\n          },\n          punctuation: /[,()]/\n        }\n      },\n      preprocessor: {\n        pattern: /(^[\\t ]*)#.*/m,\n        lookbehind: true,\n        alias: 'property',\n        inside: {\n          // highlight preprocessor directives as keywords\n          directive: {\n            pattern:\n              /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n            lookbehind: true,\n            alias: 'keyword'\n          }\n        }\n      }\n    })\n\n    // attributes\n    var regularStringOrCharacter = regularString + '|' + character\n    var regularStringCharacterOrComment = replace(\n      /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n      [regularStringOrCharacter]\n    )\n    var roundExpression = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    )\n\n    // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n    var attrTarget =\n      /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n        .source\n    var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n      identifier,\n      roundExpression\n    ])\n    Prism.languages.insertBefore('csharp', 'class-name', {\n      attribute: {\n        // Attributes\n        // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n        pattern: re(\n          /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n            .source,\n          [attrTarget, attr]\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          target: {\n            pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n            alias: 'keyword'\n          },\n          'attribute-arguments': {\n            pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n            inside: Prism.languages.csharp\n          },\n          'class-name': {\n            pattern: RegExp(identifier),\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          punctuation: /[:,]/\n        }\n      }\n    })\n\n    // string interpolation\n    var formatString = /:[^}\\r\\n]+/.source\n    // multi line\n    var mInterpolationRound = nested(\n      replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n        regularStringCharacterOrComment\n      ]),\n      2\n    )\n    var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      mInterpolationRound,\n      formatString\n    ])\n    // single line\n    var sInterpolationRound = nested(\n      replace(\n        /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n          .source,\n        [regularStringOrCharacter]\n      ),\n      2\n    )\n    var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n      sInterpolationRound,\n      formatString\n    ])\n    function createInterpolationInside(interpolation, interpolationRound) {\n      return {\n        interpolation: {\n          pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n          lookbehind: true,\n          inside: {\n            'format-string': {\n              pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n                interpolationRound,\n                formatString\n              ]),\n              lookbehind: true,\n              inside: {\n                punctuation: /^:/\n              }\n            },\n            punctuation: /^\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              alias: 'language-csharp',\n              inside: Prism.languages.csharp\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.insertBefore('csharp', 'string', {\n      'interpolation-string': [\n        {\n          pattern: re(\n            /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n            [mInterpolation]\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n        },\n        {\n          pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n            sInterpolation\n          ]),\n          lookbehind: true,\n          greedy: true,\n          inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n        }\n      ],\n      char: {\n        pattern: RegExp(character),\n        greedy: true\n      }\n    })\n    Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCsharp from './csharp.js'\nimport refractorMarkup from './markup.js'\naspnet.displayName = 'aspnet'\naspnet.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function aspnet(Prism) {\n  Prism.register(refractorCsharp)\n  Prism.register(refractorMarkup)\n  Prism.languages.aspnet = Prism.languages.extend('markup', {\n    'page-directive': {\n      pattern: /<%\\s*@.*%>/,\n      alias: 'tag',\n      inside: {\n        'page-directive': {\n          pattern:\n            /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n          alias: 'tag'\n        },\n        rest: Prism.languages.markup.tag.inside\n      }\n    },\n    directive: {\n      pattern: /<%.*%>/,\n      alias: 'tag',\n      inside: {\n        directive: {\n          pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n          alias: 'tag'\n        },\n        rest: Prism.languages.csharp\n      }\n    }\n  })\n  // Regexp copied from prism-markup, with a negative look-ahead added\n  Prism.languages.aspnet.tag.pattern =\n    /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n\n  // match directives of attribute value foo=\"<% Bar %>\"\n  Prism.languages.insertBefore(\n    'inside',\n    'punctuation',\n    {\n      directive: Prism.languages.aspnet['directive']\n    },\n    Prism.languages.aspnet.tag.inside['attr-value']\n  )\n  Prism.languages.insertBefore('aspnet', 'comment', {\n    'asp-comment': {\n      pattern: /<%--[\\s\\S]*?--%>/,\n      alias: ['asp', 'comment']\n    }\n  })\n\n  // script runat=\"server\" contains csharp, not javascript\n  Prism.languages.insertBefore(\n    'aspnet',\n    Prism.languages.javascript ? 'script' : 'tag',\n    {\n      'asp-script': {\n        pattern:\n          /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n        lookbehind: true,\n        alias: ['asp', 'script'],\n        inside: Prism.languages.csharp || {}\n      }\n    }\n  )\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function asm6502(Prism) {\n  Prism.languages.asm6502 = {\n    comment: /;.*/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[xya]\\b/i,\n      alias: 'variable'\n    },\n    punctuation: /[(),:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function asmatmel(Prism) {\n  Prism.languages.asmatmel = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n    directive: {\n      pattern: /\\.\\w+(?= )/,\n      alias: 'property'\n    },\n    'r-register': {\n      pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n      alias: 'variable'\n    },\n    'op-code': {\n      pattern:\n        /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n      alias: 'keyword'\n    },\n    'hex-number': {\n      pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n      alias: 'number'\n    },\n    'binary-number': {\n      pattern: /#?%[01]+\\b/,\n      alias: 'number'\n    },\n    'decimal-number': {\n      pattern: /#?\\b\\d+\\b/,\n      alias: 'number'\n    },\n    register: {\n      pattern: /\\b[acznvshtixy]\\b/i,\n      alias: 'variable'\n    },\n    operator: />>=?|<<=?|&[&=]?|\\|[\\|=]?|[-+*/%^!=<>?]=?/,\n    punctuation: /[(),:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function autohotkey(Prism) {\n  // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n  Prism.languages.autohotkey = {\n    comment: [\n      {\n        pattern: /(^|\\s);.*/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    tag: {\n      // labels\n      pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n      lookbehind: true\n    },\n    string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n    variable: /%\\w+%/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator:\n      /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    command: {\n      pattern:\n        /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n      alias: 'selector'\n    },\n    constant:\n      /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n    builtin:\n      /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n    symbol:\n      /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n    directive: {\n      pattern: /#[a-z]+\\b/i,\n      alias: 'important'\n    },\n    keyword:\n      /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n    function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n    punctuation: /[{}[\\]():,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nautoit.displayName = 'autoit'\nautoit.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function autoit(Prism) {\n  Prism.languages.autoit = {\n    comment: [\n      /;.*/,\n      {\n        // The multi-line comments delimiters can actually be commented out with \";\"\n        pattern:\n          /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n        lookbehind: true\n      }\n    ],\n    url: {\n      pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        variable: /([%$@])\\w+\\1/\n      }\n    },\n    directive: {\n      pattern: /(^[\\t ]*)#[\\w-]+/m,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    function: /\\b\\w+(?=\\()/,\n    // Variables and macros\n    variable: /[$@]\\w+/,\n    keyword:\n      /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[\\[\\]().,:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\n\n/** @param {Refractor} Prism */\nexport default function avisynth(Prism) {\n  // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n  ;(function (Prism) {\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return replacements[+index]\n      })\n    }\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n    var types = /bool|clip|float|int|string|val/.source\n    var internals = [\n      // bools\n      /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n        .source,\n      // control\n      /apply|assert|default|eval|import|nop|select|undefined/.source,\n      // global\n      /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n        .source,\n      // conv\n      /hex(?:value)?|value/.source,\n      // numeric\n      /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n        .source,\n      // trig\n      /a?sinh?|a?cosh?|a?tan[2h]?/.source,\n      // bit\n      /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n        .source,\n      // runtime\n      /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n        .source,\n      // script\n      /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n        .source,\n      // string\n      /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n        .source,\n      // version\n      /isversionorgreater|version(?:number|string)/.source,\n      // helper\n      /buildpixeltype|colorspacenametopixeltype/.source,\n      // avsplus\n      /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n    ].join('|')\n    var properties = [\n      // content\n      /has(?:audio|video)/.source,\n      // resolution\n      /height|width/.source,\n      // framerate\n      /frame(?:count|rate)|framerate(?:denominator|numerator)/.source,\n      // interlacing\n      /getparity|is(?:field|frame)based/.source,\n      // color format\n      /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n        .source,\n      // audio\n      /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n        .source\n    ].join('|')\n    var filters = [\n      // source\n      /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n        .source,\n      // color\n      /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n        .source,\n      // overlay\n      /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,\n      // geometry\n      /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n        .source,\n      // pixel\n      /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n        .source,\n      // timeline\n      /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n        .source,\n      // interlace\n      /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n        .source,\n      // audio\n      /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n        .source,\n      // conditional\n      /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n        .source,\n      // export\n      /imagewriter/.source,\n      // debug\n      /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n        .source\n    ].join('|')\n    var allinternals = [internals, properties, filters].join('|')\n    Prism.languages.avisynth = {\n      comment: [\n        {\n          // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n          // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n          pattern:\n            /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches /* */ block comments\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // Matches # comments\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // Handle before strings because optional arguments are surrounded by double quotes\n      argument: {\n        pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n        inside: {\n          keyword: /^\\w+/\n        }\n      },\n      // Optional argument assignment\n      'argument-label': {\n        pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n        lookbehind: true,\n        inside: {\n          'argument-name': {\n            pattern: /^\\w+/,\n            alias: 'punctuation'\n          },\n          punctuation: /=$/\n        }\n      },\n      string: [\n        {\n          // triple double-quoted\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true\n        },\n        {\n          // single double-quoted\n          pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            constant: {\n              // These *are* case-sensitive!\n              pattern:\n                /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n            }\n          }\n        }\n      ],\n      // The special \"last\" variable that takes the value of the last implicitly returned clip\n      variable: /\\b(?:last)\\b/i,\n      boolean: /\\b(?:false|no|true|yes)\\b/i,\n      keyword:\n        /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n      constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n      // AviSynth's internal functions, filters, and properties\n      'builtin-function': {\n        pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n        alias: 'function'\n      },\n      'type-cast': {\n        pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n        alias: 'keyword'\n      },\n      // External/user-defined filters\n      function: {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n        lookbehind: true\n      },\n      // Matches a \\ as the first or last character on a line\n      'line-continuation': {\n        pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      number:\n        /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n      operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n      punctuation: /[{}\\[\\]();,.]/\n    }\n    Prism.languages.avs = Prism.languages.avisynth\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\navroIdl.displayName = 'avro-idl'\navroIdl.aliases = ['avdl']\n\n/** @param {Refractor} Prism */\nexport default function avroIdl(Prism) {\n  // GitHub: https://github.com/apache/avro\n  // Docs: https://avro.apache.org/docs/current/idl.html\n\n  Prism.languages['avro-idl'] = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    annotation: {\n      pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n      greedy: true,\n      alias: 'function'\n    },\n    'function-identifier': {\n      pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n      greedy: true,\n      alias: 'function'\n    },\n    identifier: {\n      pattern: /`[^\\r\\n`]+`/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: [\n      {\n        pattern:\n          /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n        lookbehind: true\n      },\n      /-?\\b(?:Infinity|NaN)\\b/\n    ],\n    operator: /=/,\n    punctuation: /[()\\[\\]{}<>.:,;-]/\n  }\n  Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nawk.displayName = 'awk'\nawk.aliases = ['gawk']\n\n/** @param {Refractor} Prism */\nexport default function awk(Prism) {\n  Prism.languages.awk = {\n    hashbang: {\n      pattern: /^#!.*/,\n      greedy: true,\n      alias: 'comment'\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    regex: {\n      pattern: /((?:^|[^\\w\\s)])\\s*)\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\//,\n      lookbehind: true,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    keyword:\n      /\\b(?:BEGIN|BEGINFILE|END|ENDFILE|break|case|continue|default|delete|do|else|exit|for|function|getline|if|in|next|nextfile|printf?|return|switch|while)\\b|@(?:include|load)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[a-fA-F0-9]+)\\b/,\n    operator: /--|\\+\\+|!?~|>&|>>|<<|(?:\\*\\*|[<>!=+\\-*/%^])=?|&&|\\|[|&]|[?:]/,\n    punctuation: /[()[\\]{},;]/\n  }\n  Prism.languages.gawk = Prism.languages.awk\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbasic.displayName = 'basic'\nbasic.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function basic(Prism) {\n  Prism.languages.basic = {\n    comment: {\n      pattern: /(?:!|REM\\b).+/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n    operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n    punctuation: /[,;:()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbatch.displayName = 'batch'\nbatch.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function batch(Prism) {\n  ;(function (Prism) {\n    var variable = /%%?[~:\\w]+%?|!\\S+!/\n    var parameter = {\n      pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n      alias: 'attr-name',\n      inside: {\n        punctuation: /:/\n      }\n    }\n    var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n    var number = /(?:\\b|-)\\d+\\b/\n    Prism.languages.batch = {\n      comment: [\n        /^::.*/m,\n        {\n          pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true\n        }\n      ],\n      label: {\n        pattern: /^:.*/m,\n        alias: 'property'\n      },\n      command: [\n        {\n          // FOR command\n          pattern:\n            /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n          lookbehind: true,\n          inside: {\n            keyword: /\\b(?:do|in)\\b|^for\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // IF command\n          pattern:\n            /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: variable,\n            number: number,\n            operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n          }\n        },\n        {\n          // ELSE command\n          pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^else\\b/i\n          }\n        },\n        {\n          // SET command\n          pattern:\n            /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n          lookbehind: true,\n          inside: {\n            keyword: /^set\\b/i,\n            string: string,\n            parameter: parameter,\n            variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n            number: number,\n            operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n            punctuation: /[()',]/\n          }\n        },\n        {\n          // Other commands\n          pattern:\n            /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^\\w+\\b/,\n            string: string,\n            parameter: parameter,\n            label: {\n              pattern: /(^\\s*):\\S+/m,\n              lookbehind: true,\n              alias: 'property'\n            },\n            variable: variable,\n            number: number,\n            operator: /\\^/\n          }\n        }\n      ],\n      operator: /[&@]/,\n      punctuation: /[()']/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\n\n/** @param {Refractor} Prism */\nexport default function bbcode(Prism) {\n  Prism.languages.bbcode = {\n    tag: {\n      pattern:\n        /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n      inside: {\n        tag: {\n          pattern: /^\\[\\/?[^\\s=\\]]+/,\n          inside: {\n            punctuation: /^\\[\\/?/\n          }\n        },\n        'attr-value': {\n          pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n          inside: {\n            punctuation: [\n              /^=/,\n              {\n                pattern: /^(\\s*)[\"']|[\"']$/,\n                lookbehind: true\n              }\n            ]\n          }\n        },\n        punctuation: /\\]/,\n        'attr-name': /[^\\s=\\]]+/\n      }\n    }\n  }\n  Prism.languages.shortcode = Prism.languages.bbcode\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbbj.displayName = 'bbj'\nbbj.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function bbj(Prism) {\n  ;(function (Prism) {\n    Prism.languages.bbj = {\n      comment: {\n        pattern: /(^|[^\\\\:])rem\\s+.*/i,\n        lookbehind: true,\n        greedy: true\n      },\n      string: {\n        pattern: /(['\"])(?:(?!\\1|\\\\).|\\\\.)*\\1/,\n        greedy: true\n      },\n      number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n      keyword:\n        /\\b(?:abstract|all|argc|begin|bye|callback|case|chn|class|classend|ctl|day|declare|delete|dim|dom|dread|dsz|else|end|endif|err|exitto|extends|fi|field|for|from|gosub|goto|if|implements|interface|interfaceend|iol|iolist|let|list|load|method|methodend|methodret|on|opts|pfx|print|private|process_events|protected|psz|public|read|read_resource|release|remove_callback|repeat|restore|return|rev|seterr|setesc|sqlchn|sqlunt|ssn|start|static|swend|switch|sys|then|tim|unt|until|use|void|wend|where|while)\\b/i,\n      function: /\\b\\w+(?=\\()/,\n      boolean: /\\b(?:BBjAPI\\.TRUE|BBjAPI\\.FALSE)\\b/i,\n      operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:and|not|or|xor)\\b/i,\n      punctuation: /[.,;:()]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbicep.displayName = 'bicep'\nbicep.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function bicep(Prism) {\n  // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n  Prism.languages.bicep = {\n    comment: [\n      {\n        // multiline comments eg /* ASDF */\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        // singleline comments eg // ASDF\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    property: [\n      {\n        pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n        lookbehind: true\n      },\n      {\n        pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: /'''[^'][\\s\\S]*?'''/,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    'interpolated-string': {\n      pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true\n            },\n            punctuation: /^\\$\\{|\\}$/\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    datatype: {\n      pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n    keyword:\n      /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n    decorator: /@\\w+\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    operator:\n      /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.bicep\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nbirb.displayName = 'birb'\nbirb.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function birb(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.birb = Prism.languages.extend('clike', {\n    string: {\n      pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    'class-name': [\n      /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/,\n      // matches variable and function return types (parameters as well).\n      /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n    ],\n    keyword:\n      /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n    operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n    variable: /\\b[a-z_]\\w*\\b/\n  })\n  Prism.languages.insertBefore('birb', 'function', {\n    metadata: {\n      pattern: /<\\w+>/,\n      greedy: true,\n      alias: 'symbol'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\nbison.displayName = 'bison'\nbison.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function bison(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.bison = Prism.languages.extend('c', {})\n  Prism.languages.insertBefore('bison', 'comment', {\n    bison: {\n      // This should match all the beginning of the file\n      // including the prologue(s), the bison declarations and\n      // the grammar rules.\n      pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n      inside: {\n        c: {\n          // Allow for one level of nested braces\n          pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n          inside: {\n            delimiter: {\n              pattern: /^%?\\{|%?\\}$/,\n              alias: 'punctuation'\n            },\n            'bison-variable': {\n              pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n              alias: 'variable',\n              inside: {\n                punctuation: /<|>/\n              }\n            },\n            rest: Prism.languages.c\n          }\n        },\n        comment: Prism.languages.c.comment,\n        string: Prism.languages.c.string,\n        property: /\\S+(?=:)/,\n        keyword: /%\\w+/,\n        number: {\n          pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n          lookbehind: true\n        },\n        punctuation: /%[%?]|[|:;\\[\\]<>]/\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\n\n/** @param {Refractor} Prism */\nexport default function bnf(Prism) {\n  Prism.languages.bnf = {\n    string: {\n      pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n    },\n    definition: {\n      pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n      alias: ['rule', 'keyword'],\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    rule: {\n      pattern: /<[^<>\\r\\n\\t]+>/,\n      inside: {\n        punctuation: /^<|>$/\n      }\n    },\n    operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n  }\n  Prism.languages.rbnf = Prism.languages.bnf\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbqn.displayName = 'bqn'\nbqn.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function bqn(Prism) {\n  Prism.languages.bqn = {\n    shebang: {\n      pattern: /^#![ \\t]*\\/.*/,\n      alias: 'important',\n      greedy: true\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'string-literal': {\n      pattern: /\"(?:[^\"]|\"\")*\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    'character-literal': {\n      pattern: /'(?:[\\s\\S]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])'/,\n      greedy: true,\n      alias: 'char'\n    },\n    function: /•[\\w¯.∞π]+[\\w¯.∞π]*/,\n    'dot-notation-on-brackets': {\n      pattern: /\\{(?=.*\\}\\.)|\\}\\./,\n      alias: 'namespace'\n    },\n    'special-name': {\n      pattern: /(?:𝕨|𝕩|𝕗|𝕘|𝕤|𝕣|𝕎|𝕏|𝔽|𝔾|𝕊|_𝕣_|_𝕣)/,\n      alias: 'keyword'\n    },\n    'dot-notation-on-name': {\n      pattern: /[A-Za-z_][\\w¯∞π]*\\./,\n      alias: 'namespace'\n    },\n    'word-number-scientific': {\n      pattern: /\\d+(?:\\.\\d+)?[eE]¯?\\d+/,\n      alias: 'number'\n    },\n    'word-name': {\n      pattern: /[A-Za-z_][\\w¯∞π]*/,\n      alias: 'symbol'\n    },\n    'word-number': {\n      pattern:\n        /[¯∞π]?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+|E[+¯]?\\d+)?|¯|∞|π)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+|E[+¯]?\\d+)?|¯|∞|π))?/,\n      alias: 'number'\n    },\n    'null-literal': {\n      pattern: /@/,\n      alias: 'char'\n    },\n    'primitive-functions': {\n      pattern: /[-+×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!]/,\n      alias: 'operator'\n    },\n    'primitive-1-operators': {\n      pattern: /[`˜˘¨⁼⌜´˝˙]/,\n      alias: 'operator'\n    },\n    'primitive-2-operators': {\n      pattern: /[∘⊸⟜○⌾⎉⚇⍟⊘◶⎊]/,\n      alias: 'operator'\n    },\n    punctuation: /[←⇐↩(){}⟨⟩[\\]‿·⋄,.;:?]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function brainfuck(Prism) {\n  Prism.languages.brainfuck = {\n    pointer: {\n      pattern: /<|>/,\n      alias: 'keyword'\n    },\n    increment: {\n      pattern: /\\+/,\n      alias: 'inserted'\n    },\n    decrement: {\n      pattern: /-/,\n      alias: 'deleted'\n    },\n    branching: {\n      pattern: /\\[|\\]/,\n      alias: 'important'\n    },\n    operator: /[.,]/,\n    comment: /\\S+/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function brightscript(Prism) {\n  Prism.languages.brightscript = {\n    comment: /(?:\\brem|').*/i,\n    'directive-statement': {\n      pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        'error-message': {\n          pattern: /(^#error).+/,\n          lookbehind: true\n        },\n        directive: {\n          pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n          alias: 'keyword'\n        },\n        expression: {\n          pattern: /[\\s\\S]+/,\n          inside: null // see below\n        }\n      }\n    },\n    property: {\n      pattern:\n        /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\bAs[\\t ]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n    number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n    operator:\n      /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n    punctuation: /[.,;()[\\]{}]/,\n    constant: /\\b(?:LINE_NUM)\\b/i\n  }\n  Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n    Prism.languages.brightscript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbro.displayName = 'bro'\nbro.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function bro(Prism) {\n  Prism.languages.bro = {\n    comment: {\n      pattern: /(^|[^\\\\$])#.*/,\n      lookbehind: true,\n      inside: {\n        italic: /\\b(?:FIXME|TODO|XXX)\\b/\n      }\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    boolean: /\\b[TF]\\b/,\n    function: {\n      pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n      lookbehind: true\n    },\n    builtin:\n      /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n    constant: {\n      pattern: /(\\bconst[ \\t]+)\\w+/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n    operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbsl.displayName = 'bsl'\nbsl.aliases = ['oscript']\n\n/** @param {Refractor} Prism */\nexport default function bsl(Prism) {\n  /* eslint-disable no-misleading-character-class */\n\n  // 1C:Enterprise\n  // https://github.com/Diversus23/\n  //\n  Prism.languages.bsl = {\n    comment: /\\/\\/.*/,\n    string: [\n      // Строки\n      // Strings\n      {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      },\n      // Дата и время\n      // Date & time\n      {\n        pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n      }\n    ],\n    keyword: [\n      {\n        // RU\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      },\n      {\n        // EN\n        pattern:\n          /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n      }\n    ],\n    number: {\n      pattern:\n        /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n      lookbehind: true\n    },\n    operator: [\n      /[<>+\\-*/]=?|[%=]/,\n      // RU\n      {\n        pattern:\n          /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n        lookbehind: true\n      },\n      // EN\n      {\n        pattern: /\\b(?:and|not|or)\\b/i\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n    directive: [\n      // Теги препроцессора вида &Клиент, &Сервер, ...\n      // Preprocessor tags of the type &Client, &Server, ...\n      {\n        pattern: /^([ \\t]*)&.*/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      },\n      // Инструкции препроцессора вида:\n      // #Если Сервер Тогда\n      // ...\n      // #КонецЕсли\n      // Preprocessor instructions of the form:\n      // #If Server Then\n      // ...\n      // #EndIf\n      {\n        pattern: /^([ \\t]*)#.*/gm,\n        lookbehind: true,\n        greedy: true,\n        alias: 'important'\n      }\n    ]\n  }\n  Prism.languages.oscript = Prism.languages['bsl']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ncfscript.displayName = 'cfscript'\ncfscript.aliases = ['cfc']\n\n/** @param {Refractor} Prism */\nexport default function cfscript(Prism) {\n  Prism.register(refractorClike)\n  // https://cfdocs.org/script\n  Prism.languages.cfscript = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n        lookbehind: true,\n        inside: {\n          annotation: {\n            pattern: /(?:^|[^.])@[\\w\\.]+/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n    operator: [\n      /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|:/,\n      /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n    ],\n    scope: {\n      pattern:\n        /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n      alias: 'global'\n    },\n    type: {\n      pattern:\n        /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n      alias: 'builtin'\n    }\n  })\n  Prism.languages.insertBefore('cfscript', 'keyword', {\n    // This must be declared before keyword because we use \"function\" inside the lookahead\n    'function-variable': {\n      pattern:\n        /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n      alias: 'function'\n    }\n  })\n  delete Prism.languages.cfscript['class-name']\n  Prism.languages.cfc = Prism.languages['cfscript']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nimport refractorCpp from './cpp.js'\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function chaiscript(Prism) {\n  Prism.register(refractorClike)\n  Prism.register(refractorCpp)\n  Prism.languages.chaiscript = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': [\n      {\n        // e.g. class Rectangle { ... }\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      },\n      {\n        // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n        pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n        lookbehind: true\n      }\n    ],\n    keyword:\n      /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n    number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n    operator:\n      />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n  })\n  Prism.languages.insertBefore('chaiscript', 'operator', {\n    'parameter-type': {\n      // e.g. def foo(int x, Vector y) {...}\n      pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n      lookbehind: true,\n      alias: 'class-name'\n    }\n  })\n  Prism.languages.insertBefore('chaiscript', 'string', {\n    'string-interpolation': {\n      pattern:\n        /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-expression': {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              inside: Prism.languages.chaiscript\n            },\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncil.displayName = 'cil'\ncil.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cil(Prism) {\n  Prism.languages.cil = {\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    directive: {\n      pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'class-name'\n    },\n    // Actually an assembly reference\n    variable: /\\[[\\w\\.]+\\]/,\n    keyword:\n      /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n    function:\n      /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n    punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\ncilkc.displayName = 'cilkc'\ncilkc.aliases = ['cilk-c']\n\n/** @param {Refractor} Prism */\nexport default function cilkc(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.cilkc = Prism.languages.insertBefore('c', 'function', {\n    'parallel-keyword': {\n      pattern: /\\bcilk_(?:for|reducer|s(?:cope|pawn|ync))\\b/,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages['cilk-c'] = Prism.languages['cilkc']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCpp from './cpp.js'\ncilkcpp.displayName = 'cilkcpp'\ncilkcpp.aliases = ['cilk', 'cilk-cpp']\n\n/** @param {Refractor} Prism */\nexport default function cilkcpp(Prism) {\n  Prism.register(refractorCpp)\n  Prism.languages.cilkcpp = Prism.languages.insertBefore('cpp', 'function', {\n    'parallel-keyword': {\n      pattern: /\\bcilk_(?:for|reducer|s(?:cope|pawn|ync))\\b/,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages['cilk-cpp'] = Prism.languages['cilkcpp']\n  Prism.languages['cilk'] = Prism.languages['cilkcpp']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nclojure.displayName = 'clojure'\nclojure.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function clojure(Prism) {\n  // Copied from https://github.com/jeluard/prism-clojure\n  Prism.languages.clojure = {\n    comment: {\n      pattern: /;.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n      greedy: true\n    },\n    char: /\\\\\\w+/,\n    symbol: {\n      pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n      lookbehind: true\n    },\n    keyword: {\n      pattern:\n        /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: {\n      pattern:\n        /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n      lookbehind: true\n    },\n    function: {\n      pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n      lookbehind: true\n    },\n    operator: /[#@^`~]/,\n    punctuation: /[{}\\[\\](),]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncmake.displayName = 'cmake'\ncmake.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cmake(Prism) {\n  Prism.languages.cmake = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n          inside: {\n            punctuation: /\\$\\{|\\}/,\n            variable: /\\w+/\n          }\n        }\n      }\n    },\n    variable:\n      /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_NAME|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE))\\b/,\n    property:\n      /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n    keyword:\n      /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n    boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n    namespace:\n      /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n    operator:\n      /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n    inserted: {\n      pattern: /\\b\\w+::\\w+\\b/,\n      alias: 'class-name'\n    },\n    number: /\\b\\d+(?:\\.\\d+)*\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n    punctuation: /[()>}]|\\$[<{]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncobol.displayName = 'cobol'\ncobol.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cobol(Prism) {\n  Prism.languages.cobol = {\n    comment: {\n      pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n      greedy: true\n    },\n    level: {\n      pattern: /(^[ \\t]*)\\d+\\b/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'number'\n    },\n    'class-name': {\n      // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n      pattern:\n        /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n      lookbehind: true,\n      inside: {\n        number: {\n          pattern: /(\\()\\d+/,\n          lookbehind: true\n        },\n        punctuation: /[()]/\n      }\n    },\n    keyword: {\n      pattern:\n        /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n      lookbehind: true\n    },\n    operator: [\n      /<>|[<>]=?|[=+*/&]/,\n      {\n        pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[.:,()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\n\n/** @param {Refractor} Prism */\nexport default function coffeescript(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    // Ignore comments starting with { to privilege string interpolation highlighting\n    var comment = /#(?!\\{).+/\n    var interpolation = {\n      pattern: /#\\{[^}]+\\}/,\n      alias: 'variable'\n    }\n    Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n      comment: comment,\n      string: [\n        // Strings are multiline\n        {\n          pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n          greedy: true\n        },\n        {\n          // Strings are multiline\n          pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ],\n      keyword:\n        /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n      'class-member': {\n        pattern: /@(?!\\d)\\w+/,\n        alias: 'variable'\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'comment', {\n      'multiline-comment': {\n        pattern: /###[\\s\\S]+?###/,\n        alias: 'comment'\n      },\n      // Block regexp can contain comments and interpolation\n      'block-regex': {\n        pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n        alias: 'regex',\n        inside: {\n          comment: comment,\n          interpolation: interpolation\n        }\n      }\n    })\n    Prism.languages.insertBefore('coffeescript', 'string', {\n      'inline-javascript': {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        inside: {\n          delimiter: {\n            pattern: /^`|`$/,\n            alias: 'punctuation'\n          },\n          script: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-javascript',\n            inside: Prism.languages.javascript\n          }\n        }\n      },\n      // Block strings\n      'multiline-string': [\n        {\n          pattern: /'''[\\s\\S]*?'''/,\n          greedy: true,\n          alias: 'string'\n        },\n        {\n          pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            interpolation: interpolation\n          }\n        }\n      ]\n    })\n    Prism.languages.insertBefore('coffeescript', 'keyword', {\n      // Object property\n      property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n    })\n    delete Prism.languages.coffeescript['template-string']\n    Prism.languages.coffee = Prism.languages.coffeescript\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\n\n/** @param {Refractor} Prism */\nexport default function concurnas(Prism) {\n  Prism.languages.concurnas = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    langext: {\n      pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n      greedy: true,\n      inside: {\n        'class-name': /^\\w+/,\n        string: {\n          pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n          lookbehind: true\n        },\n        punctuation: /\\|\\|/\n      }\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n    punctuation: /[{}[\\];(),.:]/,\n    operator:\n      /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n    annotation: {\n      pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n      alias: 'builtin'\n    }\n  }\n  Prism.languages.insertBefore('concurnas', 'langext', {\n    'regex-literal': {\n      pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        regex: /[\\s\\S]+/\n      }\n    },\n    'string-literal': {\n      pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: Prism.languages.concurnas\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.conc = Prism.languages.concurnas\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncsp.displayName = 'csp'\ncsp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function csp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n   *\n   * Supports the following:\n   *  - https://www.w3.org/TR/CSP1/\n   *  - https://www.w3.org/TR/CSP2/\n   *  - https://www.w3.org/TR/CSP3/\n   */\n\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @returns {RegExp}\n     */\n    function value(source) {\n      return RegExp(\n        /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n        'i'\n      )\n    }\n    Prism.languages.csp = {\n      directive: {\n        pattern:\n          /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n        lookbehind: true,\n        alias: 'property'\n      },\n      scheme: {\n        pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n        lookbehind: true\n      },\n      none: {\n        pattern: value(/'none'/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      nonce: {\n        pattern: value(/'nonce-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      hash: {\n        pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n        lookbehind: true,\n        alias: 'number'\n      },\n      host: {\n        pattern: value(\n          /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n            '|' +\n            /\\*[^\\s;,']*/.source +\n            '|' +\n            /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n        ),\n        lookbehind: true,\n        alias: 'url',\n        inside: {\n          important: /\\*/\n        }\n      },\n      keyword: [\n        {\n          pattern: value(/'unsafe-[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'unsafe'\n        },\n        {\n          pattern: value(/'[a-z-]+'/.source),\n          lookbehind: true,\n          alias: 'safe'\n        }\n      ],\n      punctuation: /;/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncooklang.displayName = 'cooklang'\ncooklang.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cooklang(Prism) {\n  ;(function (Prism) {\n    // see https://github.com/cooklang/spec/blob/main/EBNF.md\n\n    var single_token_suffix = /(?:(?!\\s)[\\d$+<=a-zA-Z\\x80-\\uFFFF])+/.source\n    var multi_token_infix = /[^{}@#]+/.source\n    var multi_token_suffix = /\\{[^}#@]*\\}/.source\n    var multi_token = multi_token_infix + multi_token_suffix\n    var timer_units = /(?:h|hours|hrs|m|min|minutes)/.source\n    var amount_group_impl = {\n      pattern: /\\{[^{}]*\\}/,\n      inside: {\n        amount: {\n          pattern: /([\\{|])[^{}|*%]+/,\n          lookbehind: true,\n          alias: 'number'\n        },\n        unit: {\n          pattern: /(%)[^}]+/,\n          lookbehind: true,\n          alias: 'symbol'\n        },\n        'servings-scaler': {\n          pattern: /\\*/,\n          alias: 'operator'\n        },\n        'servings-alternative-separator': {\n          pattern: /\\|/,\n          alias: 'operator'\n        },\n        'unit-separator': {\n          pattern: /(?:%|(\\*)%)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        punctuation: /[{}]/\n      }\n    }\n    Prism.languages.cooklang = {\n      comment: {\n        // [- comment -]\n        // -- comment\n        pattern: /\\[-[\\s\\S]*?-\\]|--.*/,\n        greedy: true\n      },\n      meta: {\n        // >> key: value\n        pattern: />>.*:.*/,\n        inside: {\n          property: {\n            // key:\n            pattern: /(>>\\s*)[^\\s:](?:[^:]*[^\\s:])?/,\n            lookbehind: true\n          }\n        }\n      },\n      'cookware-group': {\n        // #...{...}, #...\n        pattern: new RegExp(\n          '#(?:' + multi_token + '|' + single_token_suffix + ')'\n        ),\n        inside: {\n          cookware: {\n            pattern: new RegExp('(^#)(?:' + multi_token_infix + ')'),\n            lookbehind: true,\n            alias: 'variable'\n          },\n          'cookware-keyword': {\n            pattern: /^#/,\n            alias: 'keyword'\n          },\n          'quantity-group': {\n            pattern: new RegExp(/\\{[^{}@#]*\\}/),\n            inside: {\n              quantity: {\n                pattern: new RegExp(/(^\\{)/.source + multi_token_infix),\n                lookbehind: true,\n                alias: 'number'\n              },\n              punctuation: /[{}]/\n            }\n          }\n        }\n      },\n      'ingredient-group': {\n        // @...{...}, @...\n        pattern: new RegExp(\n          '@(?:' + multi_token + '|' + single_token_suffix + ')'\n        ),\n        inside: {\n          ingredient: {\n            pattern: new RegExp('(^@)(?:' + multi_token_infix + ')'),\n            lookbehind: true,\n            alias: 'variable'\n          },\n          'ingredient-keyword': {\n            pattern: /^@/,\n            alias: 'keyword'\n          },\n          'amount-group': amount_group_impl\n        }\n      },\n      'timer-group': {\n        // ~timer{...}\n        // eslint-disable-next-line regexp/sort-alternatives\n        pattern: /~(?!\\s)[^@#~{}]*\\{[^{}]*\\}/,\n        inside: {\n          timer: {\n            pattern: /(^~)[^{]+/,\n            lookbehind: true,\n            alias: 'variable'\n          },\n          'duration-group': {\n            // {...}\n            pattern: /\\{[^{}]*\\}/,\n            inside: {\n              punctuation: /[{}]/,\n              unit: {\n                pattern: new RegExp(\n                  /(%\\s*)/.source + timer_units + /\\b/.source\n                ),\n                lookbehind: true,\n                alias: 'symbol'\n              },\n              operator: /%/,\n              duration: {\n                pattern: /\\d+/,\n                alias: 'number'\n              }\n            }\n          },\n          'timer-keyword': {\n            pattern: /^~/,\n            alias: 'keyword'\n          }\n        }\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncoq.displayName = 'coq'\ncoq.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function coq(Prism) {\n  ;(function (Prism) {\n    // https://github.com/coq/coq\n\n    var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n    for (var i = 0; i < 2; i++) {\n      commentSource = commentSource.replace(/<self>/g, function () {\n        return commentSource\n      })\n    }\n    commentSource = commentSource.replace(/<self>/g, '[]')\n    Prism.languages.coq = {\n      comment: RegExp(commentSource),\n      string: {\n        pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n        greedy: true\n      },\n      attribute: [\n        {\n          pattern: RegExp(\n            /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n              /<comment>/g,\n              function () {\n                return commentSource\n              }\n            )\n          ),\n          greedy: true,\n          alias: 'attr-name',\n          inside: {\n            comment: RegExp(commentSource),\n            string: {\n              pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n              greedy: true\n            },\n            operator: /=/,\n            punctuation: /^#\\[|\\]$|[,()]/\n          }\n        },\n        {\n          pattern:\n            /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n          alias: 'attr-name'\n        }\n      ],\n      keyword:\n        /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n      number:\n        /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n      punct: {\n        pattern: /@\\{|\\{\\||\\[=|:>/,\n        alias: 'punctuation'\n      },\n      operator:\n        /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n      punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\n\n/** @param {Refractor} Prism */\nexport default function ruby(Prism) {\n  Prism.register(refractorClike)\n  /**\n   * Original by Samuel Flores\n   *\n   * Adds the following new token classes:\n   *     constant, builtin, variable, symbol, regex\n   */\n  ;(function (Prism) {\n    Prism.languages.ruby = Prism.languages.extend('clike', {\n      comment: {\n        pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n        greedy: true\n      },\n      'class-name': {\n        pattern:\n          /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.\\\\]/\n        }\n      },\n      keyword:\n        /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n      operator:\n        /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n      punctuation: /[(){}[\\].,;]/\n    })\n    Prism.languages.insertBefore('ruby', 'operator', {\n      'double-colon': {\n        pattern: /::/,\n        alias: 'punctuation'\n      }\n    })\n    var interpolation = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        content: {\n          pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        delimiter: {\n          pattern: /^#\\{|\\}$/,\n          alias: 'punctuation'\n        }\n      }\n    }\n    delete Prism.languages.ruby.function\n    var percentExpression =\n      '(?:' +\n      [\n        /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n        /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n        /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n        /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n        /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n      ].join('|') +\n      ')'\n    var symbolName =\n      /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n        .source\n    Prism.languages.insertBefore('ruby', 'keyword', {\n      'regex-literal': [\n        {\n          pattern: RegExp(\n            /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n          ),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n          lookbehind: true,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            regex: /[\\s\\S]+/\n          }\n        }\n      ],\n      variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n      symbol: [\n        {\n          pattern: RegExp(/(^|[^:]):/.source + symbolName),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'method-definition': {\n        pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n        lookbehind: true,\n        inside: {\n          function: /\\b\\w+$/,\n          keyword: /^self\\b/,\n          'class-name': /^\\w+/,\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('ruby', 'string', {\n      'string-literal': [\n        {\n          pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern:\n            /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?/\n              }\n            },\n            interpolation: interpolation,\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n          alias: 'heredoc-string',\n          greedy: true,\n          inside: {\n            delimiter: {\n              pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n              inside: {\n                symbol: /\\b\\w+/,\n                punctuation: /^<<[-~]?'|'$/\n              }\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      'command-literal': [\n        {\n          pattern: RegExp(/%x/.source + percentExpression),\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        },\n        {\n          pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n          greedy: true,\n          inside: {\n            interpolation: interpolation,\n            command: {\n              pattern: /[\\s\\S]+/,\n              alias: 'string'\n            }\n          }\n        }\n      ]\n    })\n    delete Prism.languages.ruby.string\n    Prism.languages.insertBefore('ruby', 'number', {\n      builtin:\n        /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n      constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n    })\n    Prism.languages.rb = Prism.languages.ruby\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorRuby from './ruby.js'\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function crystal(Prism) {\n  Prism.register(refractorRuby)\n  ;(function (Prism) {\n    Prism.languages.crystal = Prism.languages.extend('ruby', {\n      keyword: [\n        /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n        {\n          pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n      operator: [/->/, Prism.languages.ruby.operator],\n      punctuation: /[(){}[\\].,;\\\\]/\n    })\n    Prism.languages.insertBefore('crystal', 'string-literal', {\n      attribute: {\n        pattern: /@\\[.*?\\]/,\n        inside: {\n          delimiter: {\n            pattern: /^@\\[|\\]$/,\n            alias: 'punctuation'\n          },\n          attribute: {\n            pattern: /^(\\s*)\\w+/,\n            lookbehind: true,\n            alias: 'class-name'\n          },\n          args: {\n            pattern: /\\S(?:[\\s\\S]*\\S)?/,\n            inside: Prism.languages.crystal\n          }\n        }\n      },\n      expansion: {\n        pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n        inside: {\n          content: {\n            pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n            lookbehind: true,\n            inside: Prism.languages.crystal\n          },\n          delimiter: {\n            pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n            alias: 'operator'\n          }\n        }\n      },\n      char: {\n        pattern:\n          /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCss from './css.js'\ncssExtras.displayName = 'css-extras'\ncssExtras.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cssExtras(Prism) {\n  Prism.register(refractorCss)\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var selectorInside\n    Prism.languages.css.selector = {\n      pattern: Prism.languages.css.selector.pattern,\n      lookbehind: true,\n      inside: (selectorInside = {\n        'pseudo-element':\n          /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n        'pseudo-class': /:[-\\w]+/,\n        class: /\\.[-\\w]+/,\n        id: /#[-\\w]+/,\n        attribute: {\n          pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n          greedy: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            'case-sensitivity': {\n              pattern: /(\\s)[si]$/i,\n              lookbehind: true,\n              alias: 'keyword'\n            },\n            namespace: {\n              pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n              lookbehind: true,\n              inside: {\n                punctuation: /\\|$/\n              }\n            },\n            'attr-name': {\n              pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n              lookbehind: true\n            },\n            'attr-value': [\n              string,\n              {\n                pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n                lookbehind: true\n              }\n            ],\n            operator: /[|~*^$]?=/\n          }\n        },\n        'n-th': [\n          {\n            pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n            lookbehind: true,\n            inside: {\n              number: /[\\dn]+/,\n              operator: /[+-]/\n            }\n          },\n          {\n            pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n            lookbehind: true\n          }\n        ],\n        combinator: />|\\+|~|\\|\\|/,\n        // the `tag` token has been existed and removed.\n        // because we can't find a perfect tokenize to match it.\n        // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n\n        punctuation: /[(),]/\n      })\n    }\n    Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n      selectorInside\n    Prism.languages.insertBefore('css', 'property', {\n      variable: {\n        pattern:\n          /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n        lookbehind: true\n      }\n    })\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n      lookbehind: true\n    }\n    // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    Prism.languages.insertBefore('css', 'function', {\n      operator: {\n        pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n        lookbehind: true\n      },\n      // CAREFUL!\n      // Previewers and Inline color use hexcode and color.\n      hexcode: {\n        pattern: /\\B#[\\da-f]{3,8}\\b/i,\n        alias: 'color'\n      },\n      color: [\n        {\n          pattern:\n            /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      // it's important that there is no boundary assertion after the hex digits\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      number: number\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncsv.displayName = 'csv'\ncsv.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function csv(Prism) {\n  // https://tools.ietf.org/html/rfc4180\n\n  Prism.languages.csv = {\n    value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n    punctuation: /,/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncue.displayName = 'cue'\ncue.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cue(Prism) {\n  ;(function (Prism) {\n    // https://cuelang.org/docs/references/spec/\n\n    // eslint-disable-next-line regexp/strict\n    var stringEscape = /\\\\(?:(?!\\2)|\\2(?:[^()\\r\\n]|\\([^()]*\\)))/.source\n    // eslint-disable-next-line regexp/strict\n    var stringTypes =\n      /\"\"\"(?:[^\\\\\"]|\"(?!\"\"\\2)|<esc>)*\"\"\"/.source +\n      // eslint-disable-next-line regexp/strict\n      '|' +\n      /'''(?:[^\\\\']|'(?!''\\2)|<esc>)*'''/.source +\n      // eslint-disable-next-line regexp/strict\n      '|' +\n      /\"(?:[^\\\\\\r\\n\"]|\"(?!\\2)|<esc>)*\"/.source +\n      // eslint-disable-next-line regexp/strict\n      '|' +\n      /'(?:[^\\\\\\r\\n']|'(?!\\2)|<esc>)*'/.source\n    var stringLiteral =\n      '(?:' + stringTypes.replace(/<esc>/g, stringEscape) + ')'\n    Prism.languages.cue = {\n      comment: {\n        pattern: /\\/\\/.*/,\n        greedy: true\n      },\n      'string-literal': {\n        // eslint-disable-next-line regexp/strict\n        pattern: RegExp(\n          /(^|[^#\"'\\\\])(#*)/.source + stringLiteral + /(?![\"'])\\2/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          // I'm using dirty hack here. We have to know the number hashes at the start of the string somehow,\n          // but we can't look back. So instead, we will use a lookahead, go to the end of the string, and\n          // capture the hashes at the end of the string.\n          escape: {\n            pattern:\n              /(?=[\\s\\S]*[\"'](#*)$)\\\\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\\d{2,3}|[^(])/,\n            greedy: true,\n            alias: 'string'\n          },\n          interpolation: {\n            pattern: /(?=[\\s\\S]*[\"'](#*)$)\\\\\\1\\([^()]*\\)/,\n            greedy: true,\n            inside: {\n              punctuation: /^\\\\#*\\(|\\)$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                inside: null\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      },\n      keyword: {\n        pattern: /(^|[^\\w$])(?:for|if|import|in|let|null|package)(?![\\w$])/,\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[^\\w$])(?:false|true)(?![\\w$])/,\n        lookbehind: true\n      },\n      builtin: {\n        pattern:\n          /(^|[^\\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\\w$])/,\n        lookbehind: true\n      },\n      attribute: {\n        pattern: /@[\\w$]+(?=\\s*\\()/,\n        alias: 'function'\n      },\n      function: {\n        pattern: /(^|[^\\w$])[a-z_$][\\w$]*(?=\\s*\\()/i,\n        lookbehind: true\n      },\n      number: {\n        pattern:\n          /(^|[^\\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[eE][+-]?\\d+(?:_\\d+)*)?(?:[KMGTP]i?)?)(?![\\w$])/,\n        lookbehind: true\n      },\n      operator: /\\.{3}|_\\|_|&&?|\\|\\|?|[=!]~|[<>=!]=?|[+\\-*/?]/,\n      punctuation: /[()[\\]{},.:]/\n    }\n    Prism.languages.cue[\n      'string-literal'\n    ].inside.interpolation.inside.expression.inside = Prism.languages.cue\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ncypher.displayName = 'cypher'\ncypher.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function cypher(Prism) {\n  Prism.languages.cypher = {\n    // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n    comment: /\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n      lookbehind: true,\n      greedy: true\n    },\n    relationship: {\n      pattern:\n        /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    identifier: {\n      pattern: /`(?:[^`\\\\\\r\\n])*`/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n    keyword:\n      /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n    function: /\\b\\w+\\b(?=\\s*\\()/,\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n    // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n    operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n    punctuation: /[()[\\]{},;.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nd.displayName = 'd'\nd.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function d(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.d = Prism.languages.extend('clike', {\n    comment: [\n      {\n        // Shebang\n        pattern: /^\\s*#!.+/,\n        greedy: true\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\\\\])/.source +\n            '(?:' +\n            [\n              // /+ comment +/\n              // Allow one level of nesting\n              /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source,\n              // // comment\n              /\\/\\/.*/.source,\n              // /* comment */\n              /\\/\\*[\\s\\S]*?\\*\\//.source\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: [\n      {\n        pattern: RegExp(\n          [\n            // r\"\", x\"\"\n            /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source,\n            // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n            /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source,\n            // q\"IDENT\n            // ...\n            // IDENT\"\n            /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source,\n            // q\"//\", q\"||\", etc.\n            // eslint-disable-next-line regexp/strict\n            /\\bq\"(.)[\\s\\S]*?\\2\"/.source,\n            // eslint-disable-next-line regexp/strict\n            /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n          ].join('|'),\n          'm'\n        ),\n        greedy: true\n      },\n      {\n        pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n        greedy: true,\n        alias: 'token-string'\n      }\n    ],\n    // In order: $, keywords and special tokens, globally defined symbols\n    keyword:\n      /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n    number: [\n      // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n      // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n      /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n      {\n        pattern:\n          /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n        lookbehind: true\n      }\n    ],\n    operator:\n      /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n  })\n  Prism.languages.insertBefore('d', 'string', {\n    // Characters\n    // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n    char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n  })\n  Prism.languages.insertBefore('d', 'keyword', {\n    property: /\\B@\\w*/\n  })\n  Prism.languages.insertBefore('d', 'function', {\n    register: {\n      // Iasm registers\n      pattern:\n        /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n      alias: 'variable'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ndart.displayName = 'dart'\ndart.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function dart(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var keywords = [\n      /\\b(?:async|sync|yield)\\*/,\n      /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n    ]\n\n    // Handles named imports, such as http.Client\n    var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n      .source\n\n    // based on the dart naming conventions\n    var className = {\n      pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        }\n      }\n    }\n    Prism.languages.dart = Prism.languages.extend('clike', {\n      'class-name': [\n        className,\n        {\n          // variables and parameters\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      operator:\n        /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n    })\n    Prism.languages.insertBefore('dart', 'string', {\n      'string-literal': {\n        pattern:\n          /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\$\\{?|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                inside: Prism.languages.dart\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      },\n      string: undefined\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      metadata: {\n        pattern: /@\\w+/,\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore('dart', 'class-name', {\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function dataweave(Prism) {\n  ;(function (Prism) {\n    Prism.languages.dataweave = {\n      url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n      property: {\n        pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n        greedy: true\n      },\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      'mime-type':\n        /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n      date: {\n        pattern: /\\|[\\w:+-]+\\|/,\n        greedy: true\n      },\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      regex: {\n        pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n        greedy: true\n      },\n      keyword:\n        /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n      function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n      number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n      punctuation: /[{}[\\];(),.:@]/,\n      operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n      boolean: /\\b(?:false|true)\\b/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndax.displayName = 'dax'\ndax.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function dax(Prism) {\n  Prism.languages.dax = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n      lookbehind: true\n    },\n    'data-field': {\n      pattern:\n        /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'symbol'\n    },\n    measure: {\n      pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n      alias: 'constant'\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    function:\n      /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n    keyword:\n      /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n    boolean: {\n      pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n      alias: 'constant'\n    },\n    number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n    operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n    punctuation: /[;\\[\\](){}`,.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndhall.displayName = 'dhall'\ndhall.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function dhall(Prism) {\n  // ABNF grammar:\n  // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n\n  Prism.languages.dhall = {\n    // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n    // The multi-line pattern is essentially this:\n    //   \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n    comment:\n      /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}]*\\}/,\n          inside: {\n            expression: {\n              pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n              lookbehind: true,\n              alias: 'language-dhall',\n              inside: null // see blow\n            },\n            punctuation: /\\$\\{|\\}/\n          }\n        }\n      }\n    },\n    label: {\n      pattern: /`[^`]*`/,\n      greedy: true\n    },\n    url: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n      pattern:\n        /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n      greedy: true\n    },\n    env: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n      pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n      greedy: true,\n      inside: {\n        function: /^env/,\n        operator: /^:/,\n        variable: /[\\s\\S]+/\n      }\n    },\n    hash: {\n      // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n      pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n      inside: {\n        function: /sha256/,\n        operator: /:/,\n        number: /[\\da-fA-F]{64}/\n      }\n    },\n    // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n    keyword:\n      /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n    builtin: /\\b(?:None|Some)\\b/,\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n    operator:\n      /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n    punctuation: /\\.\\.|[{}\\[\\](),./]/,\n    // we'll just assume that every capital word left is a type name\n    'class-name': /\\b[A-Z]\\w*\\b/\n  }\n  Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n    Prism.languages.dhall\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndiff.displayName = 'diff'\ndiff.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function diff(Prism) {\n  ;(function (Prism) {\n    Prism.languages.diff = {\n      coord: [\n        // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n        /^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n        // Match \"@@ ... @@\" coord lines in unified diff.\n        /^@@.*@@$/m,\n        // Match coord lines in normal diff (starts with a number).\n        /^\\d.*$/m\n      ]\n\n      // deleted, inserted, unchanged, diff\n    }\n\n    /**\n     * A map from the name of a block to its line prefix.\n     *\n     * @type {Object<string, string>}\n     */\n    var PREFIXES = {\n      'deleted-sign': '-',\n      'deleted-arrow': '<',\n      'inserted-sign': '+',\n      'inserted-arrow': '>',\n      unchanged: ' ',\n      diff: '!'\n    }\n\n    // add a token for each prefix\n    Object.keys(PREFIXES).forEach(function (name) {\n      var prefix = PREFIXES[name]\n      var alias = []\n      if (!/^\\w+$/.test(name)) {\n        // \"deleted-sign\" -> \"deleted\"\n        alias.push(/\\w+/.exec(name)[0])\n      }\n      if (name === 'diff') {\n        alias.push('bold')\n      }\n      Prism.languages.diff[name] = {\n        pattern: RegExp(\n          '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n          'm'\n        ),\n        alias: alias,\n        inside: {\n          line: {\n            pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n            lookbehind: true\n          },\n          prefix: {\n            pattern: /[\\s\\S]/,\n            alias: /\\w+/.exec(name)[0]\n          }\n        }\n      }\n    })\n\n    // make prefixes available to Diff plugin\n    Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n      value: PREFIXES\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nmarkupTemplating.displayName = 'markup-templating'\nmarkupTemplating.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function markupTemplating(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    /**\n     * Returns the placeholder for the given language id and index.\n     *\n     * @param {string} language\n     * @param {string|number} index\n     * @returns {string}\n     */\n    function getPlaceholder(language, index) {\n      return '___' + language.toUpperCase() + index + '___'\n    }\n    Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n      buildPlaceholders: {\n        /**\n         * Tokenize all inline templating expressions matching `placeholderPattern`.\n         *\n         * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n         * `true` will be replaced.\n         *\n         * @param {object} env The environment of the `before-tokenize` hook.\n         * @param {string} language The language id.\n         * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n         * @param {(match: string) => boolean} [replaceFilter]\n         */\n        value: function (env, language, placeholderPattern, replaceFilter) {\n          if (env.language !== language) {\n            return\n          }\n          var tokenStack = (env.tokenStack = [])\n          env.code = env.code.replace(placeholderPattern, function (match) {\n            if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n              return match\n            }\n            var i = tokenStack.length\n            var placeholder\n\n            // Check for existing strings\n            while (\n              env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n              -1\n            ) {\n              ++i\n            }\n\n            // Create a sparse array\n            tokenStack[i] = match\n            return placeholder\n          })\n\n          // Switch the grammar to markup\n          env.grammar = Prism.languages.markup\n        }\n      },\n      tokenizePlaceholders: {\n        /**\n         * Replace placeholders with proper tokens after tokenizing.\n         *\n         * @param {object} env The environment of the `after-tokenize` hook.\n         * @param {string} language The language id.\n         */\n        value: function (env, language) {\n          if (env.language !== language || !env.tokenStack) {\n            return\n          }\n\n          // Switch the grammar back\n          env.grammar = Prism.languages[language]\n          var j = 0\n          var keys = Object.keys(env.tokenStack)\n          function walkTokens(tokens) {\n            for (var i = 0; i < tokens.length; i++) {\n              // all placeholders are replaced already\n              if (j >= keys.length) {\n                break\n              }\n              var token = tokens[i]\n              if (\n                typeof token === 'string' ||\n                (token.content && typeof token.content === 'string')\n              ) {\n                var k = keys[j]\n                var t = env.tokenStack[k]\n                var s = typeof token === 'string' ? token : token.content\n                var placeholder = getPlaceholder(language, k)\n                var index = s.indexOf(placeholder)\n                if (index > -1) {\n                  ++j\n                  var before = s.substring(0, index)\n                  var middle = new Prism.Token(\n                    language,\n                    Prism.tokenize(t, env.grammar),\n                    'language-' + language,\n                    t\n                  )\n                  var after = s.substring(index + placeholder.length)\n                  var replacement = []\n                  if (before) {\n                    replacement.push.apply(replacement, walkTokens([before]))\n                  }\n                  replacement.push(middle)\n                  if (after) {\n                    replacement.push.apply(replacement, walkTokens([after]))\n                  }\n                  if (typeof token === 'string') {\n                    tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                  } else {\n                    token.content = replacement\n                  }\n                }\n              } else if (\n                token.content /* && typeof token.content !== 'string' */\n              ) {\n                walkTokens(token.content)\n              }\n            }\n            return tokens\n          }\n          walkTokens(env.tokens)\n        }\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\n\n/** @param {Refractor} Prism */\nexport default function django(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n  // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n\n  ;(function (Prism) {\n    Prism.languages.django = {\n      comment: /^\\{#[\\s\\S]*?#\\}$/,\n      tag: {\n        pattern: /(^\\{%[+-]?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      delimiter: {\n        pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n        alias: 'punctuation'\n      },\n      string: {\n        pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true\n      },\n      filter: {\n        pattern: /(\\|)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      test: {\n        pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n      keyword:\n        /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n      operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n      variable: /\\b\\w+\\b/,\n      punctuation: /[{}[\\](),.:;]/\n    }\n    var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n    var markupTemplating = Prism.languages['markup-templating']\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'django', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'django')\n    })\n\n    // Add an Jinja2 alias\n    Prism.languages.jinja2 = Prism.languages.django\n    Prism.hooks.add('before-tokenize', function (env) {\n      markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      markupTemplating.tokenizePlaceholders(env, 'jinja2')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndnsZoneFile.displayName = 'dns-zone-file'\ndnsZoneFile.aliases = ['dns-zone']\n\n/** @param {Refractor} Prism */\nexport default function dnsZoneFile(Prism) {\n  Prism.languages['dns-zone-file'] = {\n    comment: /;.*/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|\\s)@(?=\\s|$)/,\n        lookbehind: true\n      }\n    ],\n    keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n    class: {\n      // https://tools.ietf.org/html/rfc1035#page-13\n      pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n      pattern:\n        /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    punctuation: /[()]/\n  }\n  Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\n\n/** @param {Refractor} Prism */\nexport default function docker(Prism) {\n  ;(function (Prism) {\n    // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n    // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n\n    var spaceAfterBackSlash =\n      /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source\n    // At least one space, comment, or line break\n    var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n      /<SP_BS>/g,\n      function () {\n        return spaceAfterBackSlash\n      }\n    )\n    var string =\n      /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n        .source\n    var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n      /<STR>/g,\n      function () {\n        return string\n      }\n    )\n    var stringRule = {\n      pattern: RegExp(string),\n      greedy: true\n    }\n    var commentRule = {\n      pattern: /(^[ \\t]*)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<OPT>/g, function () {\n          return option\n        })\n        .replace(/<SP>/g, function () {\n          return space\n        })\n      return RegExp(source, flags)\n    }\n    Prism.languages.docker = {\n      instruction: {\n        pattern:\n          /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          options: {\n            pattern: re(\n              /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n              'i'\n            ),\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              property: {\n                pattern: /(^|\\s)--[\\w-]+/,\n                lookbehind: true\n              },\n              string: [\n                stringRule,\n                {\n                  pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n                  lookbehind: true\n                }\n              ],\n              operator: /\\\\$/m,\n              punctuation: /=/\n            }\n          },\n          keyword: [\n            {\n              // https://docs.docker.com/engine/reference/builder/#healthcheck\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#from\n              pattern: re(\n                /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n                  .source,\n                'i'\n              ),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              // https://docs.docker.com/engine/reference/builder/#onbuild\n              pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n              lookbehind: true,\n              greedy: true\n            },\n            {\n              pattern: /^\\w+/,\n              greedy: true\n            }\n          ],\n          comment: commentRule,\n          string: stringRule,\n          variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n          operator: /\\\\$/m\n        }\n      },\n      comment: commentRule\n    }\n    Prism.languages.dockerfile = Prism.languages.docker\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ndot.displayName = 'dot'\ndot.aliases = ['gv']\n\n/** @param {Refractor} Prism */\nexport default function dot(Prism) {\n  // https://www.graphviz.org/doc/info/lang.html\n\n  ;(function (Prism) {\n    var ID =\n      '(?:' +\n      [\n        // an identifier\n        /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source,\n        // a number\n        /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source,\n        // a double-quoted string\n        /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source,\n        // HTML-like string\n        /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n          .source\n      ].join('|') +\n      ')'\n    var IDInside = {\n      markup: {\n        pattern: /(^<)[\\s\\S]+(?=>$)/,\n        lookbehind: true,\n        alias: ['language-markup', 'language-html', 'language-xml'],\n        inside: Prism.languages.markup\n      }\n    }\n\n    /**\n     * @param {string} source\n     * @param {string} flags\n     * @returns {RegExp}\n     */\n    function withID(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return ID\n        }),\n        flags\n      )\n    }\n    Prism.languages.dot = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n        greedy: true\n      },\n      'graph-name': {\n        pattern: withID(\n          /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n          'i'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name',\n        inside: IDInside\n      },\n      'attr-value': {\n        pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      'attr-name': {\n        pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n      'compass-point': {\n        pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n        lookbehind: true,\n        alias: 'builtin'\n      },\n      node: {\n        pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: IDInside\n      },\n      operator: /[=:]|-[->]/,\n      punctuation: /[\\[\\]{};,]/\n    }\n    Prism.languages.gv = Prism.languages.dot\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nebnf.displayName = 'ebnf'\nebnf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ebnf(Prism) {\n  Prism.languages.ebnf = {\n    comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    special: {\n      pattern: /\\?[^?\\r\\n]*\\?/,\n      greedy: true,\n      alias: 'class-name'\n    },\n    definition: {\n      pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n      lookbehind: true,\n      alias: ['rule', 'keyword']\n    },\n    rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n    punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n    operator: /[-=|*/!]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function editorconfig(Prism) {\n  Prism.languages.editorconfig = {\n    // https://editorconfig-specification.readthedocs.io\n    comment: /[;#].*/,\n    section: {\n      pattern: /(^[ \\t]*)\\[.+\\]/m,\n      lookbehind: true,\n      alias: 'selector',\n      inside: {\n        regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n        // Escape special characters with '\\\\'\n        operator: /[!?]|\\.\\.|\\*{1,2}/,\n        punctuation: /[\\[\\]{},]/\n      }\n    },\n    key: {\n      pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /=.*/,\n      alias: 'attr-value',\n      inside: {\n        punctuation: /^=/\n      }\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\neiffel.displayName = 'eiffel'\neiffel.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function eiffel(Prism) {\n  Prism.languages.eiffel = {\n    comment: /--.*/,\n    string: [\n      // Aligned-verbatim-strings\n      {\n        pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n        greedy: true\n      },\n      // Non-aligned-verbatim-strings\n      {\n        pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n        greedy: true\n      },\n      // Single-line string\n      {\n        pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n        greedy: true\n      }\n    ],\n    // normal char | special char | char code\n    char: /'(?:%.|[^%'\\r\\n])+'/,\n    keyword:\n      /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n    boolean: /\\b(?:False|True)\\b/i,\n    // Convention: class-names are always all upper-case characters\n    'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n    number: [\n      // hexa | octal | bin\n      /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i,\n      // Decimal\n      /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n    ],\n    punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n    operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nimport refractorMarkupTemplating from './markup-templating.js'\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\n\n/** @param {Refractor} Prism */\nexport default function ejs(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.ejs = {\n      delimiter: {\n        pattern: /^<%[-_=]?|[-_]?%>$/,\n        alias: 'punctuation'\n      },\n      comment: /^#[\\s\\S]*/,\n      'language-javascript': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.javascript\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ejs',\n        ejsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n    })\n    Prism.languages.eta = Prism.languages.ejs\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nelixir.displayName = 'elixir'\nelixir.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function elixir(Prism) {\n  Prism.languages.elixir = {\n    doc: {\n      pattern:\n        /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n      inside: {\n        attribute: /^@\\w+/,\n        string: /['\"][\\s\\S]+/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n    regex: {\n      pattern:\n        /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n      greedy: true\n    },\n    string: [\n      {\n        // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n        pattern:\n          /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      },\n      {\n        // Multi-line strings are allowed\n        pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        greedy: true,\n        inside: {\n          // See interpolation below\n        }\n      }\n    ],\n    atom: {\n      // Look-behind prevents bad highlighting of the :: operator\n      pattern: /(^|[^:]):\\w+/,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    module: {\n      pattern: /\\b[A-Z]\\w*\\b/,\n      alias: 'class-name'\n    },\n    // Look-ahead prevents bad highlighting of the :: operator\n    'attr-name': /\\b\\w+\\??:(?!:)/,\n    argument: {\n      // Look-behind prevents bad highlighting of the && operator\n      pattern: /(^|[^&])&\\d+/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'variable'\n    },\n    function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n    number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n    keyword:\n      /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    operator: [\n      /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n      {\n        // We don't want to match <<\n        pattern: /([^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /([^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /<<|>>|[.,%\\[\\]{}()]/\n  }\n  Prism.languages.elixir.string.forEach(function (o) {\n    o.inside = {\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          rest: Prism.languages.elixir\n        }\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nelm.displayName = 'elm'\nelm.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function elm(Prism) {\n  Prism.languages.elm = {\n    comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n    char: {\n      pattern:\n        /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n      greedy: true\n    },\n    string: [\n      {\n        // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n        pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n        greedy: true\n      },\n      {\n        pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n        greedy: true\n      }\n    ],\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|exposing|import)\\b/\n      }\n    },\n    keyword:\n      /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n    // decimal integers and floating point numbers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n    // Most of this is needed because of the meaning of a single '.'.\n    // If it stands alone freely, it is the function composition.\n    // It may also be a separator between a module name and an identifier => no\n    // operator. If it comes together with other special characters it is an\n    // operator too.\n    // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n    // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n    operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n    // In Elm, nearly everything is a variable, do not highlight these.\n    hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n    constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n    punctuation: /[{}[\\]|(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlua.displayName = 'lua'\nlua.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function lua(Prism) {\n  Prism.languages.lua = {\n    comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n    // \\z may be used to skip the following space\n    string: {\n      pattern:\n        /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n      greedy: true\n    },\n    number:\n      /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n    keyword:\n      /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n    function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n    operator: [\n      /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n      {\n        // Match \"..\" but don't break \"...\"\n        pattern: /(^|[^.])\\.\\.(?!\\.)/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /[\\[\\](){},;]|\\.+|:+/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorLua from './lua.js'\nimport refractorMarkupTemplating from './markup-templating.js'\netlua.displayName = 'etlua'\netlua.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function etlua(Prism) {\n  Prism.register(refractorLua)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.etlua = {\n      delimiter: {\n        pattern: /^<%[-=]?|-?%>$/,\n        alias: 'punctuation'\n      },\n      'language-lua': {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.lua\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var pattern = /<%[\\s\\S]+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'etlua',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nimport refractorRuby from './ruby.js'\nerb.displayName = 'erb'\nerb.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function erb(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.register(refractorRuby)\n  ;(function (Prism) {\n    Prism.languages.erb = {\n      delimiter: {\n        pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      ruby: {\n        pattern: /\\s*\\S[\\s\\S]*/,\n        alias: 'language-ruby',\n        inside: Prism.languages.ruby\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var erbPattern =\n        /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'erb',\n        erbPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nerlang.displayName = 'erlang'\nerlang.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function erlang(Prism) {\n  Prism.languages.erlang = {\n    comment: /%.+/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    'quoted-function': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n      alias: 'function'\n    },\n    'quoted-atom': {\n      pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n      alias: 'atom'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\b(?:after|begin|case|catch|end|fun|if|of|receive|try|when)\\b/,\n    number: [\n      /\\$\\\\?./,\n      /\\b\\d+#[a-z0-9]+/i,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    ],\n    function: /\\b[a-z][\\w@]*(?=\\()/,\n    variable: {\n      // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n      pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n      lookbehind: true\n    },\n    operator: [\n      /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n      {\n        // We don't want to match <<\n        pattern: /(^|[^<])<(?!<)/,\n        lookbehind: true\n      },\n      {\n        // We don't want to match >>\n        pattern: /(^|[^>])>(?!>)/,\n        lookbehind: true\n      }\n    ],\n    atom: /\\b[a-z][\\w@]*/,\n    punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nexcelFormula.displayName = 'excel-formula'\nexcelFormula.aliases = ['xls', 'xlsx']\n\n/** @param {Refractor} Prism */\nexport default function excelFormula(Prism) {\n  Prism.languages['excel-formula'] = {\n    comment: {\n      pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    reference: {\n      // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n\n      // Sales!B2\n      // 'Winter sales'!B2\n      // [Sales.xlsx]Jan!B2:B5\n      // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n      // '[Sales.xlsx]Jan sales'!B2:B5\n      // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n\n      pattern:\n        /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        operator: /!$/,\n        punctuation: /'/,\n        sheet: {\n          pattern: /[^[\\]]+$/,\n          alias: 'function'\n        },\n        file: {\n          pattern: /\\[[^[\\]]+\\]$/,\n          inside: {\n            punctuation: /[[\\]]/\n          }\n        },\n        path: /[\\s\\S]+/\n      }\n    },\n    'function-name': {\n      pattern: /\\b[A-Z]\\w*(?=\\()/i,\n      alias: 'builtin'\n    },\n    range: {\n      pattern:\n        /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n      alias: 'selector',\n      inside: {\n        operator: /:/,\n        cell: /\\$?[A-Z]+\\$?\\d+/i,\n        column: /\\$?[A-Z]+/i,\n        row: /\\$?\\d+/\n      }\n    },\n    cell: {\n      // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n      // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n      pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n      alias: 'selector'\n    },\n    number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n    punctuation: /[[\\]();{}|]/\n  }\n  Prism.languages['xlsx'] = Prism.languages['xls'] =\n    Prism.languages['excel-formula']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function fsharp(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.fsharp = Prism.languages.extend('clike', {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n      lookbehind: true,\n      inside: {\n        operator: /->|\\*/,\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n    number: [\n      /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n      /\\b0b[01]+(?:uy|y)?\\b/,\n      /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n      /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n    ],\n    operator:\n      /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n  })\n  Prism.languages.insertBefore('fsharp', 'keyword', {\n    preprocessor: {\n      pattern: /(^[\\t ]*)#.*/m,\n      lookbehind: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n          lookbehind: true,\n          alias: 'keyword'\n        }\n      }\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'punctuation', {\n    'computation-expression': {\n      pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.insertBefore('fsharp', 'string', {\n    annotation: {\n      pattern: /\\[<.+?>\\]/,\n      greedy: true,\n      inside: {\n        punctuation: /^\\[<|>\\]$/,\n        'class-name': {\n          pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n          lookbehind: true\n        },\n        'annotation-content': {\n          pattern: /[\\s\\S]+/,\n          inside: Prism.languages.fsharp\n        }\n      }\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n      greedy: true\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nfactor.displayName = 'factor'\nfactor.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function factor(Prism) {\n  ;(function (Prism) {\n    var comment_inside = {\n      function:\n        /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n    }\n    var string_inside = {\n      number: /\\\\[^\\s']|%\\w/\n    }\n    var factor = {\n      comment: [\n        {\n          // ! single-line exclamation point comments with whitespace after/around the !\n          pattern: /(^|\\s)(?:! .*|!$)/,\n          lookbehind: true,\n          inside: comment_inside\n        } /* from basis/multiline: */,\n        {\n          // /* comment */, /* comment*/\n          pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        },\n        {\n          // ![[ comment ]] , ![===[ comment]===]\n          pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          inside: comment_inside\n        }\n      ],\n      number: [\n        {\n          // basic base 10 integers 9, -9\n          pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n          pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n          pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // positive mixed numbers 23+1/5 +23+1/5\n          pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // negative mixed numbers -23-1/5\n          pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n          // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n          pattern:\n            /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n          lookbehind: true\n        },\n        {\n          // NAN literal syntax NAN: 80000deadbeef, NAN: a\n          pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n          lookbehind: true\n        },\n        {\n          /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n          pattern:\n            /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n          lookbehind: true\n        }\n      ],\n      // R/ regexp?\\/\\\\/\n      regexp: {\n        pattern:\n          /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'number',\n        inside: {\n          variable: /\\\\\\S/,\n          keyword: /[+?*\\[\\]^$(){}.|]/,\n          operator: {\n            pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n            lookbehind: true\n          }\n        }\n      },\n      boolean: {\n        pattern: /(^|\\s)[tf](?=\\s|$)/,\n        lookbehind: true\n      },\n      // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n      'custom-string': {\n        pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          number: /\\\\\\S|%\\w|\\//\n        }\n      },\n      'multiline-string': [\n        {\n          // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n          pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            number: string_inside.number,\n            // trailing semicolon on its own line\n            'semicolon-or-setlocal': {\n              pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n              lookbehind: true,\n              alias: 'function'\n            }\n          }\n        },\n        {\n          // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n          pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        },\n        {\n          // [[ string ]], [==[ string]==]\n          pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: string_inside\n        }\n      ],\n      'special-using': {\n        pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          // this is essentially a regex for vocab names, which i don't want to specify\n          // but the USING: gets picked up as a vocab name\n          string: {\n            pattern: /(\\s)[^:\\s]+/,\n            lookbehind: true\n          }\n        }\n      },\n      /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n\n      // current solution is not great\n      'stack-effect-delimiter': [\n        {\n          // opening parenthesis\n          pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // middle --\n          pattern: /(\\s)--(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing parenthesis\n          pattern: /(\\s)\\)(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      combinators: {\n        pattern: null,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'kernel-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'sequences-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'math-builtin': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      'constructor-word': {\n        // <array> but not <=>\n        pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'other-builtin-syntax': {\n        pattern: null,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n      'conventionally-named-word': {\n        pattern:\n          /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'colon-syntax': {\n        pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'semicolon-or-setlocal': {\n        pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n      'curly-brace-literal-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\}(?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n      'quotation-delimiter': [\n        {\n          // opening\n          pattern: /(^|\\s)\\[(?=\\s)/,\n          lookbehind: true,\n          alias: 'operator'\n        },\n        {\n          // closing\n          pattern: /(\\s)\\](?=\\s|$)/,\n          lookbehind: true,\n          alias: 'operator'\n        }\n      ],\n      'normal-word': {\n        pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n        lookbehind: true\n      },\n      /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n      string: {\n        pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n        greedy: true,\n        inside: string_inside\n      }\n    }\n    var escape = function (str) {\n      return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n    }\n    var arrToWordsRegExp = function (arr) {\n      return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n    }\n    var builtins = {\n      'kernel-builtin': [\n        'or',\n        '2nipd',\n        '4drop',\n        'tuck',\n        'wrapper',\n        'nip',\n        'wrapper?',\n        'callstack>array',\n        'die',\n        'dupd',\n        'callstack',\n        'callstack?',\n        '3dup',\n        'hashcode',\n        'pick',\n        '4nip',\n        'build',\n        '>boolean',\n        'nipd',\n        'clone',\n        '5nip',\n        'eq?',\n        '?',\n        '=',\n        'swapd',\n        '2over',\n        'clear',\n        '2dup',\n        'get-retainstack',\n        'not',\n        'tuple?',\n        'dup',\n        '3nipd',\n        'call',\n        '-rotd',\n        'object',\n        'drop',\n        'assert=',\n        'assert?',\n        '-rot',\n        'execute',\n        'boa',\n        'get-callstack',\n        'curried?',\n        '3drop',\n        'pickd',\n        'overd',\n        'over',\n        'roll',\n        '3nip',\n        'swap',\n        'and',\n        '2nip',\n        'rotd',\n        'throw',\n        '(clone)',\n        'hashcode*',\n        'spin',\n        'reach',\n        '4dup',\n        'equal?',\n        'get-datastack',\n        'assert',\n        '2drop',\n        '<wrapper>',\n        'boolean?',\n        'identity-hashcode',\n        'identity-tuple?',\n        'null',\n        'composed?',\n        'new',\n        '5drop',\n        'rot',\n        '-roll',\n        'xor',\n        'identity-tuple',\n        'boolean'\n      ],\n      'other-builtin-syntax': [\n        // syntax\n        '=======',\n        'recursive',\n        'flushable',\n        '>>',\n        '<<<<<<',\n        'M\\\\',\n        'B',\n        'PRIVATE>',\n        '\\\\',\n        '======',\n        'final',\n        'inline',\n        'delimiter',\n        'deprecated',\n        '<PRIVATE',\n        '>>>>>>',\n        '<<<<<<<',\n        'parse-complex',\n        'malformed-complex',\n        'read-only',\n        '>>>>>>>',\n        'call-next-method',\n        '<<',\n        'foldable',\n        // literals\n        '$',\n        '$[',\n        '${'\n      ],\n      'sequences-builtin': [\n        'member-eq?',\n        'mismatch',\n        'append',\n        'assert-sequence=',\n        'longer',\n        'repetition',\n        'clone-like',\n        '3sequence',\n        'assert-sequence?',\n        'last-index-from',\n        'reversed',\n        'index-from',\n        'cut*',\n        'pad-tail',\n        'join-as',\n        'remove-eq!',\n        'concat-as',\n        'but-last',\n        'snip',\n        'nths',\n        'nth',\n        'sequence',\n        'longest',\n        'slice?',\n        '<slice>',\n        'remove-nth',\n        'tail-slice',\n        'empty?',\n        'tail*',\n        'member?',\n        'virtual-sequence?',\n        'set-length',\n        'drop-prefix',\n        'iota',\n        'unclip',\n        'bounds-error?',\n        'unclip-last-slice',\n        'non-negative-integer-expected',\n        'non-negative-integer-expected?',\n        'midpoint@',\n        'longer?',\n        '?set-nth',\n        '?first',\n        'rest-slice',\n        'prepend-as',\n        'prepend',\n        'fourth',\n        'sift',\n        'subseq-start',\n        'new-sequence',\n        '?last',\n        'like',\n        'first4',\n        '1sequence',\n        'reverse',\n        'slice',\n        'virtual@',\n        'repetition?',\n        'set-last',\n        'index',\n        '4sequence',\n        'max-length',\n        'set-second',\n        'immutable-sequence',\n        'first2',\n        'first3',\n        'supremum',\n        'unclip-slice',\n        'suffix!',\n        'insert-nth',\n        'tail',\n        '3append',\n        'short',\n        'suffix',\n        'concat',\n        'flip',\n        'immutable?',\n        'reverse!',\n        '2sequence',\n        'sum',\n        'delete-all',\n        'indices',\n        'snip-slice',\n        '<iota>',\n        'check-slice',\n        'sequence?',\n        'head',\n        'append-as',\n        'halves',\n        'sequence=',\n        'collapse-slice',\n        '?second',\n        'slice-error?',\n        'product',\n        'bounds-check?',\n        'bounds-check',\n        'immutable',\n        'virtual-exemplar',\n        'harvest',\n        'remove',\n        'pad-head',\n        'last',\n        'set-fourth',\n        'cartesian-product',\n        'remove-eq',\n        'shorten',\n        'shorter',\n        'reversed?',\n        'shorter?',\n        'shortest',\n        'head-slice',\n        'pop*',\n        'tail-slice*',\n        'but-last-slice',\n        'iota?',\n        'append!',\n        'cut-slice',\n        'new-resizable',\n        'head-slice*',\n        'sequence-hashcode',\n        'pop',\n        'set-nth',\n        '?nth',\n        'second',\n        'join',\n        'immutable-sequence?',\n        '<reversed>',\n        '3append-as',\n        'virtual-sequence',\n        'subseq?',\n        'remove-nth!',\n        'length',\n        'last-index',\n        'lengthen',\n        'assert-sequence',\n        'copy',\n        'move',\n        'third',\n        'first',\n        'tail?',\n        'set-first',\n        'prefix',\n        'bounds-error',\n        '<repetition>',\n        'exchange',\n        'surround',\n        'cut',\n        'min-length',\n        'set-third',\n        'push-all',\n        'head?',\n        'subseq-start-from',\n        'delete-slice',\n        'rest',\n        'sum-lengths',\n        'head*',\n        'infimum',\n        'remove!',\n        'glue',\n        'slice-error',\n        'subseq',\n        'push',\n        'replace-slice',\n        'subseq-as',\n        'unclip-last'\n      ],\n      'math-builtin': [\n        'number=',\n        'next-power-of-2',\n        '?1+',\n        'fp-special?',\n        'imaginary-part',\n        'float>bits',\n        'number?',\n        'fp-infinity?',\n        'bignum?',\n        'fp-snan?',\n        'denominator',\n        'gcd',\n        '*',\n        '+',\n        'fp-bitwise=',\n        '-',\n        'u>=',\n        '/',\n        '>=',\n        'bitand',\n        'power-of-2?',\n        'log2-expects-positive',\n        'neg?',\n        '<',\n        'log2',\n        '>',\n        'integer?',\n        'number',\n        'bits>double',\n        '2/',\n        'zero?',\n        'bits>float',\n        'float?',\n        'shift',\n        'ratio?',\n        'rect>',\n        'even?',\n        'ratio',\n        'fp-sign',\n        'bitnot',\n        '>fixnum',\n        'complex?',\n        '/i',\n        'integer>fixnum',\n        '/f',\n        'sgn',\n        '>bignum',\n        'next-float',\n        'u<',\n        'u>',\n        'mod',\n        'recip',\n        'rational',\n        '>float',\n        '2^',\n        'integer',\n        'fixnum?',\n        'neg',\n        'fixnum',\n        'sq',\n        'bignum',\n        '>rect',\n        'bit?',\n        'fp-qnan?',\n        'simple-gcd',\n        'complex',\n        '<fp-nan>',\n        'real',\n        '>fraction',\n        'double>bits',\n        'bitor',\n        'rem',\n        'fp-nan-payload',\n        'real-part',\n        'log2-expects-positive?',\n        'prev-float',\n        'align',\n        'unordered?',\n        'float',\n        'fp-nan?',\n        'abs',\n        'bitxor',\n        'integer>fixnum-strict',\n        'u<=',\n        'odd?',\n        '<=',\n        '/mod',\n        '>integer',\n        'real?',\n        'rational?',\n        'numerator'\n      ]\n      // that's all for now\n    }\n    Object.keys(builtins).forEach(function (k) {\n      factor[k].pattern = arrToWordsRegExp(builtins[k])\n    })\n    var combinators = [\n      // kernel\n      '2bi',\n      'while',\n      '2tri',\n      'bi*',\n      '4dip',\n      'both?',\n      'same?',\n      'tri@',\n      'curry',\n      'prepose',\n      '3bi',\n      '?if',\n      'tri*',\n      '2keep',\n      '3keep',\n      'curried',\n      '2keepd',\n      'when',\n      '2bi*',\n      '2tri*',\n      '4keep',\n      'bi@',\n      'keepdd',\n      'do',\n      'unless*',\n      'tri-curry',\n      'if*',\n      'loop',\n      'bi-curry*',\n      'when*',\n      '2bi@',\n      '2tri@',\n      'with',\n      '2with',\n      'either?',\n      'bi',\n      'until',\n      '3dip',\n      '3curry',\n      'tri-curry*',\n      'tri-curry@',\n      'bi-curry',\n      'keepd',\n      'compose',\n      '2dip',\n      'if',\n      '3tri',\n      'unless',\n      'tuple',\n      'keep',\n      '2curry',\n      'tri',\n      'most',\n      'while*',\n      'dip',\n      'composed',\n      'bi-curry@',\n      // sequences\n      'find-last-from',\n      'trim-head-slice',\n      'map-as',\n      'each-from',\n      'none?',\n      'trim-tail',\n      'partition',\n      'if-empty',\n      'accumulate*',\n      'reject!',\n      'find-from',\n      'accumulate-as',\n      'collector-for-as',\n      'reject',\n      'map',\n      'map-sum',\n      'accumulate!',\n      '2each-from',\n      'follow',\n      'supremum-by',\n      'map!',\n      'unless-empty',\n      'collector',\n      'padding',\n      'reduce-index',\n      'replicate-as',\n      'infimum-by',\n      'trim-tail-slice',\n      'count',\n      'find-index',\n      'filter',\n      'accumulate*!',\n      'reject-as',\n      'map-integers',\n      'map-find',\n      'reduce',\n      'selector',\n      'interleave',\n      '2map',\n      'filter-as',\n      'binary-reduce',\n      'map-index-as',\n      'find',\n      'produce',\n      'filter!',\n      'replicate',\n      'cartesian-map',\n      'cartesian-each',\n      'find-index-from',\n      'map-find-last',\n      '3map-as',\n      '3map',\n      'find-last',\n      'selector-as',\n      '2map-as',\n      '2map-reduce',\n      'accumulate',\n      'each',\n      'each-index',\n      'accumulate*-as',\n      'when-empty',\n      'all?',\n      'collector-as',\n      'push-either',\n      'new-like',\n      'collector-for',\n      '2selector',\n      'push-if',\n      '2all?',\n      'map-reduce',\n      '3each',\n      'any?',\n      'trim-slice',\n      '2reduce',\n      'change-nth',\n      'produce-as',\n      '2each',\n      'trim',\n      'trim-head',\n      'cartesian-find',\n      'map-index',\n      // math\n      'if-zero',\n      'each-integer',\n      'unless-zero',\n      '(find-integer)',\n      'when-zero',\n      'find-last-integer',\n      '(all-integers?)',\n      'times',\n      '(each-integer)',\n      'find-integer',\n      'all-integers?',\n      // math.combinators\n      'unless-negative',\n      'if-positive',\n      'when-positive',\n      'when-negative',\n      'unless-positive',\n      'if-negative',\n      // combinators\n      'case',\n      '2cleave',\n      'cond>quot',\n      'case>quot',\n      '3cleave',\n      'wrong-values',\n      'to-fixed-point',\n      'alist>quot',\n      'cond',\n      'cleave',\n      'call-effect',\n      'recursive-hashcode',\n      'spread',\n      'deep-spread>quot',\n      // combinators.short-circuit\n      '2||',\n      '0||',\n      'n||',\n      '0&&',\n      '2&&',\n      '3||',\n      '1||',\n      '1&&',\n      'n&&',\n      '3&&',\n      // combinators.smart\n      'smart-unless*',\n      'keep-inputs',\n      'reduce-outputs',\n      'smart-when*',\n      'cleave>array',\n      'smart-with',\n      'smart-apply',\n      'smart-if',\n      'inputs/outputs',\n      'output>sequence-n',\n      'map-outputs',\n      'map-reduce-outputs',\n      'dropping',\n      'output>array',\n      'smart-map-reduce',\n      'smart-2map-reduce',\n      'output>array-n',\n      'nullary',\n      'input<sequence',\n      'append-outputs',\n      'drop-inputs',\n      'inputs',\n      'smart-2reduce',\n      'drop-outputs',\n      'smart-reduce',\n      'preserving',\n      'smart-when',\n      'outputs',\n      'append-outputs-as',\n      'smart-unless',\n      'smart-if*',\n      'sum-outputs',\n      'input<sequence-unsafe',\n      'output>sequence'\n      // tafn\n    ]\n    factor.combinators.pattern = arrToWordsRegExp(combinators)\n    Prism.languages.factor = factor\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\n$false.displayName = 'false'\n$false.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function $false(Prism) {\n  ;(function (Prism) {\n    /**\n     * Based on the manual by Wouter van Oortmerssen.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n     */\n    Prism.languages['false'] = {\n      comment: {\n        pattern: /\\{[^}]*\\}/\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      'character-code': {\n        pattern: /'(?:[^\\r]|\\r\\n?)/,\n        alias: 'number'\n      },\n      'assembler-code': {\n        pattern: /\\d+`/,\n        alias: 'important'\n      },\n      number: /\\d+/,\n      operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n      punctuation: /\\[|\\]/,\n      variable: /[a-z]/,\n      'non-standard': {\n        pattern: /[()<BDO®]/,\n        alias: 'bold'\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nfirestoreSecurityRules.displayName = 'firestore-security-rules'\nfirestoreSecurityRules.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function firestoreSecurityRules(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n    'clike',\n    {\n      comment: /\\/\\/.*/,\n      keyword:\n        /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n      operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n    }\n  )\n  delete Prism.languages['firestore-security-rules']['class-name']\n  Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n    path: {\n      pattern:\n        /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n          inside: {\n            operator: /=/,\n            keyword: /\\*\\*/,\n            punctuation: /[.$(){}]/\n          }\n        },\n        punctuation: /\\//\n      }\n    },\n    method: {\n      // to make the pattern shorter, the actual method names are omitted\n      pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n      lookbehind: true,\n      alias: 'builtin',\n      inside: {\n        punctuation: /,/\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nflow.displayName = 'flow'\nflow.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function flow(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    Prism.languages.flow = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('flow', 'keyword', {\n      type: [\n        {\n          pattern:\n            /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/,\n          alias: 'class-name'\n        }\n      ]\n    })\n    Prism.languages.flow['function-variable'].pattern =\n      /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n    delete Prism.languages.flow['parameter']\n    Prism.languages.insertBefore('flow', 'operator', {\n      'flow-punctuation': {\n        pattern: /\\{\\||\\|\\}/,\n        alias: 'punctuation'\n      }\n    })\n    if (!Array.isArray(Prism.languages.flow.keyword)) {\n      Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n    }\n    Prism.languages.flow.keyword.unshift(\n      {\n        pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n        lookbehind: true\n      }\n    )\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nfortran.displayName = 'fortran'\nfortran.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function fortran(Prism) {\n  Prism.languages.fortran = {\n    'quoted-number': {\n      pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n      alias: 'number'\n    },\n    string: {\n      pattern:\n        /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n      inside: {\n        comment: {\n          pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n          lookbehind: true\n        }\n      }\n    },\n    comment: {\n      pattern: /!.*/,\n      greedy: true\n    },\n    boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n    keyword: [\n      // Types\n      /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i,\n      // END statements\n      /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i,\n      // Statements\n      /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i,\n      // Others\n      /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n    ],\n    operator: [\n      /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n      {\n        // Use lookbehind to prevent confusion with (/ /)\n        pattern: /(^|(?!\\().)\\/(?!\\))/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nftl.displayName = 'ftl'\nftl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ftl(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    // https://freemarker.apache.org/docs/dgui_template_exp.html\n\n    // FTL expression with 4 levels of nesting supported\n    var FTL_EXPR =\n      /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n        .source\n    for (var i = 0; i < 2; i++) {\n      FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n        return FTL_EXPR\n      })\n    }\n    FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var ftl = {\n      comment: /<#--[\\s\\S]*?-->/,\n      string: [\n        {\n          // raw string\n          pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n          greedy: true\n        },\n        {\n          pattern: RegExp(\n            /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n              /<expr>/g,\n              function () {\n                return FTL_EXPR\n              }\n            )\n          ),\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: RegExp(\n                /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n                  /<expr>/g,\n                  function () {\n                    return FTL_EXPR\n                  }\n                )\n              ),\n              lookbehind: true,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^\\$\\{|\\}$/,\n                  alias: 'punctuation'\n                },\n                rest: null\n              }\n            }\n          }\n        }\n      ],\n      keyword: /\\b(?:as)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      'builtin-function': {\n        pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: /\\b\\d+(?:\\.\\d+)?\\b/,\n      operator:\n        /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n      punctuation: /[,;.:()[\\]{}]/\n    }\n    ftl.string[1].inside.interpolation.inside.rest = ftl\n    Prism.languages.ftl = {\n      'ftl-comment': {\n        // the pattern is shortened to be more efficient\n        pattern: /^<#--[\\s\\S]*/,\n        alias: 'comment'\n      },\n      'ftl-directive': {\n        pattern: /^<[\\s\\S]+>$/,\n        inside: {\n          directive: {\n            pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          punctuation: /^<\\/?|\\/?>$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      },\n      'ftl-interpolation': {\n        pattern: /^\\$\\{[\\s\\S]*\\}$/,\n        inside: {\n          punctuation: /^\\$\\{|\\}$/,\n          content: {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            alias: 'ftl',\n            inside: ftl\n          }\n        }\n      }\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      // eslint-disable-next-line regexp/no-useless-lazy\n      var pattern = RegExp(\n        /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n          /<expr>/g,\n          function () {\n            return FTL_EXPR\n          }\n        ),\n        'gi'\n      )\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'ftl',\n        pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ngml.displayName = 'gml'\ngml.aliases = ['gamemakerlanguage']\n\n/** @param {Refractor} Prism */\nexport default function gml(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.gamemakerlanguage = Prism.languages.gml =\n    Prism.languages.extend('clike', {\n      keyword:\n        /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n      number:\n        /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n      operator:\n        /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n      constant:\n        /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n      variable:\n        /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n    })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngap.displayName = 'gap'\ngap.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gap(Prism) {\n  // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n  // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n\n  Prism.languages.gap = {\n    shell: {\n      pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n      greedy: true,\n      inside: {\n        gap: {\n          pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        punctuation: /^gap>/\n      }\n    },\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        continuation: {\n          pattern: /([\\r\\n])>/,\n          lookbehind: true,\n          alias: 'punctuation'\n        }\n      }\n    },\n    keyword:\n      /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    continuation: {\n      pattern: /([\\r\\n])>/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n    punctuation: /[()[\\]{},;.:]/\n  }\n  Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngcode.displayName = 'gcode'\ngcode.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gcode(Prism) {\n  Prism.languages.gcode = {\n    comment: /;.*|\\B\\(.*?\\)\\B/,\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n    property: /\\b[A-Z]/,\n    checksum: {\n      pattern: /(\\*)\\d+/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    // T0:0:0\n    punctuation: /[:*]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gdscript(Prism) {\n  Prism.languages.gdscript = {\n    comment: /#.*/,\n    string: {\n      pattern:\n        /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n      greedy: true\n    },\n    'class-name': {\n      // class_name Foo, extends Bar, class InnerClass\n      // export(int) var baz, export(int, 0) var i\n      // as Node\n      // const FOO: int = 9, var bar: bool = true\n      // func add(reference: Item, amount: int) -> Item:\n      pattern:\n        /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n    variable: /\\$\\w+/,\n    number: [\n      /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n      /\\b(?:INF|NAN|PI|TAU)\\b/\n    ],\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n    punctuation: /[.:,;()[\\]{}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gedcom(Prism) {\n  Prism.languages.gedcom = {\n    'line-value': {\n      // Preceded by level, optional pointer, and tag\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n      lookbehind: true,\n      inside: {\n        pointer: {\n          pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n          alias: 'variable'\n        }\n      }\n    },\n    record: {\n      // Preceded by level and optional pointer\n      pattern:\n        /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n      lookbehind: true,\n      alias: 'tag'\n    },\n    level: {\n      pattern: /(^[\\t ]*)\\d+/m,\n      lookbehind: true,\n      alias: 'number'\n    },\n    pointer: {\n      pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n      alias: 'variable'\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngettext.displayName = 'gettext'\ngettext.aliases = ['po']\n\n/** @param {Refractor} Prism */\nexport default function gettext(Prism) {\n  Prism.languages.gettext = {\n    comment: [\n      {\n        pattern: /# .*/,\n        greedy: true,\n        alias: 'translator-comment'\n      },\n      {\n        pattern: /#\\..*/,\n        greedy: true,\n        alias: 'extracted-comment'\n      },\n      {\n        pattern: /#:.*/,\n        greedy: true,\n        alias: 'reference-comment'\n      },\n      {\n        pattern: /#,.*/,\n        greedy: true,\n        alias: 'flag-comment'\n      },\n      {\n        pattern: /#\\|.*/,\n        greedy: true,\n        alias: 'previously-untranslated-comment'\n      },\n      {\n        pattern: /#.*/,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword: /^msg(?:ctxt|id|id_plural|str)\\b/m,\n    number: /\\b\\d+\\b/,\n    punctuation: /[\\[\\]]/\n  }\n  Prism.languages.po = Prism.languages.gettext\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gherkin(Prism) {\n  ;(function (Prism) {\n    var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n    Prism.languages.gherkin = {\n      pystring: {\n        pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n        alias: 'string'\n      },\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[ \\t]*)@\\S*/m,\n        lookbehind: true\n      },\n      feature: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]+/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      scenario: {\n        pattern:\n          /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n        lookbehind: true,\n        inside: {\n          important: {\n            pattern: /(:)[^\\r\\n]*/,\n            lookbehind: true\n          },\n          keyword: /[^:\\r\\n]+:/\n        }\n      },\n      'table-body': {\n        // Look-behind is used to skip the table head, which has the same format as any table row\n        pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n        lookbehind: true,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          },\n          td: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'string'\n          },\n          punctuation: /\\|/\n        }\n      },\n      'table-head': {\n        pattern: RegExp(tableRow),\n        inside: {\n          th: {\n            pattern: /\\s*[^\\s|][^|]*/,\n            alias: 'variable'\n          },\n          punctuation: /\\|/\n        }\n      },\n      atrule: {\n        pattern:\n          /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n        lookbehind: true\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n        inside: {\n          outline: {\n            pattern: /<[^>]+>/,\n            alias: 'variable'\n          }\n        }\n      },\n      outline: {\n        pattern: /<[^>]+>/,\n        alias: 'variable'\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngit.displayName = 'git'\ngit.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function git(Prism) {\n  Prism.languages.git = {\n    /*\n     * A simple one line comment like in a git status command\n     * For instance:\n     * $ git status\n     * # On branch infinite-scroll\n     * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n     * # and have 1 and 2 different commits each, respectively.\n     * nothing to commit (working directory clean)\n     */\n    comment: /^#.*/m,\n    /*\n     * Regexp to match the changed lines in a git diff output. Check the example below.\n     */\n    deleted: /^[-–].*/m,\n    inserted: /^\\+.*/m,\n    /*\n     * a string (double and simple quote)\n     */\n    string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    /*\n     * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n     * For instance:\n     * $ git add file.txt\n     */\n    command: {\n      pattern: /^.*\\$ git .*$/m,\n      inside: {\n        /*\n         * A git command can contain a parameter starting by a single or a double dash followed by a string\n         * For instance:\n         * $ git diff --cached\n         * $ git log -p\n         */\n        parameter: /\\s--?\\w+/\n      }\n    },\n    /*\n     * Coordinates displayed in a git diff command\n     * For instance:\n     * $ git diff\n     * diff --git file.txt file.txt\n     * index 6214953..1d54a52 100644\n     * --- file.txt\n     * +++ file.txt\n     * @@ -1 +1,2 @@\n     * -Here's my tetx file\n     * +Here's my text file\n     * +And this is the second line\n     */\n    coord: /^@@.*@@$/m,\n    /*\n     * Match a \"commit [SHA1]\" line in a git log output.\n     * For instance:\n     * $ git log\n     * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n     * Author: lgiraudel\n     * Date:   Mon Feb 17 11:18:34 2014 +0100\n     *\n     *     Add of a new line\n     */\n    'commit-sha1': /^commit \\w{40}$/m\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\nglsl.displayName = 'glsl'\nglsl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function glsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.glsl = Prism.languages.extend('c', {\n    keyword:\n      /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngn.displayName = 'gn'\ngn.aliases = ['gni']\n\n/** @param {Refractor} Prism */\nexport default function gn(Prism) {\n  // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n\n  Prism.languages.gn = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'string-literal': {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n          lookbehind: true,\n          inside: {\n            number: /^\\$0x[\\s\\S]{2}$/,\n            variable: /^\\$\\w+$/,\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: null // see below\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    keyword: /\\b(?:else|if)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'builtin-function': {\n      // a few functions get special highlighting to improve readability\n      pattern:\n        /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n      alias: 'keyword'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant:\n      /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n    number: /-?\\b\\d+\\b/,\n    operator: /[-+!=<>]=?|&&|\\|\\|/,\n    punctuation: /[(){}[\\],.]/\n  }\n  Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n    'expression'\n  ].inside = Prism.languages.gn\n  Prism.languages.gni = Prism.languages.gn\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlinkerScript.displayName = 'linker-script'\nlinkerScript.aliases = ['ld']\n\n/** @param {Refractor} Prism */\nexport default function linkerScript(Prism) {\n  Prism.languages['linker-script'] = {\n    comment: {\n      pattern: /(^|\\s)\\/\\*[\\s\\S]*?(?:$|\\*\\/)/,\n      lookbehind: true,\n      greedy: true\n    },\n    identifier: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    'location-counter': {\n      pattern: /\\B\\.\\B/,\n      alias: 'important'\n    },\n    section: {\n      pattern: /(^|[^\\w*])\\.\\w+\\b/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    function: /\\b[A-Z][A-Z_]*(?=\\s*\\()/,\n    number: /\\b(?:0[xX][a-fA-F0-9]+|\\d+)[KM]?\\b/,\n    operator: />>=?|<<=?|->|\\+\\+|--|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?/,\n    punctuation: /[(){},;]/\n  }\n  Prism.languages['ld'] = Prism.languages['linker-script']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ngo.displayName = 'go'\ngo.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function go(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.go = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n    boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n    number: [\n      // binary and octal integers\n      /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i,\n      // hexadecimal integers and floats\n      /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n      // decimal integers and floats\n      /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n    ],\n    operator:\n      /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n    builtin:\n      /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n  })\n  Prism.languages.insertBefore('go', 'string', {\n    char: {\n      pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n      greedy: true\n    }\n  })\n  delete Prism.languages.go['class-name']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngoModule.displayName = 'go-module'\ngoModule.aliases = ['go-mod']\n\n/** @param {Refractor} Prism */\nexport default function goModule(Prism) {\n  // https://go.dev/ref/mod#go-mod-file-module\n\n  Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    version: {\n      pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    'go-version': {\n      pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    keyword: {\n      pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n      lookbehind: true\n    },\n    operator: /=>/,\n    punctuation: /[()[\\],]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ngradle.displayName = 'gradle'\ngradle.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function gradle(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var interpolation = {\n      pattern: /((?:^|[^\\\\$])(?:\\\\{2})*)\\$(?:\\w+|\\{[^{}]*\\})/,\n      lookbehind: true,\n      inside: {\n        'interpolation-punctuation': {\n          pattern: /^\\$\\{?|\\}$/,\n          alias: 'punctuation'\n        },\n        expression: {\n          pattern: /[\\s\\S]+/,\n          inside: null\n        }\n      }\n    }\n    Prism.languages.gradle = Prism.languages.extend('clike', {\n      string: {\n        pattern: /'''(?:[^\\\\]|\\\\[\\s\\S])*?'''|'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n        greedy: true\n      },\n      keyword:\n        /\\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\\b/,\n      number:\n        /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n      operator: {\n        pattern:\n          /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n        lookbehind: true\n      },\n      punctuation: /\\.+|[{}[\\];(),:$]/\n    })\n    Prism.languages.insertBefore('gradle', 'string', {\n      shebang: {\n        pattern: /#!.+/,\n        alias: 'comment',\n        greedy: true\n      },\n      'interpolation-string': {\n        pattern:\n          /\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\"|([\"/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n        greedy: true,\n        inside: {\n          interpolation: interpolation,\n          string: /[\\s\\S]+/\n        }\n      }\n    })\n    Prism.languages.insertBefore('gradle', 'punctuation', {\n      'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n    })\n    Prism.languages.insertBefore('gradle', 'function', {\n      annotation: {\n        pattern: /(^|[^.])@\\w+/,\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n    interpolation.inside.expression.inside = Prism.languages.gradle\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function graphql(Prism) {\n  Prism.languages.graphql = {\n    comment: /#.*/,\n    description: {\n      pattern:\n        /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        'language-markdown': {\n          pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n          lookbehind: true,\n          inside: Prism.languages.markdown\n        }\n      }\n    },\n    string: {\n      pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    boolean: /\\b(?:false|true)\\b/,\n    variable: /\\$[a-z_]\\w*/i,\n    directive: {\n      pattern: /@[a-z_]\\w*/i,\n      alias: 'function'\n    },\n    'attr-name': {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n      greedy: true\n    },\n    'atom-input': {\n      pattern: /\\b[A-Z]\\w*Input\\b/,\n      alias: 'class-name'\n    },\n    scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n    constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n    'class-name': {\n      pattern:\n        /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n      lookbehind: true\n    },\n    fragment: {\n      pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-mutation': {\n      pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'definition-query': {\n      pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword:\n      /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n    operator: /[!=|&]|\\.{3}/,\n    'property-query': /\\w+(?=\\s*\\()/,\n    object: /\\w+(?=\\s*\\{)/,\n    punctuation: /[!(){}\\[\\]:=,]/,\n    property: /\\w+/\n  }\n  Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n    if (env.language !== 'graphql') {\n      return\n    }\n\n    /**\n     * get the graphql token stream that we want to customize\n     *\n     * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n     * @type {Token[]}\n     */\n    var validTokens = env.tokens.filter(function (token) {\n      return (\n        typeof token !== 'string' &&\n        token.type !== 'comment' &&\n        token.type !== 'scalar'\n      )\n    })\n    var currentIndex = 0\n\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {number} offset\n     * @returns {Token | undefined}\n     */\n    function getToken(offset) {\n      return validTokens[currentIndex + offset]\n    }\n\n    /**\n     * Returns whether the token relative to the current index has the given type.\n     *\n     * @param {readonly string[]} types\n     * @param {number} [offset=0]\n     * @returns {boolean}\n     */\n    function isTokenType(types, offset) {\n      offset = offset || 0\n      for (var i = 0; i < types.length; i++) {\n        var token = getToken(i + offset)\n        if (!token || token.type !== types[i]) {\n          return false\n        }\n      }\n      return true\n    }\n\n    /**\n     * Returns the index of the closing bracket to an opening bracket.\n     *\n     * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n     *\n     * If no closing bracket could be found, `-1` will be returned.\n     *\n     * @param {RegExp} open\n     * @param {RegExp} close\n     * @returns {number}\n     */\n    function findClosingBracket(open, close) {\n      var stackHeight = 1\n      for (var i = currentIndex; i < validTokens.length; i++) {\n        var token = validTokens[i]\n        var content = token.content\n        if (token.type === 'punctuation' && typeof content === 'string') {\n          if (open.test(content)) {\n            stackHeight++\n          } else if (close.test(content)) {\n            stackHeight--\n            if (stackHeight === 0) {\n              return i\n            }\n          }\n        }\n      }\n      return -1\n    }\n\n    /**\n     * Adds an alias to the given token.\n     *\n     * @param {Token} token\n     * @param {string} alias\n     * @returns {void}\n     */\n    function addAlias(token, alias) {\n      var aliases = token.alias\n      if (!aliases) {\n        token.alias = aliases = []\n      } else if (!Array.isArray(aliases)) {\n        token.alias = aliases = [aliases]\n      }\n      aliases.push(alias)\n    }\n    for (; currentIndex < validTokens.length; ) {\n      var startToken = validTokens[currentIndex++]\n\n      // add special aliases for mutation tokens\n      if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n        // any array of the names of all input variables (if any)\n        var inputVariables = []\n        if (\n          isTokenType(['definition-mutation', 'punctuation']) &&\n          getToken(1).content === '('\n        ) {\n          // definition\n\n          currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n\n          var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n          if (definitionEnd === -1) {\n            continue\n          }\n\n          // find all input variables\n          for (; currentIndex < definitionEnd; currentIndex++) {\n            var t = getToken(0)\n            if (t.type === 'variable') {\n              addAlias(t, 'variable-input')\n              inputVariables.push(t.content)\n            }\n          }\n          currentIndex = definitionEnd + 1\n        }\n        if (\n          isTokenType(['punctuation', 'property-query']) &&\n          getToken(0).content === '{'\n        ) {\n          currentIndex++ // skip opening bracket\n\n          addAlias(getToken(0), 'property-mutation')\n          if (inputVariables.length > 0) {\n            var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n            if (mutationEnd === -1) {\n              continue\n            }\n\n            // give references to input variables a special alias\n            for (var i = currentIndex; i < mutationEnd; i++) {\n              var varToken = validTokens[i]\n              if (\n                varToken.type === 'variable' &&\n                inputVariables.indexOf(varToken.content) >= 0\n              ) {\n                addAlias(varToken, 'variable-input')\n              }\n            }\n          }\n        }\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function groovy(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var interpolation = {\n      pattern: /((?:^|[^\\\\$])(?:\\\\{2})*)\\$(?:\\w+|\\{[^{}]*\\})/,\n      lookbehind: true,\n      inside: {\n        'interpolation-punctuation': {\n          pattern: /^\\$\\{?|\\}$/,\n          alias: 'punctuation'\n        },\n        expression: {\n          pattern: /[\\s\\S]+/,\n          inside: null // see below\n        }\n      }\n    }\n    Prism.languages.groovy = Prism.languages.extend('clike', {\n      string: {\n        // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n        pattern: /'''(?:[^\\\\]|\\\\[\\s\\S])*?'''|'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n        greedy: true\n      },\n      keyword:\n        /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n      number:\n        /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n      operator: {\n        pattern:\n          /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n        lookbehind: true\n      },\n      punctuation: /\\.+|[{}[\\];(),:$]/\n    })\n    Prism.languages.insertBefore('groovy', 'string', {\n      shebang: {\n        pattern: /#!.+/,\n        alias: 'comment',\n        greedy: true\n      },\n      'interpolation-string': {\n        // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n        // simple division (see JS regex), so find a fix maybe?\n        pattern:\n          /\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\"|([\"/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n        greedy: true,\n        inside: {\n          interpolation: interpolation,\n          string: /[\\s\\S]+/\n        }\n      }\n    })\n    Prism.languages.insertBefore('groovy', 'punctuation', {\n      'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n    })\n    Prism.languages.insertBefore('groovy', 'function', {\n      annotation: {\n        pattern: /(^|[^.])@\\w+/,\n        lookbehind: true,\n        alias: 'punctuation'\n      }\n    })\n    interpolation.inside.expression.inside = Prism.languages.groovy\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCss from './css.js'\nless.displayName = 'less'\nless.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function less(Prism) {\n  Prism.register(refractorCss)\n  /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n\n  Prism.languages.less = Prism.languages.extend('css', {\n    comment: [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^|[^\\\\])\\/\\/.*/,\n        lookbehind: true\n      }\n    ],\n    atrule: {\n      pattern:\n        /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        punctuation: /[:()]/\n      }\n    },\n    // selectors and mixins are considered the same\n    selector: {\n      pattern:\n        /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n      inside: {\n        // mixin parameters\n        variable: /@+[\\w-]+/\n      }\n    },\n    property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n    operator: /[+\\-*\\/]/\n  })\n  Prism.languages.insertBefore('less', 'property', {\n    variable: [\n      // Variable declaration (the colon must be consumed!)\n      {\n        pattern: /@[\\w-]+\\s*:/,\n        inside: {\n          punctuation: /:/\n        }\n      },\n      // Variable usage\n      /@@?[\\w-]+/\n    ],\n    'mixin-usage': {\n      pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n      lookbehind: true,\n      alias: 'function'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCss from './css.js'\nscss.displayName = 'scss'\nscss.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function scss(Prism) {\n  Prism.register(refractorCss)\n  Prism.languages.scss = Prism.languages.extend('css', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true\n    },\n    atrule: {\n      pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n      inside: {\n        rule: /@[\\w-]+/\n        // See rest below\n      }\n    },\n    // url, compassified\n    url: /(?:[-a-z]+-)?url(?=\\()/i,\n    // CSS selector regex is not appropriate for Sass\n    // since there can be lot more things (var, @ directive, nesting..)\n    // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n    // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n    // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n    // can \"pass\" as a selector- e.g: proper#{$erty})\n    // this one was hard to do, so please be careful if you edit this one :)\n    selector: {\n      // Initial look-ahead is used to prevent matching of blank selectors\n      pattern:\n        /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n      inside: {\n        parent: {\n          pattern: /&/,\n          alias: 'important'\n        },\n        placeholder: /%[-\\w]+/,\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    },\n    property: {\n      pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n      inside: {\n        variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n      }\n    }\n  })\n  Prism.languages.insertBefore('scss', 'atrule', {\n    keyword: [\n      /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n      {\n        pattern: /( )(?:from|through)(?= )/,\n        lookbehind: true\n      }\n    ]\n  })\n  Prism.languages.insertBefore('scss', 'important', {\n    // var and interpolated vars\n    variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n  })\n  Prism.languages.insertBefore('scss', 'function', {\n    'module-modifier': {\n      pattern: /\\b(?:as|hide|show|with)\\b/i,\n      alias: 'keyword'\n    },\n    placeholder: {\n      pattern: /%[-\\w]+/,\n      alias: 'selector'\n    },\n    statement: {\n      pattern: /\\B!(?:default|optional)\\b/i,\n      alias: 'keyword'\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    operator: {\n      pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\ntextile.displayName = 'textile'\ntextile.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function textile(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    // We don't allow for pipes inside parentheses\n    // to not break table pattern |(. foo |). bar |\n    var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source\n    // Opening and closing parentheses which are not a modifier\n    // This pattern is necessary to prevent exponential backtracking\n    var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function withModifier(source, flags) {\n      return RegExp(\n        source\n          .replace(/<MOD>/g, function () {\n            return '(?:' + modifierRegex + ')'\n          })\n          .replace(/<PAR>/g, function () {\n            return '(?:' + parenthesesRegex + ')'\n          }),\n        flags || ''\n      )\n    }\n    var modifierTokens = {\n      css: {\n        pattern: /\\{[^{}]+\\}/,\n        inside: {\n          rest: Prism.languages.css\n        }\n      },\n      'class-id': {\n        pattern: /(\\()[^()]+(?=\\))/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      lang: {\n        pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n        lookbehind: true,\n        alias: 'attr-value'\n      },\n      // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n      punctuation: /[\\\\\\/]\\d+|\\S/\n    }\n    var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n      phrase: {\n        pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n        lookbehind: true,\n        inside: {\n          // h1. Header 1\n          'block-tag': {\n            pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n            inside: {\n              modifier: {\n                pattern: withModifier(\n                  /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              tag: /^[a-z]\\w*/,\n              punctuation: /\\.$/\n            }\n          },\n          // # List item\n          // * List item\n          list: {\n            pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n            inside: {\n              modifier: {\n                pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /^[*#]+/\n            }\n          },\n          // | cell | cell | cell |\n          table: {\n            // Modifiers can be applied to the row: {color:red}.|1|2|3|\n            // or the cell: |{color:red}.1|2|3|\n            pattern: withModifier(\n              /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n                .source,\n              'm'\n            ),\n            inside: {\n              modifier: {\n                // Modifiers for rows after the first one are\n                // preceded by a pipe and a line feed\n                pattern: withModifier(\n                  /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n                    .source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /\\||^\\./\n            }\n          },\n          inline: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n                .source\n            ),\n            lookbehind: true,\n            inside: {\n              // Note: superscripts and subscripts are not handled specifically\n\n              // *bold*, **bold**\n              bold: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // _italic_, __italic__\n              italic: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n                lookbehind: true\n              },\n              // ??cite??\n              cite: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n                lookbehind: true,\n                alias: 'string'\n              },\n              // @code@\n              code: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n                lookbehind: true,\n                alias: 'keyword'\n              },\n              // +inserted+\n              inserted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n                lookbehind: true\n              },\n              // -deleted-\n              deleted: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n                lookbehind: true\n              },\n              // %span%\n              span: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(\n                  /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n                ),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              punctuation: /[*_%?@+\\-^~]+/\n            }\n          },\n          // [alias]http://example.com\n          'link-ref': {\n            pattern: /^\\[[^\\]]+\\]\\S+$/m,\n            inside: {\n              string: {\n                pattern: /(^\\[)[^\\]]+(?=\\])/,\n                lookbehind: true\n              },\n              url: {\n                pattern: /(^\\])\\S+$/,\n                lookbehind: true\n              },\n              punctuation: /[\\[\\]]/\n            }\n          },\n          // \"text\":http://example.com\n          // \"text\":link-ref\n          link: {\n            // eslint-disable-next-line regexp/no-super-linear-backtracking\n            pattern: withModifier(\n              /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n            ),\n            inside: {\n              text: {\n                // eslint-disable-next-line regexp/no-super-linear-backtracking\n                pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n                lookbehind: true\n              },\n              modifier: {\n                pattern: withModifier(/(^\")<MOD>+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[\":]/\n            }\n          },\n          // !image.jpg!\n          // !image.jpg(Title)!:http://example.com\n          image: {\n            pattern: withModifier(\n              /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n                .source\n            ),\n            inside: {\n              source: {\n                pattern: withModifier(\n                  /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n                    .source\n                ),\n                lookbehind: true,\n                alias: 'url'\n              },\n              modifier: {\n                pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n                lookbehind: true,\n                inside: modifierTokens\n              },\n              url: {\n                pattern: /(:).+/,\n                lookbehind: true\n              },\n              punctuation: /[!:]/\n            }\n          },\n          // Footnote[1]\n          footnote: {\n            pattern: /\\b\\[\\d+\\]/,\n            alias: 'comment',\n            inside: {\n              punctuation: /\\[|\\]/\n            }\n          },\n          // CSS(Cascading Style Sheet)\n          acronym: {\n            pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n            inside: {\n              comment: {\n                pattern: /(\\()[^()]+(?=\\))/,\n                lookbehind: true\n              },\n              punctuation: /[()]/\n            }\n          },\n          // Prism(C)\n          mark: {\n            pattern: /\\b\\((?:C|R|TM)\\)/,\n            alias: 'comment',\n            inside: {\n              punctuation: /[()]/\n            }\n          }\n        }\n      }\n    }))\n    var phraseInside = textile['phrase'].inside\n    var nestedPatterns = {\n      inline: phraseInside['inline'],\n      link: phraseInside['link'],\n      image: phraseInside['image'],\n      footnote: phraseInside['footnote'],\n      acronym: phraseInside['acronym'],\n      mark: phraseInside['mark']\n    }\n\n    // Only allow alpha-numeric HTML tags, not XML tags\n    textile.tag.pattern =\n      /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i\n\n    // Allow some nesting\n    var phraseInlineInside = phraseInside['inline'].inside\n    phraseInlineInside['bold'].inside = nestedPatterns\n    phraseInlineInside['italic'].inside = nestedPatterns\n    phraseInlineInside['inserted'].inside = nestedPatterns\n    phraseInlineInside['deleted'].inside = nestedPatterns\n    phraseInlineInside['span'].inside = nestedPatterns\n\n    // Allow some styles inside table cells\n    var phraseTableInside = phraseInside['table'].inside\n    phraseTableInside['inline'] = nestedPatterns['inline']\n    phraseTableInside['link'] = nestedPatterns['link']\n    phraseTableInside['image'] = nestedPatterns['image']\n    phraseTableInside['footnote'] = nestedPatterns['footnote']\n    phraseTableInside['acronym'] = nestedPatterns['acronym']\n    phraseTableInside['mark'] = nestedPatterns['mark']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorRuby from './ruby.js'\nhaml.displayName = 'haml'\nhaml.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function haml(Prism) {\n  Prism.register(refractorRuby)\n  /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n\n  ;(function (Prism) {\n    Prism.languages.haml = {\n      // Multiline stuff should appear before the rest\n\n      'multiline-comment': {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      'multiline-code': [\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        },\n        {\n          pattern:\n            /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n          lookbehind: true,\n          inside: Prism.languages.ruby\n        }\n      ],\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'symbol'\n          }\n        }\n      },\n      markup: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n        lookbehind: true\n      },\n      tag: {\n        // Allows for one nested group of braces\n        pattern:\n          /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              // Lookbehind tries to prevent interpolations from breaking it all\n              // Allows for one nested group of braces\n              pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n              lookbehind: true,\n              inside: Prism.languages.ruby\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n                  lookbehind: true\n                },\n                'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[=(),]/\n              }\n            },\n            {\n              pattern: /\\[[^\\]]+\\]/,\n              inside: Prism.languages.ruby\n            }\n          ],\n          punctuation: /[<>]/\n        }\n      },\n      code: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n        lookbehind: true,\n        inside: Prism.languages.ruby\n      },\n      // Interpolations in plain text\n      interpolation: {\n        pattern: /#\\{[^}]+\\}/,\n        inside: {\n          delimiter: {\n            pattern: /^#\\{|\\}$/,\n            alias: 'punctuation'\n          },\n          ruby: {\n            pattern: /[\\s\\S]+/,\n            inside: Prism.languages.ruby\n          }\n        }\n      },\n      punctuation: {\n        pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n        lookbehind: true\n      }\n    }\n    var filter_pattern =\n      '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+'\n\n    // Non exhaustive list of available filters and associated languages\n    var filters = [\n      'css',\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'erb',\n      'javascript',\n      'less',\n      'markdown',\n      'ruby',\n      'scss',\n      'textile'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('{{filter_name}}', function () {\n              return filter.filter\n            })\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'symbol'\n            },\n            text: {\n              pattern: /[\\s\\S]+/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('haml', 'filter', all_filters)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs', 'mustache']\n\n/** @param {Refractor} Prism */\nexport default function handlebars(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.handlebars = {\n      comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n      delimiter: {\n        pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n        alias: 'punctuation'\n      },\n      string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n      boolean: /\\b(?:false|true)\\b/,\n      block: {\n        pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      brackets: {\n        pattern: /\\[[^\\]]+\\]/,\n        inside: {\n          punctuation: /\\[|\\]/,\n          variable: /[\\s\\S]+/\n        }\n      },\n      punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n      variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n    }\n    Prism.hooks.add('before-tokenize', function (env) {\n      var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'handlebars',\n        handlebarsPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(\n        env,\n        'handlebars'\n      )\n    })\n    Prism.languages.hbs = Prism.languages.handlebars\n    Prism.languages.mustache = Prism.languages.handlebars\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\n\n/** @param {Refractor} Prism */\nexport default function haskell(Prism) {\n  Prism.languages.haskell = {\n    comment: {\n      pattern:\n        /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n      lookbehind: true\n    },\n    char: {\n      pattern:\n        /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin variables only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n    // decimal integers and floating point numbers | octal integers | hexadecimal integers\n    number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n    operator: [\n      {\n        // infix operator\n        pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n        greedy: true\n      },\n      {\n        // function composition\n        pattern: /(\\s)\\.(?=\\s)/,\n        lookbehind: true\n      },\n      // Most of this is needed because of the meaning of a single '.'.\n      // If it stands alone freely, it is the function composition.\n      // It may also be a separator between a module name and an identifier => no\n      // operator. If it comes together with other special characters it is an\n      // operator too.\n      //\n      // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n      /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n    ],\n    // In Haskell, nearly everything is a variable, do not highlight these.\n    hvariable: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    constant: {\n      pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.hs = Prism.languages.haskell\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function haxe(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.haxe = Prism.languages.extend('clike', {\n    string: {\n      // Strings can be multi-line\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    'class-name': [\n      {\n        pattern:\n          /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n        lookbehind: true\n      },\n      // based on naming convention\n      /\\b[A-Z]\\w*/\n    ],\n    // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n    keyword:\n      /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n      greedy: true\n    },\n    operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n  })\n  Prism.languages.insertBefore('haxe', 'string', {\n    'string-interpolation': {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{?|\\}$/,\n              alias: 'punctuation'\n            },\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.haxe\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'class-name', {\n    regex: {\n      pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n      greedy: true,\n      inside: {\n        'regex-flags': /\\b[a-z]+$/,\n        'regex-source': {\n          pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^~\\/|\\/$/\n      }\n    }\n  })\n  Prism.languages.insertBefore('haxe', 'keyword', {\n    preprocessor: {\n      pattern: /#(?:else|elseif|end|if)\\b.*/,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /@:?[\\w.]+/,\n      alias: 'symbol'\n    },\n    reification: {\n      pattern: /\\$(?:\\w+|(?=\\{))/,\n      alias: 'important'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhcl.displayName = 'hcl'\nhcl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function hcl(Prism) {\n  Prism.languages.hcl = {\n    comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    heredoc: {\n      pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n      greedy: true,\n      alias: 'string'\n    },\n    keyword: [\n      {\n        pattern:\n          /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n        inside: {\n          type: {\n            pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      {\n        pattern:\n          /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n        inside: {\n          type: {\n            pattern:\n              /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n            lookbehind: true,\n            alias: 'variable'\n          }\n        }\n      },\n      /[\\w-]+(?=\\s+\\{)/\n    ],\n    property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n    string: {\n      pattern:\n        /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n          lookbehind: true,\n          inside: {\n            type: {\n              pattern:\n                /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n              lookbehind: true,\n              alias: 'variable'\n            },\n            keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n            function: /\\w+(?=\\()/,\n            string: {\n              pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n              greedy: true\n            },\n            number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n            punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n          }\n        }\n      }\n    },\n    number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    punctuation: /[=\\[\\]{}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function hlsl(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.hlsl = Prism.languages.extend('c', {\n    // Regarding keywords and class names:\n    // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n    'class-name': [\n      Prism.languages.c['class-name'],\n      /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n    ],\n    keyword: [\n      // HLSL keyword\n      /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/,\n      // scalar, vector, and matrix types\n      /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n    ],\n    // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n    boolean: /\\b(?:false|true)\\b/\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhoon.displayName = 'hoon'\nhoon.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function hoon(Prism) {\n  Prism.languages.hoon = {\n    comment: {\n      pattern: /::.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'/,\n      greedy: true\n    },\n    constant: /%(?:\\.[ny]|[\\w-]+)/,\n    'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n    function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n    keyword:\n      /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function hpkp(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n   */\n\n  Prism.languages.hpkp = {\n    directive: {\n      pattern:\n        /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhsts.displayName = 'hsts'\nhsts.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function hsts(Prism) {\n  /**\n   * Original by Scott Helme.\n   *\n   * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n   */\n\n  Prism.languages.hsts = {\n    directive: {\n      pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n      alias: 'property'\n    },\n    operator: /=/,\n    punctuation: /;/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njson.displayName = 'json'\njson.aliases = ['webmanifest']\n\n/** @param {Refractor} Prism */\nexport default function json(Prism) {\n  // https://www.json.org/json-en.html\n  Prism.languages.json = {\n    property: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    punctuation: /[{}[\\],]/,\n    operator: /:/,\n    boolean: /\\b(?:false|true)\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.languages.webmanifest = Prism.languages.json\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nuri.displayName = 'uri'\nuri.aliases = ['url']\n\n/** @param {Refractor} Prism */\nexport default function uri(Prism) {\n  // https://tools.ietf.org/html/rfc3986#appendix-A\n\n  Prism.languages.uri = {\n    scheme: {\n      pattern: /^[a-z][a-z0-9+.-]*:/im,\n      greedy: true,\n      inside: {\n        'scheme-delimiter': /:$/\n      }\n    },\n    fragment: {\n      pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'fragment-delimiter': /^#/\n      }\n    },\n    query: {\n      pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n      inside: {\n        'query-delimiter': {\n          pattern: /^\\?/,\n          greedy: true\n        },\n        'pair-delimiter': /[&;]/,\n        pair: {\n          pattern: /^[^=][\\s\\S]*/,\n          inside: {\n            key: /^[^=]+/,\n            value: {\n              pattern: /(^=)[\\s\\S]+/,\n              lookbehind: true\n            }\n          }\n        }\n      }\n    },\n    authority: {\n      pattern: RegExp(\n        /^\\/\\//.source +\n          // [ userinfo \"@\" ]\n          /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source +\n          // host\n          ('(?:' +\n            // IP-literal\n            /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n              .source +\n            '|' +\n            // IPv4address or registered name\n            /[\\w\\-.~!$&'()*+,;=%]*/.source +\n            ')') +\n          // [ \":\" port ]\n          /(?::\\d*)?/.source,\n        'm'\n      ),\n      inside: {\n        'authority-delimiter': /^\\/\\//,\n        'user-info-segment': {\n          pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n          inside: {\n            'user-info-delimiter': /@$/,\n            'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n          }\n        },\n        'port-segment': {\n          pattern: /:\\d*$/,\n          inside: {\n            'port-delimiter': /^:/,\n            port: /^\\d+/\n          }\n        },\n        host: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            'ip-literal': {\n              pattern: /^\\[[\\s\\S]+\\]$/,\n              inside: {\n                'ip-literal-delimiter': /^\\[|\\]$/,\n                'ipv-future': /^v[\\s\\S]+/,\n                'ipv6-address': /^[\\s\\S]+/\n              }\n            },\n            'ipv4-address':\n              /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n          }\n        }\n      }\n    },\n    path: {\n      pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n      inside: {\n        'path-separator': /\\//\n      }\n    }\n  }\n  Prism.languages.url = Prism.languages.uri\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nhttp.displayName = 'http'\nhttp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function http(Prism) {\n  ;(function (Prism) {\n    /**\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function headerValueOf(name) {\n      return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n    }\n    Prism.languages.http = {\n      'request-line': {\n        pattern:\n          /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n        inside: {\n          // HTTP Method\n          method: {\n            pattern: /^[A-Z]+\\b/,\n            alias: 'property'\n          },\n          // Request Target e.g. http://example.com, /path/to/file\n          'request-target': {\n            pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n            lookbehind: true,\n            alias: 'url',\n            inside: Prism.languages.uri\n          },\n          // HTTP Version\n          'http-version': {\n            pattern: /^(\\s)HTTP\\/[\\d.]+/,\n            lookbehind: true,\n            alias: 'property'\n          }\n        }\n      },\n      'response-status': {\n        pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n        inside: {\n          // HTTP Version\n          'http-version': {\n            pattern: /^HTTP\\/[\\d.]+/,\n            alias: 'property'\n          },\n          // Status Code\n          'status-code': {\n            pattern: /^(\\s)\\d+(?=\\s)/,\n            lookbehind: true,\n            alias: 'number'\n          },\n          // Reason Phrase\n          'reason-phrase': {\n            pattern: /^(\\s).+/,\n            lookbehind: true,\n            alias: 'string'\n          }\n        }\n      },\n      header: {\n        pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n        inside: {\n          'header-value': [\n            {\n              pattern: headerValueOf(/Content-Security-Policy/.source),\n              lookbehind: true,\n              alias: ['csp', 'languages-csp'],\n              inside: Prism.languages.csp\n            },\n            {\n              pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n              lookbehind: true,\n              alias: ['hpkp', 'languages-hpkp'],\n              inside: Prism.languages.hpkp\n            },\n            {\n              pattern: headerValueOf(/Strict-Transport-Security/.source),\n              lookbehind: true,\n              alias: ['hsts', 'languages-hsts'],\n              inside: Prism.languages.hsts\n            },\n            {\n              pattern: headerValueOf(/[^:]+/.source),\n              lookbehind: true\n            }\n          ],\n          'header-name': {\n            pattern: /^[^:]+/,\n            alias: 'keyword'\n          },\n          punctuation: /^:/\n        }\n      }\n    }\n\n    // Create a mapping of Content-Type headers to language definitions\n    var langs = Prism.languages\n    var httpLanguages = {\n      'application/javascript': langs.javascript,\n      'application/json': langs.json || langs.javascript,\n      'application/xml': langs.xml,\n      'text/xml': langs.xml,\n      'text/html': langs.html,\n      'text/css': langs.css,\n      'text/plain': langs.plain\n    }\n\n    // Declare which types can also be suffixes\n    var suffixTypes = {\n      'application/json': true,\n      'application/xml': true\n    }\n\n    /**\n     * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n     *\n     * @param {string} contentType\n     * @returns {string}\n     */\n    function getSuffixPattern(contentType) {\n      var suffix = contentType.replace(/^[a-z]+\\//, '')\n      var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n      return '(?:' + contentType + '|' + suffixPattern + ')'\n    }\n\n    // Insert each content type parser that has its associated language\n    // currently loaded.\n    var options\n    for (var contentType in httpLanguages) {\n      if (httpLanguages[contentType]) {\n        options = options || {}\n        var pattern = suffixTypes[contentType]\n          ? getSuffixPattern(contentType)\n          : contentType\n        options[contentType.replace(/\\//g, '-')] = {\n          pattern: RegExp(\n            '(' +\n              /content-type:\\s*/.source +\n              pattern +\n              /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n              ')' +\n              // This is a little interesting:\n              // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n              // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n              // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n              // the body does not start with a [\\w-] character (as headers do).\n              /[^ \\t\\w-][\\s\\S]*/.source,\n            'i'\n          ),\n          lookbehind: true,\n          inside: httpLanguages[contentType]\n        }\n      }\n    }\n    if (options) {\n      Prism.languages.insertBefore('http', 'header', options)\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ichigojam(Prism) {\n  // according to the offical reference (EN)\n  // https://ichigojam.net/IchigoJam-en.html\n  Prism.languages.ichigojam = {\n    comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n    string: {\n      pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n      greedy: true\n    },\n    number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n    keyword:\n      /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n    function:\n      /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n    label: /(?:\\B@\\S+)/,\n    operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n    punctuation: /[\\[,;:()\\]]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nicon.displayName = 'icon'\nicon.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function icon(Prism) {\n  Prism.languages.icon = {\n    comment: /#.*/,\n    string: {\n      pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n      greedy: true\n    },\n    number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n    'builtin-keyword': {\n      pattern:\n        /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n      alias: 'variable'\n    },\n    directive: {\n      pattern: /\\$\\w+/,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n    operator:\n      /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n    punctuation: /[\\[\\](){},;]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nicuMessageFormat.displayName = 'icu-message-format'\nicuMessageFormat.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function icuMessageFormat(Prism) {\n  // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n  // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n\n  ;(function (Prism) {\n    /**\n     * @param {string} source\n     * @param {number} level\n     * @returns {string}\n     */\n    function nested(source, level) {\n      if (level <= 0) {\n        return /[]/.source\n      } else {\n        return source.replace(/<SELF>/g, function () {\n          return nested(source, level - 1)\n        })\n      }\n    }\n    var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n    var escape = {\n      pattern: /''/,\n      greedy: true,\n      alias: 'operator'\n    }\n    var string = {\n      pattern: stringPattern,\n      greedy: true,\n      inside: {\n        escape: escape\n      }\n    }\n    var argumentSource = nested(\n      /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n        /<STR>/g,\n        function () {\n          return stringPattern.source\n        }\n      ),\n      8\n    )\n    var nestedMessage = {\n      pattern: RegExp(argumentSource),\n      inside: {\n        message: {\n          pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n          lookbehind: true,\n          inside: null // see below\n        },\n        'message-delimiter': {\n          pattern: /./,\n          alias: 'punctuation'\n        }\n      }\n    }\n    Prism.languages['icu-message-format'] = {\n      argument: {\n        pattern: RegExp(argumentSource),\n        greedy: true,\n        inside: {\n          content: {\n            pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n            lookbehind: true,\n            inside: {\n              'argument-name': {\n                pattern: /^(\\s*)[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'choice-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n                pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  punctuation: /\\|/,\n                  range: {\n                    pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n                    lookbehind: true,\n                    inside: {\n                      operator: /[<#\\u2264]/,\n                      number: /\\S+/\n                    }\n                  },\n                  rest: null // see below\n                }\n              },\n              'plural-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern:\n                  /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  offset: /^offset:\\s*\\d+/,\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /=\\d+|[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^(?:few|many|one|other|two|zero)$/\n                    }\n                  }\n                }\n              },\n              'select-style': {\n                // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n                pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n                lookbehind: true,\n                inside: {\n                  'nested-message': nestedMessage,\n                  selector: {\n                    pattern: /[^{}:=,\\s]+/,\n                    inside: {\n                      keyword: /^other$/\n                    }\n                  }\n                }\n              },\n              keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n              'arg-type': {\n                pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n                alias: 'keyword'\n              },\n              'arg-skeleton': {\n                pattern: /(,\\s*)::[^{}:=,\\s]+/,\n                lookbehind: true\n              },\n              'arg-style': {\n                pattern:\n                  /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n                lookbehind: true\n              },\n              'arg-style-text': {\n                pattern: RegExp(\n                  /(^\\s*,\\s*(?=\\S))/.source +\n                    nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n                    '$'\n                ),\n                lookbehind: true,\n                alias: 'string'\n              },\n              punctuation: /,/\n            }\n          },\n          'argument-delimiter': {\n            pattern: /./,\n            alias: 'operator'\n          }\n        }\n      },\n      escape: escape,\n      string: string\n    }\n    nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n    Prism.languages['icu-message-format'].argument.inside.content.inside[\n      'choice-style'\n    ].inside.rest = Prism.languages['icu-message-format']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorHaskell from './haskell.js'\nidris.displayName = 'idris'\nidris.aliases = ['idr']\n\n/** @param {Refractor} Prism */\nexport default function idris(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.idris = Prism.languages.extend('haskell', {\n    comment: {\n      pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n    },\n    keyword:\n      /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n    builtin: undefined\n  })\n  Prism.languages.insertBefore('idris', 'keyword', {\n    'import-statement': {\n      pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    }\n  })\n  Prism.languages.idr = Prism.languages.idris\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\n\n/** @param {Refractor} Prism */\nexport default function ignore(Prism) {\n  ;(function (Prism) {\n    Prism.languages.ignore = {\n      // https://git-scm.com/docs/gitignore\n      comment: /^#.*/m,\n      entry: {\n        pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n        alias: 'string',\n        inside: {\n          operator: /^!|\\*\\*?|\\?/,\n          regex: {\n            pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n            lookbehind: true\n          },\n          punctuation: /\\//\n        }\n      }\n    }\n    Prism.languages.gitignore = Prism.languages.ignore\n    Prism.languages.hgignore = Prism.languages.ignore\n    Prism.languages.npmignore = Prism.languages.ignore\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ninform7.displayName = 'inform7'\ninform7.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function inform7(Prism) {\n  Prism.languages.inform7 = {\n    string: {\n      pattern: /\"[^\"]*\"/,\n      inside: {\n        substitution: {\n          pattern: /\\[[^\\[\\]]+\\]/,\n          inside: {\n            delimiter: {\n              pattern: /\\[|\\]/,\n              alias: 'punctuation'\n            }\n            // See rest below\n          }\n        }\n      }\n    },\n    comment: {\n      pattern: /\\[[^\\[\\]]+\\]/,\n      greedy: true\n    },\n    title: {\n      pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n      alias: 'important'\n    },\n    number: {\n      pattern:\n        /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n      lookbehind: true\n    },\n    verb: {\n      pattern:\n        /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    keyword: {\n      pattern:\n        /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n      lookbehind: true\n    },\n    property: {\n      pattern:\n        /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    position: {\n      pattern:\n        /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    type: {\n      pattern:\n        /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    punctuation: /[.,:;(){}]/\n  }\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n    Prism.languages.inform7\n  // We don't want the remaining text in the substitution to be highlighted as the string.\n  Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n    pattern: /\\S(?:\\s*\\S)*/,\n    alias: 'comment'\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nini.displayName = 'ini'\nini.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ini(Prism) {\n  Prism.languages.ini = {\n    /**\n     * The component mimics the behavior of the Win32 API parser.\n     *\n     * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n     */\n\n    comment: {\n      pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n      lookbehind: true\n    },\n    section: {\n      pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n      lookbehind: true,\n      inside: {\n        'section-name': {\n          pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n          lookbehind: true,\n          alias: 'selector'\n        },\n        punctuation: /\\[|\\]/\n      }\n    },\n    key: {\n      pattern:\n        /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    value: {\n      pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n      lookbehind: true,\n      alias: 'attr-value',\n      inside: {\n        'inner-value': {\n          pattern: /^(\"|').+(?=\\1$)/,\n          lookbehind: true\n        }\n      }\n    },\n    punctuation: /=/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nio.displayName = 'io'\nio.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function io(Prism) {\n  Prism.languages.io = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'triple-quoted-string': {\n      pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n    builtin:\n      /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n    boolean: /\\b(?:false|nil|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n    operator:\n      /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nj.displayName = 'j'\nj.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function j(Prism) {\n  Prism.languages.j = {\n    comment: {\n      pattern: /\\bNB\\..*/,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n    verb: {\n      // Negative look-ahead prevents bad highlighting\n      // of ^: ;. =. =: !. !:\n      pattern:\n        /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n    adverb: {\n      pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n      alias: 'builtin'\n    },\n    operator: /[=a][.:]|_\\./,\n    conjunction: {\n      pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n      alias: 'variable'\n    },\n    punctuation: /[()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\njava.displayName = 'java'\njava.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function java(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/\n\n    // full package (optional) + parent classes (optional)\n    var classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source\n\n    // based on the java naming conventions\n    var className = {\n      pattern: RegExp(\n        /(^|[^\\w.])/.source +\n          classNamePrefix +\n          /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source\n      ),\n      lookbehind: true,\n      inside: {\n        namespace: {\n          pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /\\./\n      }\n    }\n    Prism.languages.java = Prism.languages.extend('clike', {\n      string: {\n        pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        lookbehind: true,\n        greedy: true\n      },\n      'class-name': [\n        className,\n        {\n          // variables, parameters, and constructor references\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            /(^|[^\\w.])/.source +\n              classNamePrefix +\n              /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/\n                .source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        },\n        {\n          // class names based on keyword\n          // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n          pattern: RegExp(\n            /(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/\n              .source +\n              classNamePrefix +\n              /[A-Z]\\w*\\b/.source\n          ),\n          lookbehind: true,\n          inside: className.inside\n        }\n      ],\n      keyword: keywords,\n      function: [\n        Prism.languages.clike.function,\n        {\n          pattern: /(::\\s*)[a-z_]\\w*/,\n          lookbehind: true\n        }\n      ],\n      number:\n        /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n      operator: {\n        pattern:\n          /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n        lookbehind: true\n      },\n      constant: /\\b[A-Z][A-Z_\\d]+\\b/\n    })\n    Prism.languages.insertBefore('java', 'string', {\n      'triple-quoted-string': {\n        // http://openjdk.java.net/jeps/355#Description\n        pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n        greedy: true,\n        alias: 'string'\n      },\n      char: {\n        pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('java', 'class-name', {\n      annotation: {\n        pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      generics: {\n        pattern:\n          /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n        inside: {\n          'class-name': className,\n          keyword: keywords,\n          punctuation: /[<>(),.:]/,\n          operator: /[?&|]/\n        }\n      },\n      import: [\n        {\n          pattern: RegExp(\n            /(\\bimport\\s+)/.source +\n              classNamePrefix +\n              /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source\n          ),\n          lookbehind: true,\n          inside: {\n            namespace: className.inside.namespace,\n            punctuation: /\\./,\n            operator: /\\*/,\n            'class-name': /\\w+/\n          }\n        },\n        {\n          pattern: RegExp(\n            /(\\bimport\\s+static\\s+)/.source +\n              classNamePrefix +\n              /(?:\\w+|\\*)(?=\\s*;)/.source\n          ),\n          lookbehind: true,\n          alias: 'static',\n          inside: {\n            namespace: className.inside.namespace,\n            static: /\\b\\w+$/,\n            punctuation: /\\./,\n            operator: /\\*/,\n            'class-name': /\\w+/\n          }\n        }\n      ],\n      namespace: {\n        pattern: RegExp(\n          /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n            /<keyword>/g,\n            function () {\n              return keywords.source\n            }\n          )\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nphp.displayName = 'php'\nphp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function php(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  /**\n   * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n   * Modified by Miles Johnson: http://milesj.me\n   * Rewritten by Tom Pavelec\n   *\n   * Supports PHP 5.3 - 8.0\n   */\n  ;(function (Prism) {\n    var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n    var constant = [\n      {\n        pattern: /\\b(?:false|true)\\b/i,\n        alias: 'boolean'\n      },\n      {\n        pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n        greedy: true,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n        greedy: true,\n        lookbehind: true\n      },\n      /\\b(?:null)\\b/i,\n      /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n    ]\n    var number =\n      /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n    var operator =\n      /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n    var punctuation = /[{}\\[\\](),:;]/\n    Prism.languages.php = {\n      delimiter: {\n        pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n        alias: 'important'\n      },\n      comment: comment,\n      variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n      package: {\n        pattern:\n          /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      'class-name-definition': {\n        pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'function-definition': {\n        pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n          alias: 'type-casting',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|never|object|self|static|string|void)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n          alias: 'type-declaration',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          // yield from\n          pattern: /(\\byield\\s+)from\\b/i,\n          lookbehind: true\n        },\n        // `class` is always a keyword unlike other keywords\n        /\\bclass\\b/i,\n        {\n          // https://www.php.net/manual/en/reserved.keywords.php\n          //\n          // keywords cannot be preceded by \"->\"\n          // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n          pattern:\n            /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n          lookbehind: true\n        }\n      ],\n      'argument-name': {\n        pattern: /([(,]\\s*)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n          greedy: true\n        },\n        {\n          pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern:\n            /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: 'class-name-fully-qualified',\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-declaration',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-declaration'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n          alias: 'static-context',\n          greedy: true\n        },\n        {\n          pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n          alias: ['class-name-fully-qualified', 'static-context'],\n          greedy: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n          alias: 'type-hint',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n          alias: ['class-name-fully-qualified', 'type-hint'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n          alias: 'return-type',\n          greedy: true,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n          alias: ['class-name-fully-qualified', 'return-type'],\n          greedy: true,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\\\/\n          }\n        }\n      ],\n      constant: constant,\n      function: {\n        pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\\\/\n        }\n      },\n      property: {\n        pattern: /(->\\s*)\\w+/,\n        lookbehind: true\n      },\n      number: number,\n      operator: operator,\n      punctuation: punctuation\n    }\n    var string_interpolation = {\n      pattern:\n        /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n      lookbehind: true,\n      inside: Prism.languages.php\n    }\n    var string = [\n      {\n        pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n        alias: 'nowdoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<'?|[';]$/\n            }\n          }\n        }\n      },\n      {\n        pattern:\n          /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n        alias: 'heredoc-string',\n        greedy: true,\n        inside: {\n          delimiter: {\n            pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n            alias: 'symbol',\n            inside: {\n              punctuation: /^<<<\"?|[\";]$/\n            }\n          },\n          interpolation: string_interpolation\n        }\n      },\n      {\n        pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n        alias: 'backtick-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n        alias: 'single-quoted-string',\n        greedy: true\n      },\n      {\n        pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n        alias: 'double-quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: string_interpolation\n        }\n      }\n    ]\n    Prism.languages.insertBefore('php', 'variable', {\n      string: string,\n      attribute: {\n        pattern:\n          /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n        greedy: true,\n        inside: {\n          'attribute-content': {\n            pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n            lookbehind: true,\n            // inside can appear subset of php\n            inside: {\n              comment: comment,\n              string: string,\n              'attribute-class-name': [\n                {\n                  pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n                  alias: 'class-name',\n                  greedy: true,\n                  lookbehind: true\n                },\n                {\n                  pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n                  alias: ['class-name', 'class-name-fully-qualified'],\n                  greedy: true,\n                  lookbehind: true,\n                  inside: {\n                    punctuation: /\\\\/\n                  }\n                }\n              ],\n              constant: constant,\n              number: number,\n              operator: operator,\n              punctuation: punctuation\n            }\n          },\n          delimiter: {\n            pattern: /^#\\[|\\]$/,\n            alias: 'punctuation'\n          }\n        }\n      }\n    })\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (!/<\\?/.test(env.code)) {\n        return\n      }\n      var phpPattern =\n        /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'php',\n        phpPattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function javadoclike(Prism) {\n  ;(function (Prism) {\n    var javaDocLike = (Prism.languages.javadoclike = {\n      parameter: {\n        pattern:\n          /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n        lookbehind: true\n      },\n      keyword: {\n        // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n        // @word, {@word}\n        pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n        lookbehind: true\n      },\n      punctuation: /[{}]/\n    })\n\n    /**\n     * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n     *\n     * @param {string} lang the language add doc comment support to.\n     * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n     */\n    function docCommentSupport(lang, callback) {\n      var tokenName = 'doc-comment'\n      var grammar = Prism.languages[lang]\n      if (!grammar) {\n        return\n      }\n      var token = grammar[tokenName]\n      if (!token) {\n        // add doc comment: /** */\n        var definition = {}\n        definition[tokenName] = {\n          pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true,\n          alias: 'comment'\n        }\n        grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n        token = grammar[tokenName]\n      }\n      if (token instanceof RegExp) {\n        // convert regex to object\n        token = grammar[tokenName] = {\n          pattern: token\n        }\n      }\n      if (Array.isArray(token)) {\n        for (var i = 0, l = token.length; i < l; i++) {\n          if (token[i] instanceof RegExp) {\n            token[i] = {\n              pattern: token[i]\n            }\n          }\n          callback(token[i])\n        }\n      } else {\n        callback(token)\n      }\n    }\n\n    /**\n     * Adds doc-comment support to the given languages for the given documentation language.\n     *\n     * @param {string[]|string} languages\n     * @param {Object} docLanguage\n     */\n    function addSupport(languages, docLanguage) {\n      if (typeof languages === 'string') {\n        languages = [languages]\n      }\n      languages.forEach(function (lang) {\n        docCommentSupport(lang, function (pattern) {\n          if (!pattern.inside) {\n            pattern.inside = {}\n          }\n          pattern.inside.rest = docLanguage\n        })\n      })\n    }\n    Object.defineProperty(javaDocLike, 'addSupport', {\n      value: addSupport\n    })\n    javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJava from './java.js'\nscala.displayName = 'scala'\nscala.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function scala(Prism) {\n  Prism.register(refractorJava)\n  Prism.languages.scala = Prism.languages.extend('java', {\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /<-|=>|\\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\\b/,\n    number:\n      /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n    builtin:\n      /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n    symbol: /'[^\\d\\s\\\\]\\w*/\n  })\n  Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n    'string-interpolation': {\n      pattern:\n        /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n      greedy: true,\n      inside: {\n        id: {\n          pattern: /^\\w+/,\n          greedy: true,\n          alias: 'function'\n        },\n        escape: {\n          pattern: /\\\\\\$\"|\\$[$\"]/,\n          greedy: true,\n          alias: 'symbol'\n        },\n        interpolation: {\n          pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n          greedy: true,\n          inside: {\n            punctuation: /^\\$\\{?|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.scala\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  delete Prism.languages.scala['class-name']\n  delete Prism.languages.scala['function']\n  delete Prism.languages.scala['constant']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJava from './java.js'\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorMarkup from './markup.js'\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function javadoc(Prism) {\n  Prism.register(refractorJava)\n  Prism.register(refractorJavadoclike)\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n    var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n    var reference =\n      /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n        /<mem>/g,\n        function () {\n          return memberReference\n        }\n      )\n    Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n    Prism.languages.insertBefore('javadoc', 'keyword', {\n      reference: {\n        pattern: RegExp(\n          /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n            .source +\n            '(?:' +\n            reference +\n            ')'\n        ),\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n            lookbehind: true\n          },\n          field: {\n            pattern: /(#\\s*)\\w+/,\n            lookbehind: true\n          },\n          namespace: {\n            pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          'class-name': /\\b[A-Z]\\w*/,\n          keyword: Prism.languages.java.keyword,\n          punctuation: /[#()[\\],.]/\n        }\n      },\n      'class-name': {\n        // @param <T> the first generic type parameter\n        pattern: /(@param\\s+)<[A-Z]\\w*>/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[.<>]/\n        }\n      },\n      'code-section': [\n        {\n          pattern:\n            /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n          lookbehind: true,\n          inside: {\n            code: {\n              // there can't be any HTML inside of {@code} tags\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: Prism.languages.java,\n              alias: 'language-java'\n            }\n          }\n        },\n        {\n          pattern:\n            /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n          lookbehind: true,\n          inside: {\n            line: {\n              pattern: codeLinePattern,\n              lookbehind: true,\n              inside: {\n                // highlight HTML tags and entities\n                tag: Prism.languages.markup.tag,\n                entity: Prism.languages.markup.entity,\n                code: {\n                  // everything else is Java code\n                  pattern: /.+/,\n                  inside: Prism.languages.java,\n                  alias: 'language-java'\n                }\n              }\n            }\n          }\n        }\n      ],\n      tag: Prism.languages.markup.tag,\n      entity: Prism.languages.markup.entity\n    })\n    Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function javastacktrace(Prism) {\n  // Specification:\n  // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n\n  Prism.languages.javastacktrace = {\n    // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n    // Caused by: com.example.myproject.MyProjectServletException\n    // Caused by: MidLevelException: LowLevelException\n    // Suppressed: Resource$CloseFailException: Resource ID = 0\n    summary: {\n      pattern:\n        /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern:\n            /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n          lookbehind: true\n        },\n        // the current thread if the summary starts with 'Exception in thread'\n        string: {\n          pattern: /^(\\s*)\"[^\"]*\"/,\n          lookbehind: true\n        },\n        exceptions: {\n          pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n          lookbehind: true,\n          inside: {\n            'class-name': /[\\w$]+$/,\n            namespace: /\\b[a-z]\\w*\\b/,\n            punctuation: /\\./\n          }\n        },\n        message: {\n          pattern: /(:\\s*)\\S.*/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        punctuation: /:/\n      }\n    },\n    // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n    // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n    // at java.base/java.lang.Class.forName0(Native Method)\n    // at Util.<init>(Unknown Source)\n    // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n    // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n    // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n    // at MyClass.mash(MyClass.java:9)\n    //\n    // More information:\n    // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n    //\n    // A valid Java module name is defined as:\n    //   \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n    // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n    //\n    // A Java module version is defined by this class:\n    // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n    // This is the implementation of the `parse` method in JDK13:\n    // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n    // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n    'stack-frame': {\n      pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n      lookbehind: true,\n      inside: {\n        keyword: {\n          pattern: /^(\\s*)at(?= )/,\n          lookbehind: true\n        },\n        source: [\n          // (Main.java:15)\n          // (Main.scala:15)\n          {\n            pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n            lookbehind: true,\n            inside: {\n              file: /^\\w+\\.\\w+/,\n              punctuation: /:/,\n              'line-number': {\n                pattern: /\\b\\d+\\b/,\n                alias: 'number'\n              }\n            }\n          },\n          // (Unknown Source)\n          // (Native Method)\n          // (...something...)\n          {\n            pattern: /(\\()[^()]*(?=\\))/,\n            lookbehind: true,\n            inside: {\n              keyword: /^(?:Native Method|Unknown Source)$/\n            }\n          }\n        ],\n        'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n        function: /(?:<init>|[\\w$]+)(?=\\()/,\n        'class-loader': {\n          pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        module: {\n          pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n          lookbehind: true,\n          inside: {\n            version: {\n              pattern: /(@)[\\s\\S]+/,\n              lookbehind: true,\n              alias: 'number'\n            },\n            punctuation: /[@.]/\n          }\n        },\n        namespace: {\n          pattern: /(?:\\b[a-z]\\w*\\.)+/,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()/.]/\n      }\n    },\n    // ... 32 more\n    // ... 32 common frames omitted\n    more: {\n      pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\.{3}/,\n        number: /\\d+/,\n        keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n      }\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njexl.displayName = 'jexl'\njexl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jexl(Prism) {\n  Prism.languages.jexl = {\n    string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n    transform: {\n      pattern:\n        /(\\|\\s*)[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n      alias: 'function',\n      lookbehind: true\n    },\n    function:\n      /[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n    number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n    operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: /\\bin\\b/,\n    punctuation: /[{}[\\](),.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\njolie.displayName = 'jolie'\njolie.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jolie(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.jolie = Prism.languages.extend('clike', {\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n    function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n    operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n    punctuation: /[()[\\]{},;.:]/,\n    builtin:\n      /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n  })\n  Prism.languages.insertBefore('jolie', 'keyword', {\n    aggregates: {\n      pattern:\n        /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n      lookbehind: true,\n      inside: {\n        keyword: /\\bwith\\b/,\n        'class-name': /\\w+/,\n        punctuation: /,/\n      }\n    },\n    redirects: {\n      pattern:\n        /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n      lookbehind: true,\n      inside: {\n        punctuation: /,/,\n        'class-name': /\\w+/,\n        operator: /=>/\n      }\n    },\n    property: {\n      pattern:\n        /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njq.displayName = 'jq'\njq.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jq(Prism) {\n  ;(function (Prism) {\n    var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var string = RegExp(\n      /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n        /__/g,\n        function () {\n          return interpolation\n        }\n      )\n    )\n    var stringInterpolation = {\n      interpolation: {\n        pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n        lookbehind: true,\n        inside: {\n          content: {\n            pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          punctuation: /^\\\\\\(|\\)$/\n        }\n      }\n    }\n    var jq = (Prism.languages.jq = {\n      comment: /#.*/,\n      property: {\n        pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      string: {\n        pattern: string,\n        lookbehind: true,\n        greedy: true,\n        inside: stringInterpolation\n      },\n      function: {\n        pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n        lookbehind: true\n      },\n      variable: /\\B\\$\\w+/,\n      'property-literal': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n        alias: 'property'\n      },\n      keyword:\n        /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n      operator: [\n        {\n          pattern: /\\|=?/,\n          alias: 'pipe'\n        },\n        /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n      ],\n      'c-style-function': {\n        pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n        alias: 'function'\n      },\n      punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n      dot: {\n        pattern: /\\./,\n        alias: 'important'\n      }\n    })\n    stringInterpolation.interpolation.inside.content.inside = jq\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\njsTemplates.displayName = 'js-templates'\njsTemplates.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsTemplates(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    var templateString = Prism.languages.javascript['template-string']\n\n    // see the pattern in prism-javascript.js\n    var templateLiteralPattern = templateString.pattern.source\n    var interpolationObject = templateString.inside['interpolation']\n    var interpolationPunctuationObject =\n      interpolationObject.inside['interpolation-punctuation']\n    var interpolationPattern = interpolationObject.pattern.source\n\n    /**\n     * Creates a new pattern to match a template string with a special tag.\n     *\n     * This will return `undefined` if there is no grammar with the given language id.\n     *\n     * @param {string} language The language id of the embedded language. E.g. `markdown`.\n     * @param {string} tag The regex pattern to match the tag.\n     * @returns {object | undefined}\n     * @example\n     * createTemplate('css', /\\bcss/.source);\n     */\n    function createTemplate(language, tag) {\n      if (!Prism.languages[language]) {\n        return undefined\n      }\n      return {\n        pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'template-punctuation': {\n            pattern: /^`|`$/,\n            alias: 'string'\n          },\n          'embedded-code': {\n            pattern: /[\\s\\S]+/,\n            alias: language\n          }\n        }\n      }\n    }\n    Prism.languages.javascript['template-string'] = [\n      // styled-jsx:\n      //   css`a { color: #25F; }`\n      // styled-components:\n      //   styled.h1`color: red;`\n      createTemplate(\n        'css',\n        /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n          .source\n      ),\n      // html`<p></p>`\n      // div.innerHTML = `<p></p>`\n      createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source),\n      // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n      createTemplate('svg', /\\bsvg/.source),\n      // md`# h1`, markdown`## h2`\n      createTemplate('markdown', /\\b(?:markdown|md)/.source),\n      // gql`...`, graphql`...`, graphql.experimental`...`\n      createTemplate(\n        'graphql',\n        /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n      ),\n      // sql`...`\n      createTemplate('sql', /\\bsql/.source),\n      // vanilla template string\n      templateString\n    ].filter(Boolean)\n\n    /**\n     * Returns a specific placeholder literal for the given language.\n     *\n     * @param {number} counter\n     * @param {string} language\n     * @returns {string}\n     */\n    function getPlaceholder(counter, language) {\n      return '___' + language.toUpperCase() + '_' + counter + '___'\n    }\n\n    /**\n     * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n     *\n     * @param {string} code\n     * @param {any} grammar\n     * @param {string} language\n     * @returns {(string|Token)[]}\n     */\n    function tokenizeWithHooks(code, grammar, language) {\n      var env = {\n        code: code,\n        grammar: grammar,\n        language: language\n      }\n      Prism.hooks.run('before-tokenize', env)\n      env.tokens = Prism.tokenize(env.code, env.grammar)\n      Prism.hooks.run('after-tokenize', env)\n      return env.tokens\n    }\n\n    /**\n     * Returns the token of the given JavaScript interpolation expression.\n     *\n     * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n     * @returns {Token}\n     */\n    function tokenizeInterpolationExpression(expression) {\n      var tempGrammar = {}\n      tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n\n      /** @type {Array} */\n      var tokens = Prism.tokenize(expression, tempGrammar)\n      if (tokens.length === 3) {\n        /**\n         * The token array will look like this\n         * [\n         *     [\"interpolation-punctuation\", \"${\"]\n         *     \"...\" // JavaScript expression of the interpolation\n         *     [\"interpolation-punctuation\", \"}\"]\n         * ]\n         */\n\n        var args = [1, 1]\n        args.push.apply(\n          args,\n          tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n        )\n        tokens.splice.apply(tokens, args)\n      }\n      return new Prism.Token(\n        'interpolation',\n        tokens,\n        interpolationObject.alias,\n        expression\n      )\n    }\n\n    /**\n     * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n     *\n     * This function has 3 phases:\n     *\n     * 1. Replace all JavaScript interpolation expression with a placeholder.\n     *    The placeholder will have the syntax of a identify of the target language.\n     * 2. Tokenize the code with placeholders.\n     * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n     *    The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n     *    tokenized as two tokens by the grammar of the embedded language.\n     *\n     * @param {string} code\n     * @param {object} grammar\n     * @param {string} language\n     * @returns {Token}\n     */\n    function tokenizeEmbedded(code, grammar, language) {\n      // 1. First filter out all interpolations\n\n      // because they might be escaped, we need a lookbehind, so we use Prism\n      /** @type {(Token|string)[]} */\n      var _tokens = Prism.tokenize(code, {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          lookbehind: true\n        }\n      })\n\n      // replace all interpolations with a placeholder which is not in the code already\n      var placeholderCounter = 0\n      /** @type {Object<string, string>} */\n      var placeholderMap = {}\n      var embeddedCode = _tokens\n        .map(function (token) {\n          if (typeof token === 'string') {\n            return token\n          } else {\n            var interpolationExpression = token.content\n            var placeholder\n            while (\n              code.indexOf(\n                (placeholder = getPlaceholder(placeholderCounter++, language))\n              ) !== -1\n            ) {\n              /* noop */\n            }\n            placeholderMap[placeholder] = interpolationExpression\n            return placeholder\n          }\n        })\n        .join('')\n\n      // 2. Tokenize the embedded code\n\n      var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language)\n\n      // 3. Re-insert the interpolation\n\n      var placeholders = Object.keys(placeholderMap)\n      placeholderCounter = 0\n\n      /**\n       *\n       * @param {(Token|string)[]} tokens\n       * @returns {void}\n       */\n      function walkTokens(tokens) {\n        for (var i = 0; i < tokens.length; i++) {\n          if (placeholderCounter >= placeholders.length) {\n            return\n          }\n          var token = tokens[i]\n          if (typeof token === 'string' || typeof token.content === 'string') {\n            var placeholder = placeholders[placeholderCounter]\n            var s =\n              typeof token === 'string'\n                ? token\n                : /** @type {string} */ token.content\n            var index = s.indexOf(placeholder)\n            if (index !== -1) {\n              ++placeholderCounter\n              var before = s.substring(0, index)\n              var middle = tokenizeInterpolationExpression(\n                placeholderMap[placeholder]\n              )\n              var after = s.substring(index + placeholder.length)\n              var replacement = []\n              if (before) {\n                replacement.push(before)\n              }\n              replacement.push(middle)\n              if (after) {\n                var afterTokens = [after]\n                walkTokens(afterTokens)\n                replacement.push.apply(replacement, afterTokens)\n              }\n              if (typeof token === 'string') {\n                tokens.splice.apply(tokens, [i, 1].concat(replacement))\n                i += replacement.length - 1\n              } else {\n                token.content = replacement\n              }\n            }\n          } else {\n            var content = token.content\n            if (Array.isArray(content)) {\n              walkTokens(content)\n            } else {\n              walkTokens([content])\n            }\n          }\n        }\n      }\n      walkTokens(embeddedTokens)\n      return new Prism.Token(\n        language,\n        embeddedTokens,\n        'language-' + language,\n        code\n      )\n    }\n\n    /**\n     * The languages for which JS templating will handle tagged template literals.\n     *\n     * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n     */\n    var supportedLanguages = {\n      javascript: true,\n      js: true,\n      typescript: true,\n      ts: true,\n      jsx: true,\n      tsx: true\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (!(env.language in supportedLanguages)) {\n        return\n      }\n\n      /**\n       * Finds and tokenizes all template strings with an embedded languages.\n       *\n       * @param {(Token | string)[]} tokens\n       * @returns {void}\n       */\n      function findTemplateStrings(tokens) {\n        for (var i = 0, l = tokens.length; i < l; i++) {\n          var token = tokens[i]\n          if (typeof token === 'string') {\n            continue\n          }\n          var content = token.content\n          if (!Array.isArray(content)) {\n            if (typeof content !== 'string') {\n              findTemplateStrings([content])\n            }\n            continue\n          }\n          if (token.type === 'template-string') {\n            /**\n             * A JavaScript template-string token will look like this:\n             *\n             * [\"template-string\", [\n             *     [\"template-punctuation\", \"`\"],\n             *     (\n             *         An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n             *         or\n             *         [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n             *                                  It also has an alias which is the language of the embedded code.\n             *     ),\n             *     [\"template-punctuation\", \"`\"]\n             * ]]\n             */\n\n            var embedded = content[1]\n            if (\n              content.length === 3 &&\n              typeof embedded !== 'string' &&\n              embedded.type === 'embedded-code'\n            ) {\n              // get string content\n              var code = stringContent(embedded)\n              var alias = embedded.alias\n              var language = Array.isArray(alias) ? alias[0] : alias\n              var grammar = Prism.languages[language]\n              if (!grammar) {\n                // the embedded language isn't registered.\n                continue\n              }\n              content[1] = tokenizeEmbedded(code, grammar, language)\n            }\n          } else {\n            findTemplateStrings(content)\n          }\n        }\n      }\n      findTemplateStrings(env.tokens)\n    })\n\n    /**\n     * Returns the string content of a token or token stream.\n     *\n     * @param {string | Token | (string | Token)[]} value\n     * @returns {string}\n     */\n    function stringContent(value) {\n      if (typeof value === 'string') {\n        return value\n      } else if (Array.isArray(value)) {\n        return value.map(stringContent).join('')\n      } else {\n        return stringContent(value.content)\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\n\n/** @param {Refractor} Prism */\nexport default function typescript(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    Prism.languages.typescript = Prism.languages.extend('javascript', {\n      'class-name': {\n        pattern:\n          /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n      },\n      builtin:\n        /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n    })\n\n    // The keywords TypeScript adds to JavaScript\n    Prism.languages.typescript.keyword.push(\n      /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n      // keywords that have to be followed by an identifier\n      /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n      // This is for `import type *, {}`\n      /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n    )\n\n    // doesn't work with TS because TS is too complex\n    delete Prism.languages.typescript['parameter']\n    delete Prism.languages.typescript['literal-property']\n\n    // a version of typescript specifically for highlighting types\n    var typeInside = Prism.languages.extend('typescript', {})\n    delete typeInside['class-name']\n    Prism.languages.typescript['class-name'].inside = typeInside\n    Prism.languages.insertBefore('typescript', 'function', {\n      decorator: {\n        pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n        inside: {\n          at: {\n            pattern: /^@/,\n            alias: 'operator'\n          },\n          function: /^[\\s\\S]+/\n        }\n      },\n      'generic-function': {\n        // e.g. foo<T extends \"bar\" | \"baz\">( ...\n        pattern:\n          /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n        greedy: true,\n        inside: {\n          function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n          generic: {\n            pattern: /<[\\s\\S]+/,\n            // everything after the first <\n            alias: 'class-name',\n            inside: typeInside\n          }\n        }\n      }\n    })\n    Prism.languages.ts = Prism.languages.typescript\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorJavascript from './javascript.js'\nimport refractorTypescript from './typescript.js'\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsdoc(Prism) {\n  Prism.register(refractorJavadoclike)\n  Prism.register(refractorJavascript)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var javascript = Prism.languages.javascript\n    var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n    var parameterPrefix =\n      '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n    Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        // @param {string} foo - foo bar\n        pattern: RegExp(\n          parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    })\n    Prism.languages.insertBefore('jsdoc', 'keyword', {\n      'optional-parameter': {\n        // @param {string} [baz.foo=\"bar\"] foo bar\n        pattern: RegExp(\n          parameterPrefix +\n            /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n        ),\n        lookbehind: true,\n        inside: {\n          parameter: {\n            pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n            lookbehind: true,\n            inside: {\n              punctuation: /\\./\n            }\n          },\n          code: {\n            pattern: /(=)[\\s\\S]*(?=\\]$)/,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          },\n          punctuation: /[=[\\]]/\n        }\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n              /<TYPE>/g,\n              function () {\n                return type\n              }\n            )\n          ),\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        {\n          pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n          lookbehind: true,\n          inside: {\n            string: javascript.string,\n            number: javascript.number,\n            boolean: javascript.boolean,\n            keyword: Prism.languages.typescript.keyword,\n            operator: /=>|\\.\\.\\.|[&|?:*]/,\n            punctuation: /[.,;=<>{}()[\\]]/\n          }\n        }\n      ],\n      example: {\n        pattern:\n          /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n        lookbehind: true,\n        inside: {\n          code: {\n            pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n            lookbehind: true,\n            inside: javascript,\n            alias: 'language-javascript'\n          }\n        }\n      }\n    })\n    Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\n\n/** @param {Refractor} Prism */\nexport default function n4js(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.languages.n4js = Prism.languages.extend('javascript', {\n    // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n    keyword:\n      /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n  })\n  Prism.languages.insertBefore('n4js', 'constant', {\n    // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n    annotation: {\n      pattern: /@+\\w+/,\n      alias: 'operator'\n    }\n  })\n  Prism.languages.n4jsd = Prism.languages.n4js\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\njsExtras.displayName = 'js-extras'\njsExtras.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsExtras(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    Prism.languages.insertBefore('javascript', 'function-variable', {\n      'method-variable': {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' +\n            Prism.languages.javascript['function-variable'].pattern.source\n        ),\n        lookbehind: true,\n        alias: ['function-variable', 'method', 'function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'function', {\n      method: {\n        pattern: RegExp(\n          '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n        ),\n        lookbehind: true,\n        alias: ['function', 'property-access']\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'constant', {\n      'known-class-name': [\n        {\n          // standard built-ins\n          // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n          pattern:\n            /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n          alias: 'class-name'\n        },\n        {\n          // errors\n          pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n          alias: 'class-name'\n        }\n      ]\n    })\n\n    /**\n     * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n     *\n     * @param {string} source\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function withId(source, flags) {\n      return RegExp(\n        source.replace(/<ID>/g, function () {\n          return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n        }),\n        flags\n      )\n    }\n    Prism.languages.insertBefore('javascript', 'keyword', {\n      imports: {\n        // https://tc39.es/ecma262/#sec-imports\n        pattern: withId(\n          /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      exports: {\n        // https://tc39.es/ecma262/#sec-exports\n        pattern: withId(\n          /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n            .source\n        ),\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      }\n    })\n    Prism.languages.javascript['keyword'].unshift(\n      {\n        pattern: /\\b(?:as|default|export|from|import)\\b/,\n        alias: 'module'\n      },\n      {\n        pattern:\n          /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n        alias: 'control-flow'\n      },\n      {\n        pattern: /\\bnull\\b/,\n        alias: ['null', 'nil']\n      },\n      {\n        pattern: /\\bundefined\\b/,\n        alias: 'nil'\n      }\n    )\n    Prism.languages.insertBefore('javascript', 'operator', {\n      spread: {\n        pattern: /\\.{3}/,\n        alias: 'operator'\n      },\n      arrow: {\n        pattern: /=>/,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.insertBefore('javascript', 'punctuation', {\n      'property-access': {\n        pattern: withId(/(\\.\\s*)#?<ID>/.source),\n        lookbehind: true\n      },\n      'maybe-class-name': {\n        pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n        lookbehind: true\n      },\n      dom: {\n        // this contains only a few commonly used DOM variables\n        pattern:\n          /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n        alias: 'variable'\n      },\n      console: {\n        pattern: /\\bconsole(?=\\s*\\.)/,\n        alias: 'class-name'\n      }\n    })\n\n    // add 'maybe-class-name' to tokens which might be a class name\n    var maybeClassNameTokens = [\n      'function',\n      'function-variable',\n      'method',\n      'method-variable',\n      'property-access'\n    ]\n    for (var i = 0; i < maybeClassNameTokens.length; i++) {\n      var token = maybeClassNameTokens[i]\n      var value = Prism.languages.javascript[token]\n\n      // convert regex to object\n      if (Prism.util.type(value) === 'RegExp') {\n        value = Prism.languages.javascript[token] = {\n          pattern: value\n        }\n      }\n\n      // keep in mind that we don't support arrays\n\n      var inside = value.inside || {}\n      value.inside = inside\n      inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJson from './json.js'\njson5.displayName = 'json5'\njson5.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function json5(Prism) {\n  Prism.register(refractorJson)\n  ;(function (Prism) {\n    var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n    Prism.languages.json5 = Prism.languages.extend('json', {\n      property: [\n        {\n          pattern: RegExp(string.source + '(?=\\\\s*:)'),\n          greedy: true\n        },\n        {\n          pattern:\n            /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n          alias: 'unquoted'\n        }\n      ],\n      string: {\n        pattern: string,\n        greedy: true\n      },\n      number:\n        /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJson from './json.js'\njsonp.displayName = 'jsonp'\njsonp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsonp(Prism) {\n  Prism.register(refractorJson)\n  Prism.languages.jsonp = Prism.languages.extend('json', {\n    punctuation: /[{}[\\]();,.]/\n  })\n  Prism.languages.insertBefore('jsonp', 'punctuation', {\n    function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsstacktrace(Prism) {\n  Prism.languages.jsstacktrace = {\n    'error-message': {\n      pattern: /^\\S.*/m,\n      alias: 'string'\n    },\n    'stack-frame': {\n      pattern: /(^[ \\t]+)at[ \\t].*/m,\n      lookbehind: true,\n      inside: {\n        'not-my-code': {\n          pattern:\n            /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n          alias: 'comment'\n        },\n        filename: {\n          pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n          lookbehind: true,\n          alias: 'url'\n        },\n        function: {\n          pattern:\n            /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\./\n          }\n        },\n        punctuation: /[()]/,\n        keyword: /\\b(?:at|new)\\b/,\n        alias: {\n          pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n          alias: 'variable'\n        },\n        'line-number': {\n          pattern: /:\\d+(?::\\d+)?\\b/,\n          alias: 'number',\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njulia.displayName = 'julia'\njulia.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function julia(Prism) {\n  Prism.languages.julia = {\n    comment: {\n      // support one level of nested comments\n      // https://github.com/JuliaLang/julia/pull/6128\n      pattern:\n        /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n      lookbehind: true\n    },\n    regex: {\n      // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n      pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n      greedy: true\n    },\n    string: {\n      // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n      // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n      // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n      pattern:\n        /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n      greedy: true\n    },\n    char: {\n      // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n      pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n    // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n    operator:\n      /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n    punctuation: /::?|[{}[\\]();,.?]/,\n    // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n    constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function keepalived(Prism) {\n  Prism.languages.keepalived = {\n    comment: {\n      pattern: /[#!].*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n      lookbehind: true,\n      greedy: true\n    },\n    // support IPv4, IPv6, subnet mask\n    ip: {\n      pattern: RegExp(\n        /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n          /<ipv4>/g,\n          function () {\n            return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n              .source\n          }\n        ),\n        'i'\n      ),\n      alias: 'number'\n    },\n    // support *nix / Windows, directory / file\n    path: {\n      pattern:\n        /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    variable: /\\$\\{?\\w+\\}?/,\n    email: {\n      pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n      alias: 'string'\n    },\n    'conditional-configuration': {\n      pattern: /@\\^?[\\w-]+/,\n      alias: 'variable'\n    },\n    operator: /=/,\n    property:\n      /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n    constant:\n      /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n    number: {\n      pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n    punctuation: /[\\{\\}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function keyman(Prism) {\n  Prism.languages.keyman = {\n    comment: {\n      pattern: /\\bc .*/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n      greedy: true\n    },\n    'virtual-key': {\n      pattern:\n        /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n      greedy: true,\n      alias: 'function' // alias for styles\n    },\n    // https://help.keyman.com/developer/language/guide/headers\n    'header-keyword': {\n      pattern: /&\\w+/,\n      alias: 'bold' // alias for styles\n    },\n    'header-statement': {\n      pattern:\n        /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n      alias: 'bold' // alias for styles\n    },\n    'rule-keyword': {\n      pattern:\n        /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n      alias: 'keyword'\n    },\n    'structural-keyword': {\n      pattern:\n        /\\b(?:ansi|begin|group|match|newcontext|nomatch|postkeystroke|readonly|unicode|using keys)\\b/i,\n      alias: 'keyword'\n    },\n    'compile-target': {\n      pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n      alias: 'property'\n    },\n    // U+####, x###, d### characters and numbers\n    number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n    operator: /[+>\\\\$]|\\.\\./,\n    punctuation: /[()=,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\n\n/** @param {Refractor} Prism */\nexport default function kotlin(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    Prism.languages.kotlin = Prism.languages.extend('clike', {\n      keyword: {\n        // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n        pattern:\n          /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n        lookbehind: true\n      },\n      function: [\n        {\n          pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n          greedy: true\n        },\n        {\n          pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      number:\n        /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n      operator:\n        /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n    })\n    delete Prism.languages.kotlin['class-name']\n    var interpolationInside = {\n      'interpolation-punctuation': {\n        pattern: /^\\$\\{?|\\}$/,\n        alias: 'punctuation'\n      },\n      expression: {\n        pattern: /[\\s\\S]+/,\n        inside: Prism.languages.kotlin\n      }\n    }\n    Prism.languages.insertBefore('kotlin', 'string', {\n      // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n      'string-literal': [\n        {\n          pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n          alias: 'multiline',\n          inside: {\n            interpolation: {\n              pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        },\n        {\n          pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n          alias: 'singleline',\n          inside: {\n            interpolation: {\n              pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n              lookbehind: true,\n              inside: interpolationInside\n            },\n            string: /[\\s\\S]+/\n          }\n        }\n      ],\n      char: {\n        // https://kotlinlang.org/spec/expressions.html#character-literals\n        pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n        greedy: true\n      }\n    })\n    delete Prism.languages.kotlin['string']\n    Prism.languages.insertBefore('kotlin', 'keyword', {\n      annotation: {\n        pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n        alias: 'builtin'\n      }\n    })\n    Prism.languages.insertBefore('kotlin', 'function', {\n      label: {\n        pattern: /\\b\\w+@|@\\w+\\b/,\n        alias: 'symbol'\n      }\n    })\n    Prism.languages.kt = Prism.languages.kotlin\n    Prism.languages.kts = Prism.languages.kotlin\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\n\n/** @param {Refractor} Prism */\nexport default function kumir(Prism) {\n  /* eslint-disable regexp/no-dupe-characters-character-class */\n  ;(function (Prism) {\n    /**\n     * Regular expression for characters that are not allowed in identifiers.\n     *\n     * @type {string}\n     */\n    var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n\n    /**\n     * Surround a regular expression for IDs with patterns for non-ID sequences.\n     *\n     * @param {string} pattern A regular expression for identifiers.\n     * @param {string} [flags] The regular expression flags.\n     * @returns {RegExp} A wrapped regular expression for identifiers.\n     */\n    function wrapId(pattern, flags) {\n      return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n    }\n    Prism.languages.kumir = {\n      comment: {\n        pattern: /\\|.*/\n      },\n      prolog: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n        greedy: true\n      },\n      boolean: {\n        pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n        lookbehind: true\n      },\n      'operator-word': {\n        pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      'system-variable': {\n        pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      type: [\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n              .source\n          ),\n          lookbehind: true,\n          alias: 'builtin'\n        },\n        {\n          pattern: wrapId(\n            /(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)/.source\n          ),\n          lookbehind: true,\n          alias: 'important'\n        }\n      ],\n      /**\n       * Should be performed after searching for type names because of \"таб\".\n       * \"таб\" is a reserved word, but never used without a preceding type name.\n       * \"НАЗНАЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n       */\n      keyword: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for reserved words. */\n      name: {\n        // eslint-disable-next-line regexp/no-super-linear-backtracking\n        pattern: wrapId(\n          /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n            .source\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for names. */\n      number: {\n        pattern: wrapId(\n          /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n            .source,\n          'i'\n        ),\n        lookbehind: true\n      },\n      /** Should be performed after searching for words. */\n      punctuation: /:=|[(),:;\\[\\]]/,\n      /**\n       * Should be performed after searching for\n       * - numeric constants (because of \"+\" and \"-\");\n       * - punctuation marks (because of \":=\" and \"=\").\n       */\n      'operator-char': {\n        pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n        alias: 'operator'\n      }\n    }\n    Prism.languages.kum = Prism.languages.kumir\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nkusto.displayName = 'kusto'\nkusto.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function kusto(Prism) {\n  Prism.languages.kusto = {\n    comment: {\n      pattern: /\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern:\n        /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n      greedy: true\n    },\n    verb: {\n      pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    command: {\n      pattern: /\\.[a-z][a-z\\d-]*\\b/,\n      alias: 'keyword'\n    },\n    'class-name':\n      /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n    keyword:\n      /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n    datetime: [\n      {\n        // RFC 822 + RFC 850\n        pattern:\n          /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n        alias: 'number'\n      },\n      {\n        // ISO 8601\n        pattern:\n          /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n        alias: 'number'\n      }\n    ],\n    number:\n      /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n    operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n    punctuation: /[()\\[\\]{},;.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlatex.displayName = 'latex'\nlatex.aliases = ['context', 'tex']\n\n/** @param {Refractor} Prism */\nexport default function latex(Prism) {\n  ;(function (Prism) {\n    var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n    var insideEqu = {\n      'equation-command': {\n        pattern: funcPattern,\n        alias: 'regex'\n      }\n    }\n    Prism.languages.latex = {\n      comment: /%.*/,\n      // the verbatim environment prints whitespace to the document\n      cdata: {\n        pattern:\n          /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n        lookbehind: true\n      },\n      /*\n       * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n       * (all are multiline)\n       */\n      equation: [\n        {\n          pattern:\n            /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n          inside: insideEqu,\n          alias: 'string'\n        },\n        {\n          pattern:\n            /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n          lookbehind: true,\n          inside: insideEqu,\n          alias: 'string'\n        }\n      ],\n      /*\n       * arguments which are keywords or references are highlighted\n       * as keywords\n       */\n      keyword: {\n        pattern:\n          /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n        lookbehind: true\n      },\n      /*\n       * section or chapter headlines are highlighted as bold so that\n       * they stand out more\n       */\n      headline: {\n        pattern:\n          /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      function: {\n        pattern: funcPattern,\n        alias: 'selector'\n      },\n      punctuation: /[[\\]{}&]/\n    }\n    Prism.languages.tex = Prism.languages.latex\n    Prism.languages.context = Prism.languages.latex\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nimport refractorMarkupTemplating from './markup-templating.js'\nimport refractorPhp from './php.js'\nlatte.displayName = 'latte'\nlatte.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function latte(Prism) {\n  Prism.register(refractorClike)\n  Prism.register(refractorMarkupTemplating)\n  Prism.register(refractorPhp)\n  ;(function (Prism) {\n    Prism.languages.latte = {\n      comment: /^\\{\\*[\\s\\S]*/,\n      'latte-tag': {\n        // https://latte.nette.org/en/tags\n        pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n        lookbehind: true,\n        alias: 'important'\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        alias: 'punctuation'\n      },\n      php: {\n        pattern: /\\S(?:[\\s\\S]*\\S)?/,\n        alias: 'language-php',\n        inside: Prism.languages.php\n      }\n    }\n    var markupLatte = Prism.languages.extend('markup', {})\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-value',\n      {\n        'n-attr': {\n          pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n          inside: {\n            'attr-name': {\n              pattern: /^[^\\s=]+/,\n              alias: 'important'\n            },\n            'attr-value': {\n              pattern: /=[\\s\\S]+/,\n              inside: {\n                punctuation: [\n                  /^=/,\n                  {\n                    pattern: /^(\\s*)[\"']|[\"']$/,\n                    lookbehind: true\n                  }\n                ],\n                php: {\n                  pattern: /\\S(?:[\\s\\S]*\\S)?/,\n                  inside: Prism.languages.php\n                }\n              }\n            }\n          }\n        }\n      },\n      markupLatte.tag\n    )\n    Prism.hooks.add('before-tokenize', function (env) {\n      if (env.language !== 'latte') {\n        return\n      }\n      var lattePattern =\n        /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'latte',\n        lattePattern\n      )\n      env.grammar = markupLatte\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nscheme.displayName = 'scheme'\nscheme.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function scheme(Prism) {\n  ;(function (Prism) {\n    Prism.languages.scheme = {\n      // this supports \"normal\" single-line comments:\n      //   ; comment\n      // and (potentially nested) multiline comments:\n      //   #| comment #| nested |# still comment |#\n      // (only 1 level of nesting is supported)\n      comment:\n        /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      symbol: {\n        pattern: /'[^()\\[\\]#'\\s]+/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n        greedy: true\n      },\n      'lambda-parameter': [\n        // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n        {\n          pattern:\n            /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n          lookbehind: true\n        },\n        {\n          pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n          lookbehind: true\n        }\n      ],\n      keyword: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      builtin: {\n        // all functions of the base library of R7RS plus some of built-ins of R5Rs\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      operator: {\n        pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      number: {\n        // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n        //\n        // <number>      := <num 2>|<num 8>|<num 10>|<num 16>\n        // <num R>       := <prefix R><complex R>\n        // <complex R>   := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n        // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n        // <real R>      := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n        // <ureal R>     := <uint R>(?:\\/<uint R>)?\n        //                | <decimal R>\n        //\n        // <decimal 10>  := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n        // <uint R>      := <digit R>+\n        // <prefix R>    := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n        // <radix 2>     := #b\n        // <radix 8>     := #o\n        // <radix 10>    := (?:#d)?\n        // <radix 16>    := #x\n        // <digit 2>     := [01]\n        // <digit 8>     := [0-7]\n        // <digit 10>    := \\d\n        // <digit 16>    := [0-9a-f]\n        //\n        // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n        // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n        // pattern:\n        pattern: RegExp(\n          SortedBNF({\n            '<ureal dec>':\n              /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n            '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n            '<complex dec>':\n              /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n                .source,\n            '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n            '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n            '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n            '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n            '<complex box>':\n              /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n                .source,\n            '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n              .source,\n            '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n              .source\n          }),\n          'i'\n        ),\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      function: {\n        pattern:\n          /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true\n      },\n      identifier: {\n        pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n        lookbehind: true,\n        greedy: true\n      },\n      punctuation: /[()\\[\\]']/\n    }\n\n    /**\n     * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n     *\n     * @param {Record<string, string>} grammar\n     * @returns {string}\n     */\n    function SortedBNF(grammar) {\n      for (var key in grammar) {\n        grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n          return '(?:' + grammar[key].trim() + ')'\n        })\n      }\n      // return the last item\n      return grammar[key]\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorScheme from './scheme.js'\nlilypond.displayName = 'lilypond'\nlilypond.aliases = ['ly']\n\n/** @param {Refractor} Prism */\nexport default function lilypond(Prism) {\n  Prism.register(refractorScheme)\n  ;(function (Prism) {\n    var schemeExpression =\n      /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n        .source\n    // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n    // For some reason, this can't be 4\n    var recursivenessLog2 = 5\n    for (var i = 0; i < recursivenessLog2; i++) {\n      schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n        return schemeExpression\n      })\n    }\n    schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n    var lilypond = (Prism.languages.lilypond = {\n      comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n      'embedded-scheme': {\n        pattern: RegExp(\n          /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n            /<expr>/g,\n            function () {\n              return schemeExpression\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          scheme: {\n            pattern: /^(#)[\\s\\S]+$/,\n            lookbehind: true,\n            alias: 'language-scheme',\n            inside: {\n              'embedded-lilypond': {\n                pattern: /#\\{[\\s\\S]*?#\\}/,\n                greedy: true,\n                inside: {\n                  punctuation: /^#\\{|#\\}$/,\n                  lilypond: {\n                    pattern: /[\\s\\S]+/,\n                    alias: 'language-lilypond',\n                    inside: null // see below\n                  }\n                }\n              },\n              rest: Prism.languages.scheme\n            }\n          },\n          punctuation: /#/\n        }\n      },\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': {\n        pattern: /(\\\\new\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      keyword: {\n        pattern: /\\\\[a-z][-\\w]*/i,\n        inside: {\n          punctuation: /^\\\\/\n        }\n      },\n      operator: /[=|]|<<|>>/,\n      punctuation: {\n        pattern:\n          /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\/\\d+)?\\b/\n    })\n    lilypond['embedded-scheme'].inside['scheme'].inside[\n      'embedded-lilypond'\n    ].inside['lilypond'].inside = lilypond\n    Prism.languages.ly = lilypond\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nliquid.displayName = 'liquid'\nliquid.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function liquid(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.liquid = {\n    comment: {\n      pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n      lookbehind: true\n    },\n    delimiter: {\n      pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /\"[^\"]*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n    object:\n      /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n    function: [\n      {\n        pattern: /(\\|\\s*)\\w+/,\n        lookbehind: true,\n        alias: 'filter'\n      },\n      {\n        // array functions\n        pattern: /(\\.\\s*)(?:first|last|size)/,\n        lookbehind: true\n      }\n    ],\n    boolean: /\\b(?:false|nil|true)\\b/,\n    range: {\n      pattern: /\\.\\./,\n      alias: 'operator'\n    },\n    // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n    punctuation: /[.,\\[\\]()]/,\n    empty: {\n      pattern: /\\bempty\\b/,\n      alias: 'keyword'\n    }\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    var liquidPattern =\n      /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n    var insideRaw = false\n    Prism.languages['markup-templating'].buildPlaceholders(\n      env,\n      'liquid',\n      liquidPattern,\n      function (match) {\n        var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n        if (tagMatch) {\n          var tag = tagMatch[1]\n          if (tag === 'raw' && !insideRaw) {\n            insideRaw = true\n            return true\n          } else if (tag === 'endraw') {\n            insideRaw = false\n            return true\n          }\n        }\n        return !insideRaw\n      }\n    )\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlisp.displayName = 'lisp'\nlisp.aliases = ['elisp', 'emacs', 'emacs-lisp']\n\n/** @param {Refractor} Prism */\nexport default function lisp(Prism) {\n  ;(function (Prism) {\n    /**\n     * Functions to construct regular expressions\n     * e.g. (interactive ... or (interactive)\n     *\n     * @param {string} name\n     * @returns {RegExp}\n     */\n    function simple_form(name) {\n      return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n    }\n    /**\n     * booleans and numbers\n     *\n     * @param {string} pattern\n     * @returns {RegExp}\n     */\n    function primitive(pattern) {\n      return RegExp(\n        /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n      )\n    }\n\n    // Patterns in regular expressions\n\n    // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n    // & and : are excluded as they are usually used for special purposes\n    var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source\n    // symbol starting with & used in function arguments\n    var marker = '&' + symbol\n    // Open parenthesis for look-behind\n    var par = '(\\\\()'\n    var endpar = '(?=\\\\))'\n    // End the pattern with look-ahead space\n    var space = '(?=\\\\s)'\n    var nestedPar =\n      /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n        .source\n    var language = {\n      // Three or four semicolons are considered a heading.\n      // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n      heading: {\n        pattern: /;;;.*/,\n        alias: ['comment', 'title']\n      },\n      comment: /;.*/,\n      string: {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true,\n        inside: {\n          argument: /[-A-Z]+(?=[.,\\s])/,\n          symbol: RegExp('`' + symbol + \"'\")\n        }\n      },\n      'quoted-symbol': {\n        pattern: RegExp(\"#?'\" + symbol),\n        alias: ['variable', 'symbol']\n      },\n      'lisp-property': {\n        pattern: RegExp(':' + symbol),\n        alias: 'property'\n      },\n      splice: {\n        pattern: RegExp(',@?' + symbol),\n        alias: ['symbol', 'variable']\n      },\n      keyword: [\n        {\n          pattern: RegExp(\n            par +\n              '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n              space\n          ),\n          lookbehind: true\n        },\n        {\n          pattern: RegExp(\n            par +\n              '(?:append|by|collect|concat|do|finally|for|in|return)' +\n              space\n          ),\n          lookbehind: true\n        }\n      ],\n      declare: {\n        pattern: simple_form(/declare/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      interactive: {\n        pattern: simple_form(/interactive/.source),\n        lookbehind: true,\n        alias: 'keyword'\n      },\n      boolean: {\n        pattern: primitive(/nil|t/.source),\n        lookbehind: true\n      },\n      number: {\n        pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n        lookbehind: true\n      },\n      defvar: {\n        pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n        lookbehind: true,\n        inside: {\n          keyword: /^def[a-z]+/,\n          variable: RegExp(symbol)\n        }\n      },\n      defun: {\n        pattern: RegExp(\n          par +\n            /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n            symbol +\n            /\\s+\\(/.source +\n            nestedPar +\n            /\\)/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^(?:cl-)?def\\S+/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          function: {\n            pattern: RegExp('(^\\\\s)' + symbol),\n            lookbehind: true\n          },\n          punctuation: /[()]/\n        }\n      },\n      lambda: {\n        pattern: RegExp(\n          par +\n            'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n            symbol +\n            '(?:\\\\s+&?' +\n            symbol +\n            ')*\\\\s*)?\\\\)'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^lambda/,\n          // See below, this property needs to be defined later so that it can\n          // reference the language object.\n          arguments: null,\n          punctuation: /[()]/\n        }\n      },\n      car: {\n        pattern: RegExp(par + symbol),\n        lookbehind: true\n      },\n      punctuation: [\n        // open paren, brackets, and close paren\n        /(?:['`,]?\\(|[)\\[\\]])/,\n        // cons\n        {\n          pattern: /(\\s)\\.(?=\\s)/,\n          lookbehind: true\n        }\n      ]\n    }\n    var arg = {\n      'lisp-marker': RegExp(marker),\n      varform: {\n        pattern: RegExp(\n          /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n        ),\n        inside: language\n      },\n      argument: {\n        pattern: RegExp(/(^|[\\s(])/.source + symbol),\n        lookbehind: true,\n        alias: 'variable'\n      },\n      rest: language\n    }\n    var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n    var arglist = {\n      pattern: RegExp(par + nestedPar + endpar),\n      lookbehind: true,\n      inside: {\n        'rest-vars': {\n          pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n          inside: arg\n        },\n        'other-marker-vars': {\n          pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n          inside: arg\n        },\n        keys: {\n          pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n          inside: arg\n        },\n        argument: {\n          pattern: RegExp(symbol),\n          alias: 'variable'\n        },\n        punctuation: /[()]/\n      }\n    }\n    language['lambda'].inside.arguments = arglist\n    language['defun'].inside.arguments = Prism.util.clone(arglist)\n    language['defun'].inside.arguments.inside.sublist = arglist\n    Prism.languages.lisp = language\n    Prism.languages.elisp = language\n    Prism.languages.emacs = language\n    Prism.languages['emacs-lisp'] = language\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function livescript(Prism) {\n  Prism.languages.livescript = {\n    comment: [\n      {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true\n      }\n    ],\n    'interpolated-string': {\n      /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n       * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n      pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        variable: {\n          pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n          lookbehind: true\n        },\n        interpolation: {\n          pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^#\\{|\\}$/,\n              alias: 'variable'\n            }\n            // See rest below\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    string: [\n      {\n        pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n        greedy: true\n      },\n      {\n        pattern: /<\\[[\\s\\S]*?\\]>/,\n        greedy: true\n      },\n      /\\\\[^\\s,;\\])}]+/\n    ],\n    regex: [\n      {\n        pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n        greedy: true,\n        inside: {\n          comment: {\n            pattern: /(^|[^\\\\])#.*/,\n            lookbehind: true\n          }\n        }\n      },\n      {\n        pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n        greedy: true\n      }\n    ],\n    keyword: {\n      pattern:\n        /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n      lookbehind: true\n    },\n    'keyword-operator': {\n      pattern:\n        /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    boolean: {\n      pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n      lookbehind: true\n    },\n    argument: {\n      // Don't match .&. nor &&\n      pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n    identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n    operator: [\n      // Spaced .\n      {\n        pattern: /( )\\.(?= )/,\n        lookbehind: true\n      },\n      // Full list, in order:\n      // .= .~ .. ...\n      // .&. .^. .<<. .>>. .>>>.\n      // := :: ::=\n      // &&\n      // || |>\n      // < << <<< <<<<\n      // <- <-- <-! <--!\n      // <~ <~~ <~! <~~!\n      // <| <= <?\n      // > >> >= >?\n      // - -- -> -->\n      // + ++\n      // @ @@\n      // % %%\n      // * **\n      // ! != !~=\n      // !~> !~~>\n      // !-> !-->\n      // ~ ~> ~~> ~=\n      // = ==\n      // ^ ^^\n      // / ?\n      /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n    ],\n    punctuation: /[(){}\\[\\]|.,:;`]/\n  }\n  Prism.languages.livescript['interpolated-string'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.livescript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nllvm.displayName = 'llvm'\nllvm.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function llvm(Prism) {\n  ;(function (Prism) {\n    Prism.languages.llvm = {\n      comment: /;.*/,\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      boolean: /\\b(?:false|true)\\b/,\n      variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n      label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n      type: {\n        pattern:\n          /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n        alias: 'class-name'\n      },\n      keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n      number:\n        /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n      punctuation: /[{}[\\];(),.!*=<>]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlog.displayName = 'log'\nlog.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function log(Prism) {\n  // This is a language definition for generic log files.\n  // Since there is no one log format, this language definition has to support all formats to some degree.\n  //\n  // Based on https://github.com/MTDL9/vim-log-highlighting\n\n  Prism.languages.log = {\n    string: {\n      // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    exception: {\n      pattern:\n        /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n      lookbehind: true,\n      greedy: true,\n      alias: ['javastacktrace', 'language-javastacktrace'],\n      inside: Prism.languages['javastacktrace'] || {\n        keyword: /\\bat\\b/,\n        function: /[a-z_][\\w$]*(?=\\()/,\n        punctuation: /[.:()]/\n      }\n    },\n    level: [\n      {\n        pattern:\n          /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n        alias: ['error', 'important']\n      },\n      {\n        pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n        alias: ['warning', 'important']\n      },\n      {\n        pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n        alias: ['info', 'keyword']\n      },\n      {\n        pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n        alias: ['debug', 'keyword']\n      },\n      {\n        pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n        alias: ['trace', 'comment']\n      }\n    ],\n    property: {\n      pattern:\n        /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n      lookbehind: true\n    },\n    separator: {\n      pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n    email: {\n      pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n      lookbehind: true,\n      alias: 'url'\n    },\n    'ip-address': {\n      pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n      alias: 'constant'\n    },\n    'mac-address': {\n      pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n      alias: 'constant'\n    },\n    domain: {\n      pattern:\n        /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    uuid: {\n      pattern:\n        /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n      alias: 'constant'\n    },\n    hash: {\n      pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n      alias: 'constant'\n    },\n    'file-path': {\n      pattern:\n        /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n      lookbehind: true,\n      greedy: true,\n      alias: 'string'\n    },\n    date: {\n      pattern: RegExp(\n        /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n          '|' +\n          /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n            .source +\n          '|' +\n          /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n            .source,\n        'i'\n      ),\n      alias: 'number'\n    },\n    time: {\n      pattern:\n        /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n      alias: 'number'\n    },\n    boolean: /\\b(?:false|null|true)\\b/i,\n    number: {\n      pattern:\n        /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n      lookbehind: true\n    },\n    operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n    punctuation: /[\\[\\].,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function lolcode(Prism) {\n  Prism.languages.lolcode = {\n    comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n    string: {\n      pattern: /\"(?::.|[^\":])*\"/,\n      inside: {\n        variable: /:\\{[^}]+\\}/,\n        symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n      },\n      greedy: true\n    },\n    number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n    symbol: {\n      pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n      lookbehind: true,\n      inside: {\n        keyword: /A(?=\\s)/\n      }\n    },\n    label: {\n      pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    function: {\n      pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n      lookbehind: true\n    },\n    keyword: [\n      {\n        pattern:\n          /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n        lookbehind: true\n      },\n      /'Z(?=\\s|,|$)/\n    ],\n    boolean: {\n      pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    variable: {\n      pattern: /(^|\\s)IT(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    operator: {\n      pattern:\n        /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n      lookbehind: true\n    },\n    punctuation: /\\.{3}|…|,|!/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmagma.displayName = 'magma'\nmagma.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function magma(Prism) {\n  Prism.languages.magma = {\n    output: {\n      pattern:\n        /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n      lookbehind: true,\n      greedy: true\n    },\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n    keyword:\n      /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    generator: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n      alias: 'class-name'\n    },\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    number: {\n      pattern:\n        /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n      lookbehind: true\n    },\n    operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n    punctuation: /[()[\\]{}<>,;.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function makefile(Prism) {\n  Prism.languages.makefile = {\n    comment: {\n      pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'builtin-target': {\n      pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n      alias: 'builtin'\n    },\n    target: {\n      pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n      alias: 'symbol',\n      inside: {\n        variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n      }\n    },\n    variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n    // Directives\n    keyword:\n      /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n    function: {\n      pattern:\n        /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n      lookbehind: true\n    },\n    operator: /(?:::|[?:+!])?=|[|@]/,\n    punctuation: /[:;(){}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmata.displayName = 'mata'\nmata.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function mata(Prism) {\n  // https://www.stata.com/manuals/m.pdf\n\n  ;(function (Prism) {\n    var orgType = /\\b(?:(?:col|row)?vector|matrix|scalar)\\b/.source\n    var type =\n      /\\bvoid\\b|<org>|\\b(?:complex|numeric|pointer(?:\\s*\\([^()]*\\))?|real|string|(?:class|struct)\\s+\\w+|transmorphic)(?:\\s*<org>)?/.source.replace(\n        /<org>/g,\n        orgType\n      )\n    Prism.languages.mata = {\n      comment: {\n        pattern:\n          /\\/\\/.*|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\//,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"\\r\\n]*\"|[‘`']\".*?\"[’`']/,\n        greedy: true\n      },\n      'class-name': {\n        pattern: /(\\b(?:class|extends|struct)\\s+)\\w+(?=\\s*(?:\\{|\\bextends\\b))/,\n        lookbehind: true\n      },\n      type: {\n        pattern: RegExp(type),\n        alias: 'class-name',\n        inside: {\n          punctuation: /[()]/,\n          keyword: /\\b(?:class|function|struct|void)\\b/\n        }\n      },\n      keyword:\n        /\\b(?:break|class|continue|do|else|end|extends|external|final|for|function|goto|if|pragma|private|protected|public|return|static|struct|unset|unused|version|virtual|while)\\b/,\n      constant: /\\bNULL\\b/,\n      number: {\n        pattern:\n          /(^|[^\\w.])(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|\\d[a-f0-9]*(?:\\.[a-f0-9]+)?x[+-]?\\d+)i?(?![\\w.])/i,\n        lookbehind: true\n      },\n      missing: {\n        pattern: /(^|[^\\w.])(?:\\.[a-z]?)(?![\\w.])/,\n        lookbehind: true,\n        alias: 'symbol'\n      },\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      operator: /\\.\\.|\\+\\+|--|&&|\\|\\||:?(?:[!=<>]=|[+\\-*/^<>&|:])|[!?=\\\\#’`']/,\n      punctuation: /[()[\\]{},;.]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function matlab(Prism) {\n  Prism.languages.matlab = {\n    comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n    string: {\n      pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n      greedy: true\n    },\n    // FIXME We could handle imaginary numbers as a whole\n    number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n    keyword:\n      /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n    function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n    operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n    punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function maxscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n    Prism.languages.maxscript = {\n      comment: {\n        pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n        lookbehind: true,\n        greedy: true\n      },\n      path: {\n        pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n        greedy: true,\n        alias: 'string'\n      },\n      'function-call': {\n        pattern: RegExp(\n          '((?:' +\n            // start of line\n            (/^/.source +\n              '|' +\n              // operators and other language constructs\n              /[;=<>+\\-*/^({\\[]/.source +\n              '|' +\n              // keywords as part of statements\n              /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n                .source) +\n            ')[ \\t]*)' +\n            '(?!' +\n            keywords.source +\n            ')' +\n            /[a-z_]\\w*\\b/.source +\n            '(?=[ \\t]*(?:' +\n            // variable\n            ('(?!' +\n              keywords.source +\n              ')' +\n              /[a-z_]/.source +\n              '|' +\n              // number\n              /\\d|-\\.?\\d/.source +\n              '|' +\n              // other expressions or literals\n              /[({'\"$@#?]/.source) +\n            '))',\n          'im'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'function'\n      },\n      'function-definition': {\n        pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n        lookbehind: true,\n        alias: 'function'\n      },\n      argument: {\n        pattern: /\\b[a-z_]\\w*(?=:)/i,\n        alias: 'attr-name'\n      },\n      keyword: keywords,\n      boolean: /\\b(?:false|true)\\b/,\n      time: {\n        pattern:\n          /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n        lookbehind: true,\n        alias: 'number'\n      },\n      number: [\n        {\n          pattern:\n            /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n          lookbehind: true\n        },\n        /\\b(?:e|pi)\\b/\n      ],\n      constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n      color: {\n        pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n        alias: 'constant'\n      },\n      operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n      punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmel.displayName = 'mel'\nmel.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function mel(Prism) {\n  Prism.languages.mel = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    code: {\n      pattern: /`(?:\\\\.|[^\\\\`])*`/,\n      greedy: true,\n      alias: 'italic',\n      inside: {\n        delimiter: {\n          pattern: /^`|`$/,\n          alias: 'punctuation'\n        },\n        statement: {\n          pattern: /[\\s\\S]+/,\n          inside: null // see below\n        }\n      }\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n      greedy: true\n    },\n    variable: /\\$\\w+/,\n    number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n    flag: {\n      pattern: /-[^\\d\\W]\\w*/,\n      alias: 'operator'\n    },\n    keyword:\n      /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n    function: {\n      pattern:\n        /((?:^|[{;])[ \\t]*)[a-z_]\\w*\\b(?!\\s*(?:\\.(?!\\.)|[[{=]))|\\b[a-z_]\\w*(?=[ \\t]*\\()/im,\n      lookbehind: true,\n      greedy: true\n    },\n    'tensor-punctuation': {\n      pattern: /<<|>>/,\n      alias: 'punctuation'\n    },\n    operator: /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=?|[*\\/!=]=?|[%^]/,\n    punctuation: /[.,:;?\\[\\](){}]/\n  }\n  Prism.languages.mel['code'].inside['statement'].inside = Prism.languages.mel\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function mermaid(Prism) {\n  Prism.languages.mermaid = {\n    comment: {\n      pattern: /%%.*/,\n      greedy: true\n    },\n    style: {\n      pattern:\n        /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n      lookbehind: true,\n      inside: {\n        property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n        operator: /:/,\n        punctuation: /,/\n      }\n    },\n    'inter-arrow-label': {\n      pattern:\n        /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        arrow: {\n          pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n          alias: 'operator'\n        },\n        label: {\n          pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n          lookbehind: true,\n          alias: 'property'\n        },\n        'arrow-head': {\n          pattern: /^\\S+/,\n          alias: ['arrow', 'operator']\n        }\n      }\n    },\n    arrow: [\n      // This might look complex but it really isn't.\n      // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n      // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n      // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n      // arrows into different patterns.\n      {\n        // ER diagram\n        pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // flow chart\n        // (?:==+|--+|-\\.*-)\n        pattern:\n          /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // sequence diagram\n        pattern:\n          /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      {\n        // class diagram\n        pattern:\n          /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    ],\n    label: {\n      pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    text: {\n      pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n      alias: 'string'\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    annotation: {\n      pattern:\n        /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n      alias: 'important'\n    },\n    keyword: [\n      // This language has both case-sensitive and case-insensitive keywords\n      {\n        pattern:\n          /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern:\n          /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    entity: /#[a-z0-9]+;/,\n    operator: {\n      pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n      lookbehind: true\n    },\n    punctuation: /[(){};]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmetafont.displayName = 'metafont'\nmetafont.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function metafont(Prism) {\n  Prism.languages.metafont = {\n    // Syntax of METAFONT with the added (public) elements of PlainMETAFONT. Except for internal quantities they are expected to be rarely redefined. Freely inspired by the syntax of Christophe Grandsire for the Crimson Editor.\n    comment: {\n      pattern: /%.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\\r\\n\"]*\"/,\n      greedy: true\n    },\n    number: /\\d*\\.?\\d+/,\n    boolean: /\\b(?:false|true)\\b/,\n    punctuation: [\n      /[,;()]/,\n      {\n        pattern: /(^|[^{}])(?:\\{|\\})(?![{}])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^[])\\[(?!\\[)/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\]])\\](?!\\])/,\n        lookbehind: true\n      }\n    ],\n    constant: [\n      {\n        pattern: /(^|[^!?])\\?\\?\\?(?![!?])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^/*\\\\])(?:\\\\|\\\\\\\\)(?![/*\\\\])/,\n        lookbehind: true\n      },\n      /\\b(?:_|blankpicture|bp|cc|cm|dd|ditto|down|eps|epsilon|fullcircle|halfcircle|identity|in|infinity|left|mm|nullpen|nullpicture|origin|pc|penrazor|penspeck|pensquare|penstroke|proof|pt|quartercircle|relax|right|smoke|unitpixel|unitsquare|up)\\b/\n    ],\n    quantity: {\n      pattern:\n        /\\b(?:autorounding|blacker|boundarychar|charcode|chardp|chardx|chardy|charext|charht|charic|charwd|currentwindow|day|designsize|displaying|fillin|fontmaking|granularity|hppp|join_radius|month|o_correction|pausing|pen_(?:bot|lft|rt|top)|pixels_per_inch|proofing|showstopping|smoothing|time|tolerance|tracingcapsules|tracingchoices|tracingcommands|tracingedges|tracingequations|tracingmacros|tracingonline|tracingoutput|tracingpens|tracingrestores|tracingspecs|tracingstats|tracingtitles|turningcheck|vppp|warningcheck|xoffset|year|yoffset)\\b/,\n      alias: 'keyword'\n    },\n    command: {\n      pattern:\n        /\\b(?:addto|batchmode|charlist|cull|display|errhelp|errmessage|errorstopmode|everyjob|extensible|fontdimen|headerbyte|inner|interim|let|ligtable|message|newinternal|nonstopmode|numspecial|openwindow|outer|randomseed|save|scrollmode|shipout|show|showdependencies|showstats|showtoken|showvariable|special)\\b/,\n      alias: 'builtin'\n    },\n    operator: [\n      {\n        pattern:\n          /(^|[^>=<:|])(?:<|<=|=|=:|\\|=:|\\|=:>|=:\\|>|=:\\||\\|=:\\||\\|=:\\|>|\\|=:\\|>>|>|>=|:|:=|<>|::|\\|\\|:)(?![>=<:|])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^+-])(?:\\+|\\+\\+|-{1,3}|\\+-\\+)(?![+-])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^/*\\\\])(?:\\*|\\*\\*|\\/)(?![/*\\\\])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^.])(?:\\.{2,3})(?!\\.)/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^@#&$])&(?![@#&$])/,\n        lookbehind: true\n      },\n      /\\b(?:and|not|or)\\b/\n    ],\n    macro: {\n      pattern:\n        /\\b(?:abs|beginchar|bot|byte|capsule_def|ceiling|change_width|clear_pen_memory|clearit|clearpen|clearxy|counterclockwise|cullit|cutdraw|cutoff|decr|define_blacker_pixels|define_corrected_pixels|define_good_x_pixels|define_good_y_pixels|define_horizontal_corrected_pixels|define_pixels|define_whole_blacker_pixels|define_whole_pixels|define_whole_vertical_blacker_pixels|define_whole_vertical_pixels|dir|direction|directionpoint|div|dotprod|downto|draw|drawdot|endchar|erase|fill|filldraw|fix_units|flex|font_coding_scheme|font_extra_space|font_identifier|font_normal_shrink|font_normal_space|font_normal_stretch|font_quad|font_size|font_slant|font_x_height|gfcorners|gobble|gobbled|good\\.(?:bot|lft|rt|top|x|y)|grayfont|hide|hround|imagerules|incr|interact|interpath|intersectionpoint|inverse|italcorr|killtext|labelfont|labels|lft|loggingall|lowres_fix|makegrid|makelabel(?:\\.(?:bot|lft|rt|top)(?:\\.nodot)?)?|max|min|mod|mode_def|mode_setup|nodisplays|notransforms|numtok|openit|penlabels|penpos|pickup|proofoffset|proofrule|proofrulethickness|range|reflectedabout|rotatedabout|rotatedaround|round|rt|savepen|screenchars|screenrule|screenstrokes|shipit|showit|slantfont|softjoin|solve|stop|superellipse|tensepath|thru|titlefont|top|tracingall|tracingnone|undraw|undrawdot|unfill|unfilldraw|upto|vround)\\b/,\n      alias: 'function'\n    },\n    builtin:\n      /\\b(?:ASCII|angle|char|cosd|decimal|directiontime|floor|hex|intersectiontimes|jobname|known|length|makepath|makepen|mexp|mlog|normaldeviate|oct|odd|pencircle|penoffset|point|postcontrol|precontrol|reverse|rotated|sind|sqrt|str|subpath|substring|totalweight|turningnumber|uniformdeviate|unknown|xpart|xxpart|xypart|ypart|yxpart|yypart)\\b/,\n    keyword:\n      /\\b(?:also|at|atleast|begingroup|charexists|contour|controls|curl|cycle|def|delimiters|doublepath|dropping|dump|else|elseif|end|enddef|endfor|endgroup|endinput|exitif|exitunless|expandafter|fi|for|forever|forsuffixes|from|if|input|inwindow|keeping|kern|of|primarydef|quote|readstring|scaled|scantokens|secondarydef|shifted|skipto|slanted|step|tension|tertiarydef|to|transformed|until|vardef|withpen|withweight|xscaled|yscaled|zscaled)\\b/,\n    type: {\n      pattern:\n        /\\b(?:boolean|expr|numeric|pair|path|pen|picture|primary|secondary|string|suffix|tertiary|text|transform)\\b/,\n      alias: 'property'\n    },\n    variable: {\n      pattern:\n        /(^|[^@#&$])(?:@#|#@|#|@)(?![@#&$])|\\b(?:aspect_ratio|currentpen|currentpicture|currenttransform|d|extra_beginchar|extra_endchar|extra_setup|h|localfont|mag|mode|screen_cols|screen_rows|w|whatever|x|y|z)\\b/,\n      lookbehind: true\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmizar.displayName = 'mizar'\nmizar.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function mizar(Prism) {\n  Prism.languages.mizar = {\n    comment: /::.+/,\n    keyword:\n      /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n    parameter: {\n      pattern: /\\$(?:10|\\d)/,\n      alias: 'variable'\n    },\n    variable: /\\b\\w+(?=:)/,\n    number: /(?:\\b|-)\\d+\\b/,\n    operator: /\\.\\.\\.|->|&|\\.?=/,\n    punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function mongodb(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    var operators = [\n      // query and projection\n      '$eq',\n      '$gt',\n      '$gte',\n      '$in',\n      '$lt',\n      '$lte',\n      '$ne',\n      '$nin',\n      '$and',\n      '$not',\n      '$nor',\n      '$or',\n      '$exists',\n      '$type',\n      '$expr',\n      '$jsonSchema',\n      '$mod',\n      '$regex',\n      '$text',\n      '$where',\n      '$geoIntersects',\n      '$geoWithin',\n      '$near',\n      '$nearSphere',\n      '$all',\n      '$elemMatch',\n      '$size',\n      '$bitsAllClear',\n      '$bitsAllSet',\n      '$bitsAnyClear',\n      '$bitsAnySet',\n      '$comment',\n      '$elemMatch',\n      '$meta',\n      '$slice',\n      // update\n      '$currentDate',\n      '$inc',\n      '$min',\n      '$max',\n      '$mul',\n      '$rename',\n      '$set',\n      '$setOnInsert',\n      '$unset',\n      '$addToSet',\n      '$pop',\n      '$pull',\n      '$push',\n      '$pullAll',\n      '$each',\n      '$position',\n      '$slice',\n      '$sort',\n      '$bit',\n      // aggregation pipeline stages\n      '$addFields',\n      '$bucket',\n      '$bucketAuto',\n      '$collStats',\n      '$count',\n      '$currentOp',\n      '$facet',\n      '$geoNear',\n      '$graphLookup',\n      '$group',\n      '$indexStats',\n      '$limit',\n      '$listLocalSessions',\n      '$listSessions',\n      '$lookup',\n      '$match',\n      '$merge',\n      '$out',\n      '$planCacheStats',\n      '$project',\n      '$redact',\n      '$replaceRoot',\n      '$replaceWith',\n      '$sample',\n      '$set',\n      '$skip',\n      '$sort',\n      '$sortByCount',\n      '$unionWith',\n      '$unset',\n      '$unwind',\n      '$setWindowFields',\n      // aggregation pipeline operators\n      '$abs',\n      '$accumulator',\n      '$acos',\n      '$acosh',\n      '$add',\n      '$addToSet',\n      '$allElementsTrue',\n      '$and',\n      '$anyElementTrue',\n      '$arrayElemAt',\n      '$arrayToObject',\n      '$asin',\n      '$asinh',\n      '$atan',\n      '$atan2',\n      '$atanh',\n      '$avg',\n      '$binarySize',\n      '$bsonSize',\n      '$ceil',\n      '$cmp',\n      '$concat',\n      '$concatArrays',\n      '$cond',\n      '$convert',\n      '$cos',\n      '$dateFromParts',\n      '$dateToParts',\n      '$dateFromString',\n      '$dateToString',\n      '$dayOfMonth',\n      '$dayOfWeek',\n      '$dayOfYear',\n      '$degreesToRadians',\n      '$divide',\n      '$eq',\n      '$exp',\n      '$filter',\n      '$first',\n      '$floor',\n      '$function',\n      '$gt',\n      '$gte',\n      '$hour',\n      '$ifNull',\n      '$in',\n      '$indexOfArray',\n      '$indexOfBytes',\n      '$indexOfCP',\n      '$isArray',\n      '$isNumber',\n      '$isoDayOfWeek',\n      '$isoWeek',\n      '$isoWeekYear',\n      '$last',\n      '$last',\n      '$let',\n      '$literal',\n      '$ln',\n      '$log',\n      '$log10',\n      '$lt',\n      '$lte',\n      '$ltrim',\n      '$map',\n      '$max',\n      '$mergeObjects',\n      '$meta',\n      '$min',\n      '$millisecond',\n      '$minute',\n      '$mod',\n      '$month',\n      '$multiply',\n      '$ne',\n      '$not',\n      '$objectToArray',\n      '$or',\n      '$pow',\n      '$push',\n      '$radiansToDegrees',\n      '$range',\n      '$reduce',\n      '$regexFind',\n      '$regexFindAll',\n      '$regexMatch',\n      '$replaceOne',\n      '$replaceAll',\n      '$reverseArray',\n      '$round',\n      '$rtrim',\n      '$second',\n      '$setDifference',\n      '$setEquals',\n      '$setIntersection',\n      '$setIsSubset',\n      '$setUnion',\n      '$size',\n      '$sin',\n      '$slice',\n      '$split',\n      '$sqrt',\n      '$stdDevPop',\n      '$stdDevSamp',\n      '$strcasecmp',\n      '$strLenBytes',\n      '$strLenCP',\n      '$substr',\n      '$substrBytes',\n      '$substrCP',\n      '$subtract',\n      '$sum',\n      '$switch',\n      '$tan',\n      '$toBool',\n      '$toDate',\n      '$toDecimal',\n      '$toDouble',\n      '$toInt',\n      '$toLong',\n      '$toObjectId',\n      '$toString',\n      '$toLower',\n      '$toUpper',\n      '$trim',\n      '$trunc',\n      '$type',\n      '$week',\n      '$year',\n      '$zip',\n      '$count',\n      '$dateAdd',\n      '$dateDiff',\n      '$dateSubtract',\n      '$dateTrunc',\n      '$getField',\n      '$rand',\n      '$sampleRate',\n      '$setField',\n      '$unsetField',\n      // aggregation pipeline query modifiers\n      '$comment',\n      '$explain',\n      '$hint',\n      '$max',\n      '$maxTimeMS',\n      '$min',\n      '$orderby',\n      '$query',\n      '$returnKey',\n      '$showDiskLoc',\n      '$natural'\n    ]\n    var builtinFunctions = [\n      'ObjectId',\n      'Code',\n      'BinData',\n      'DBRef',\n      'Timestamp',\n      'NumberLong',\n      'NumberDecimal',\n      'MaxKey',\n      'MinKey',\n      'RegExp',\n      'ISODate',\n      'UUID'\n    ]\n    operators = operators.map(function (operator) {\n      return operator.replace('$', '\\\\$')\n    })\n    var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n    Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n    Prism.languages.insertBefore('mongodb', 'string', {\n      property: {\n        pattern:\n          /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n        greedy: true,\n        inside: {\n          keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n        }\n      }\n    })\n    Prism.languages.mongodb.string.inside = {\n      url: {\n        // url pattern\n        pattern:\n          /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n        greedy: true\n      },\n      entity: {\n        // ipv4\n        pattern:\n          /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n        greedy: true\n      }\n    }\n    Prism.languages.insertBefore('mongodb', 'constant', {\n      builtin: {\n        pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n        alias: 'keyword'\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function monkey(Prism) {\n  Prism.languages.monkey = {\n    comment: {\n      pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n      greedy: true\n    },\n    string: {\n      pattern: /\"[^\"\\r\\n]*\"/,\n      greedy: true\n    },\n    preprocessor: {\n      pattern: /(^[ \\t]*)#.+/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    function: /\\b\\w+(?=\\()/,\n    'type-char': {\n      pattern: /\\b[?%#$]/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n    operator:\n      /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n    punctuation: /[.,:;()\\[\\]]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\n\n/** @param {Refractor} Prism */\nexport default function moonscript(Prism) {\n  Prism.languages.moonscript = {\n    comment: /--.*/,\n    string: [\n      {\n        pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n        greedy: true\n      },\n      {\n        pattern: /\"[^\"]*\"/,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /#\\{[^{}]*\\}/,\n            inside: {\n              moonscript: {\n                pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n                lookbehind: true,\n                inside: null // see beow\n              },\n              'interpolation-punctuation': {\n                pattern: /#\\{|\\}/,\n                alias: 'punctuation'\n              }\n            }\n          }\n        }\n      }\n    ],\n    'class-name': [\n      {\n        pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n        lookbehind: true\n      },\n      // class-like names start with a capital letter\n      /\\b[A-Z]\\w*/\n    ],\n    keyword:\n      /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n    variable: /@@?\\w*/,\n    property: {\n      pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n      lookbehind: true\n    },\n    function: {\n      pattern:\n        /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    number:\n      /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n    operator:\n      /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n    punctuation: /[.,()[\\]{}\\\\]/\n  }\n  Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n    Prism.languages.moonscript\n  Prism.languages.moon = Prism.languages.moonscript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function n1ql(Prism) {\n  // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n\n  Prism.languages.n1ql = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n      greedy: true\n    },\n    identifier: {\n      pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n      greedy: true\n    },\n    parameter: /\\$[\\w.]+/,\n    // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n    keyword:\n      /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:FALSE|TRUE)\\b/i,\n    number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n    operator:\n      /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n    punctuation: /[;[\\](),.{}:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnand2tetrisHdl.displayName = 'nand2tetris-hdl'\nnand2tetrisHdl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nand2tetrisHdl(Prism) {\n  Prism.languages['nand2tetris-hdl'] = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n    number: /\\b\\d+\\b/,\n    operator: /=|\\.\\./,\n    punctuation: /[{}[\\];(),:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = ['nani']\n\n/** @param {Refractor} Prism */\nexport default function naniscript(Prism) {\n  ;(function (Prism) {\n    var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n    var params = {\n      'quoted-string': {\n        pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n        alias: 'operator'\n      },\n      'command-param-id': {\n        pattern: /(\\s)\\w+:/,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'command-param-value': [\n        {\n          pattern: expressionDef,\n          alias: 'selector'\n        },\n        {\n          pattern: /([\\t ])\\S+/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'operator'\n        },\n        {\n          pattern: /\\S(?:.*\\S)?/,\n          alias: 'operator'\n        }\n      ]\n    }\n    Prism.languages.naniscript = {\n      // ; ...\n      comment: {\n        pattern: /^([\\t ]*);.*/m,\n        lookbehind: true\n      },\n      // > ...\n      // Define is a control line starting with '>' followed by a word, a space and a text.\n      define: {\n        pattern: /^>.+/m,\n        alias: 'tag',\n        inside: {\n          value: {\n            pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n            lookbehind: true,\n            alias: 'operator'\n          },\n          key: {\n            pattern: /(^>)\\w+/,\n            lookbehind: true\n          }\n        }\n      },\n      // # ...\n      label: {\n        pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n        lookbehind: true,\n        alias: 'regex'\n      },\n      command: {\n        pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n        lookbehind: true,\n        alias: 'function',\n        inside: {\n          'command-name': /^@\\w+/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'command-params': {\n            pattern: /\\s*\\S[\\s\\S]*/,\n            inside: params\n          }\n        }\n      },\n      // Generic is any line that doesn't start with operators: ;>#@\n      'generic-text': {\n        pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n        lookbehind: true,\n        alias: 'punctuation',\n        inside: {\n          // \\{ ... \\} ... \\[ ... \\] ... \\\"\n          'escaped-char': /\\\\[{}\\[\\]\"]/,\n          expression: {\n            pattern: expressionDef,\n            greedy: true,\n            alias: 'selector'\n          },\n          'inline-command': {\n            pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n            greedy: true,\n            alias: 'function',\n            inside: {\n              'command-params': {\n                pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n                lookbehind: true,\n                inside: params\n              },\n              'command-param-name': {\n                pattern: /^(\\[[\\t ]*)\\w+/,\n                lookbehind: true,\n                alias: 'name'\n              },\n              'start-stop-char': /[\\[\\]]/\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.nani = Prism.languages['naniscript']\n\n    /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n\n    /**\n     * This hook is used to validate generic-text tokens for balanced brackets.\n     * Mark token as bad-line when contains not balanced brackets: {},[]\n     */\n    Prism.hooks.add('after-tokenize', function (env) {\n      /** @type {(Token | string)[]} */\n      var tokens = env.tokens\n      tokens.forEach(function (token) {\n        if (typeof token !== 'string' && token.type === 'generic-text') {\n          var content = getTextContent(token)\n          if (!isBracketsBalanced(content)) {\n            token.type = 'bad-line'\n            token.content = content\n          }\n        }\n      })\n    })\n\n    /**\n     * @param {string} input\n     * @returns {boolean}\n     */\n    function isBracketsBalanced(input) {\n      var brackets = '[]{}'\n      var stack = []\n      for (var i = 0; i < input.length; i++) {\n        var bracket = input[i]\n        var bracketsIndex = brackets.indexOf(bracket)\n        if (bracketsIndex !== -1) {\n          if (bracketsIndex % 2 === 0) {\n            stack.push(bracketsIndex + 1)\n          } else if (stack.pop() !== bracketsIndex) {\n            return false\n          }\n        }\n      }\n      return stack.length === 0\n    }\n\n    /**\n     * @param {string | Token | (string | Token)[]} token\n     * @returns {string}\n     */\n    function getTextContent(token) {\n      if (typeof token === 'string') {\n        return token\n      } else if (Array.isArray(token)) {\n        return token.map(getTextContent).join('')\n      } else {\n        return getTextContent(token.content)\n      }\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnasm.displayName = 'nasm'\nnasm.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nasm(Prism) {\n  Prism.languages.nasm = {\n    comment: /;.*$/m,\n    string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    label: {\n      pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword: [\n      /\\[?BITS (?:16|32|64)\\]?/,\n      {\n        pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n        lookbehind: true\n      },\n      /(?:extern|global)[^;\\r\\n]*/i,\n      /(?:CPU|DEFAULT|FLOAT).*$/m\n    ],\n    register: {\n      pattern:\n        /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n      alias: 'variable'\n    },\n    number:\n      /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n    operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nneon.displayName = 'neon'\nneon.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function neon(Prism) {\n  Prism.languages.neon = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    datetime: {\n      pattern:\n        /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n      lookbehind: true,\n      alias: 'number'\n    },\n    key: {\n      pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n      lookbehind: true,\n      alias: 'property'\n    },\n    number: {\n      pattern:\n        /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n      lookbehind: true\n    },\n    boolean: {\n      pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true\n    },\n    null: {\n      pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    string: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    literal: {\n      pattern:\n        /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n      lookbehind: true,\n      alias: 'string'\n    },\n    punctuation: /[,:=[\\]{}()-]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnevod.displayName = 'nevod'\nnevod.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nevod(Prism) {\n  Prism.languages.nevod = {\n    comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n    string: {\n      pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n      greedy: true,\n      inside: {\n        'string-attrs': /!$|!\\*$|\\*$/\n      }\n    },\n    namespace: {\n      pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n      lookbehind: true\n    },\n    pattern: {\n      pattern:\n        /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      inside: {\n        'pattern-name': {\n          pattern: /^#?[a-zA-Z0-9\\-.]+/,\n          alias: 'class-name'\n        },\n        fields: {\n          pattern: /\\(.*\\)/,\n          inside: {\n            'field-name': {\n              pattern: /[a-zA-Z0-9\\-.]+/,\n              alias: 'variable'\n            },\n            punctuation: /[,()]/,\n            operator: {\n              pattern: /~/,\n              alias: 'field-hidden-mark'\n            }\n          }\n        }\n      }\n    },\n    search: {\n      pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n      alias: 'function',\n      lookbehind: true\n    },\n    keyword:\n      /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n    'standard-pattern': {\n      pattern:\n        /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n      inside: {\n        'standard-pattern-name': {\n          pattern: /^[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        quantifier: {\n          pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n          alias: 'number'\n        },\n        'standard-pattern-attr': {\n          pattern: /[a-zA-Z0-9\\-.]+/,\n          alias: 'builtin'\n        },\n        punctuation: /[,()]/\n      }\n    },\n    quantifier: {\n      pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n      alias: 'number'\n    },\n    operator: [\n      {\n        pattern: /=/,\n        alias: 'pattern-def'\n      },\n      {\n        pattern: /&/,\n        alias: 'conjunction'\n      },\n      {\n        pattern: /~/,\n        alias: 'exception'\n      },\n      {\n        pattern: /\\?/,\n        alias: 'optionality'\n      },\n      {\n        pattern: /[[\\]]/,\n        alias: 'repetition'\n      },\n      {\n        pattern: /[{}]/,\n        alias: 'variation'\n      },\n      {\n        pattern: /[+_]/,\n        alias: 'sequence'\n      },\n      {\n        pattern: /\\.{2,3}/,\n        alias: 'span'\n      }\n    ],\n    'field-capture': [\n      {\n        pattern:\n          /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n        lookbehind: true,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      },\n      {\n        pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n        inside: {\n          'field-name': {\n            pattern: /[a-zA-Z0-9\\-.]+/,\n            alias: 'variable'\n          },\n          colon: /:/\n        }\n      }\n    ],\n    punctuation: /[:;,()]/,\n    name: /[a-zA-Z0-9\\-.]+/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnginx.displayName = 'nginx'\nnginx.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nginx(Prism) {\n  ;(function (Prism) {\n    var variable =\n      /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n    Prism.languages.nginx = {\n      comment: {\n        pattern: /(^|[\\s{};])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      directive: {\n        pattern:\n          /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          string: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n            lookbehind: true,\n            greedy: true,\n            inside: {\n              escape: {\n                pattern: /\\\\[\"'\\\\nrt]/,\n                alias: 'entity'\n              },\n              variable: variable\n            }\n          },\n          comment: {\n            pattern: /(\\s)#.*/,\n            lookbehind: true,\n            greedy: true\n          },\n          keyword: {\n            pattern: /^\\S+/,\n            greedy: true\n          },\n          // other patterns\n\n          boolean: {\n            pattern: /(\\s)(?:off|on)(?!\\S)/,\n            lookbehind: true\n          },\n          number: {\n            pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n            lookbehind: true\n          },\n          variable: variable\n        }\n      },\n      punctuation: /[{};]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnim.displayName = 'nim'\nnim.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nim(Prism) {\n  Prism.languages.nim = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n      pattern:\n        /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n      greedy: true\n    },\n    char: {\n      // Character literals are handled specifically to prevent issues with numeric type suffixes\n      pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n      greedy: true\n    },\n    function: {\n      pattern:\n        /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n      greedy: true,\n      inside: {\n        operator: /\\*$/\n      }\n    },\n    // We don't want to highlight operators (and anything really) inside backticks\n    identifier: {\n      pattern: /`[^`\\r\\n]+`/,\n      greedy: true,\n      inside: {\n        punctuation: /`/\n      }\n    },\n    // The negative look ahead prevents wrong highlighting of the .. operator\n    number:\n      /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n    keyword:\n      /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n    operator: {\n      // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n      // but allow the slice operator .. to take precedence over them\n      // One can define his own operators in Nim so all combination of operators might be an operator.\n      pattern:\n        /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n      lookbehind: true\n    },\n    punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnix.displayName = 'nix'\nnix.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nix(Prism) {\n  Prism.languages.nix = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // The lookbehind ensures the ${} is not preceded by \\ or ''\n          pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n          lookbehind: true,\n          inside: null // see below\n        }\n      }\n    },\n    url: [\n      /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n      {\n        pattern:\n          /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n        lookbehind: true\n      }\n    ],\n    antiquotation: {\n      pattern: /\\$(?=\\{)/,\n      alias: 'important'\n    },\n    number: /\\b\\d+\\b/,\n    keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n    function:\n      /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n    punctuation: /[{}()[\\].,:;]/\n  }\n  Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nnsis.displayName = 'nsis'\nnsis.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function nsis(Prism) {\n  /**\n   * Original by Jan T. Sott (http://github.com/idleberg)\n   *\n   * Includes all commands and plug-ins shipped with NSIS 3.08\n   */\n  Prism.languages.nsis = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|KnownFolderPath|LabelAddress|TempFileName|WinVer)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|RtlLanguage|ShellVarContextAll|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Target|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n      lookbehind: true\n    },\n    property:\n      /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n    constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n    variable: /\\$\\w[\\w\\.]*/,\n    number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n    operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n    punctuation: /[{}[\\];(),.:]/,\n    important: {\n      pattern:\n        /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n      lookbehind: true\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\n\n/** @param {Refractor} Prism */\nexport default function objectivec(Prism) {\n  Prism.register(refractorC)\n  Prism.languages.objectivec = Prism.languages.extend('c', {\n    string: {\n      pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n    operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n  })\n  delete Prism.languages.objectivec['class-name']\n  Prism.languages.objc = Prism.languages.objectivec\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nocaml.displayName = 'ocaml'\nocaml.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function ocaml(Prism) {\n  // https://ocaml.org/manual/lex.html\n\n  Prism.languages.ocaml = {\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n      greedy: true\n    },\n    char: {\n      pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n      greedy: true\n    },\n    string: [\n      {\n        pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n        greedy: true\n      },\n      {\n        pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n        greedy: true\n      }\n    ],\n    number: [\n      // binary and octal\n      /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i,\n      // hexadecimal\n      /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i,\n      // decimal\n      /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n    ],\n    directive: {\n      pattern: /\\B#\\w+/,\n      alias: 'property'\n    },\n    label: {\n      pattern: /\\B~\\w+/,\n      alias: 'property'\n    },\n    'type-variable': {\n      pattern: /\\B'\\w+/,\n      alias: 'function'\n    },\n    variant: {\n      pattern: /`\\w+/,\n      alias: 'symbol'\n    },\n    // For the list of keywords and operators,\n    // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n    keyword:\n      /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    'operator-like-punctuation': {\n      pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n      alias: 'punctuation'\n    },\n    // Custom operators are allowed\n    operator:\n      /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n    punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nodin.displayName = 'odin'\nodin.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function odin(Prism) {\n  ;(function (Prism) {\n    var escapes =\n      /\\\\(?:[\"'\\\\abefnrtv]|0[0-7]{2}|U[\\dA-Fa-f]{6}|u[\\dA-Fa-f]{4}|x[\\dA-Fa-f]{2})/\n    Prism.languages.odin = {\n      /**\n       * The current implementation supports only 1 level of nesting.\n       *\n       * @author Michael Schmidt\n       * @author edukisto\n       */\n      comment: [\n        {\n          pattern:\n            /\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:\\*(?!\\/)|[^*])*(?:\\*\\/|$))*(?:\\*\\/|$)/,\n          greedy: true\n        },\n        {\n          pattern: /#![^\\n\\r]*/,\n          greedy: true\n        },\n        {\n          pattern: /\\/\\/[^\\n\\r]*/,\n          greedy: true\n        }\n      ],\n      /**\n       * Should be found before strings because of '\"'\"- and '`'`-like sequences.\n       */\n      char: {\n        pattern: /'(?:\\\\(?:.|[0Uux][0-9A-Fa-f]{1,6})|[^\\n\\r'\\\\])'/,\n        greedy: true,\n        inside: {\n          symbol: escapes\n        }\n      },\n      string: [\n        {\n          pattern: /`[^`]*`/,\n          greedy: true\n        },\n        {\n          pattern: /\"(?:\\\\.|[^\\n\\r\"\\\\])*\"/,\n          greedy: true,\n          inside: {\n            symbol: escapes\n          }\n        }\n      ],\n      directive: {\n        pattern: /#\\w+/,\n        alias: 'property'\n      },\n      number:\n        /\\b0(?:b[01_]+|d[\\d_]+|h_*(?:(?:(?:[\\dA-Fa-f]_*){8}){1,2}|(?:[\\dA-Fa-f]_*){4})|o[0-7_]+|x[\\dA-F_a-f]+|z[\\dAB_ab]+)\\b|(?:\\b\\d+(?:\\.(?!\\.)\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d*)?[ijk]?(?!\\w)/,\n      discard: {\n        pattern: /\\b_\\b/,\n        alias: 'keyword'\n      },\n      'procedure-definition': {\n        pattern: /\\b\\w+(?=[ \\t]*(?::\\s*){2}proc\\b)/,\n        alias: 'function'\n      },\n      keyword:\n        /\\b(?:asm|auto_cast|bit_set|break|case|cast|context|continue|defer|distinct|do|dynamic|else|enum|fallthrough|for|foreign|if|import|in|map|matrix|not_in|or_else|or_return|package|proc|return|struct|switch|transmute|typeid|union|using|when|where)\\b/,\n      /**\n       * false, nil, true can be used as procedure names. \"_\" and keywords can't.\n       */\n      'procedure-name': {\n        pattern: /\\b\\w+(?=[ \\t]*\\()/,\n        alias: 'function'\n      },\n      boolean: /\\b(?:false|nil|true)\\b/,\n      'constant-parameter-sign': {\n        pattern: /\\$/,\n        alias: 'important'\n      },\n      undefined: {\n        pattern: /---/,\n        alias: 'operator'\n      },\n      arrow: {\n        pattern: /->/,\n        alias: 'punctuation'\n      },\n      operator: /\\+\\+|--|\\.\\.[<=]?|(?:&~|[-!*+/=~]|[%&<>|]{1,2})=?|[?^]/,\n      punctuation: /[(),.:;@\\[\\]{}]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorC from './c.js'\nopencl.displayName = 'opencl'\nopencl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function opencl(Prism) {\n  Prism.register(refractorC)\n  ;(function (Prism) {\n    /* OpenCL kernel language */\n    Prism.languages.opencl = Prism.languages.extend('c', {\n      // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n      keyword:\n        /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n      // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n      // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n      // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n      number:\n        /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n      boolean: /\\b(?:false|true)\\b/,\n      'constant-opencl-kernel': {\n        pattern:\n          /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n        alias: 'constant'\n      }\n    })\n    Prism.languages.insertBefore('opencl', 'class-name', {\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n      // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n      'builtin-type': {\n        pattern:\n          /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n        alias: 'keyword'\n      }\n    })\n    var attributes = {\n      // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n      'type-opencl-host': {\n        pattern:\n          /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n        alias: 'keyword'\n      },\n      'boolean-opencl-host': {\n        pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n        alias: 'boolean'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n      'constant-opencl-host': {\n        pattern:\n          /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n        alias: 'constant'\n      },\n      // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n      'function-opencl-host': {\n        pattern:\n          /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n        alias: 'function'\n      }\n    }\n\n    /* OpenCL host API */\n    Prism.languages.insertBefore('c', 'keyword', attributes)\n\n    // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n    if (Prism.languages.cpp) {\n      // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n      attributes['type-opencl-host-cpp'] = {\n        pattern:\n          /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n        alias: 'keyword'\n      }\n      Prism.languages.insertBefore('cpp', 'keyword', attributes)\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\n\n/** @param {Refractor} Prism */\nexport default function openqasm(Prism) {\n  // https://qiskit.github.io/openqasm/grammar/index.html\n\n  Prism.languages.openqasm = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n    'class-name':\n      /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n    function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n    constant: /\\b(?:euler|pi|tau)\\b|π|𝜏|ℇ/,\n    number: {\n      pattern:\n        /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n      lookbehind: true\n    },\n    operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n    punctuation: /[(){}\\[\\];,:.]/\n  }\n  Prism.languages.qasm = Prism.languages.openqasm\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\noz.displayName = 'oz'\noz.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function oz(Prism) {\n  Prism.languages.oz = {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      greedy: true\n    },\n    atom: {\n      pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n      greedy: true,\n      alias: 'builtin'\n    },\n    keyword:\n      /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n    function: [\n      /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n      {\n        pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n        lookbehind: true\n      }\n    ],\n    number:\n      /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n    variable: /`(?:[^`\\\\]|\\\\.)+`/,\n    'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n    operator:\n      /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n    punctuation: /[\\[\\](){}.:;?]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nparigp.displayName = 'parigp'\nparigp.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function parigp(Prism) {\n  Prism.languages.parigp = {\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n      greedy: true\n    },\n    // PARI/GP does not care about white spaces at all\n    // so let's process the keywords to build an appropriate regexp\n    // (e.g. \"b *r *e *a *k\", etc.)\n    keyword: (function () {\n      var keywords = [\n        'breakpoint',\n        'break',\n        'dbg_down',\n        'dbg_err',\n        'dbg_up',\n        'dbg_x',\n        'forcomposite',\n        'fordiv',\n        'forell',\n        'forpart',\n        'forprime',\n        'forstep',\n        'forsubgroup',\n        'forvec',\n        'for',\n        'iferr',\n        'if',\n        'local',\n        'my',\n        'next',\n        'return',\n        'until',\n        'while'\n      ]\n      keywords = keywords\n        .map(function (keyword) {\n          return keyword.split('').join(' *')\n        })\n        .join('|')\n      return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n    })(),\n    function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n    number: {\n      // The lookbehind and the negative lookahead prevent from breaking the .. operator\n      pattern:\n        /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n      lookbehind: true\n    },\n    operator:\n      /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n    punctuation: /[\\[\\]{}().,:;|]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nparser.displayName = 'parser'\nparser.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function parser(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n      keyword: {\n        pattern:\n          /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n        lookbehind: true\n      },\n      variable: {\n        pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\.|:+/\n        }\n      },\n      function: {\n        pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /(^@)(?:GET_|SET_)/,\n            lookbehind: true\n          },\n          punctuation: /\\.|:+/\n        }\n      },\n      escape: {\n        pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n        alias: 'builtin'\n      },\n      punctuation: /[\\[\\](){};]/\n    }))\n    parser = Prism.languages.insertBefore('parser', 'keyword', {\n      'parser-comment': {\n        pattern: /(\\s)#.*/,\n        lookbehind: true,\n        alias: 'comment'\n      },\n      expression: {\n        // Allow for 3 levels of depth\n        pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n        greedy: true,\n        lookbehind: true,\n        inside: {\n          string: {\n            pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n            lookbehind: true\n          },\n          keyword: parser.keyword,\n          variable: parser.variable,\n          function: parser.function,\n          boolean: /\\b(?:false|true)\\b/,\n          number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n          escape: parser.escape,\n          operator:\n            /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n          punctuation: parser.punctuation\n        }\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        expression: parser.expression,\n        keyword: parser.keyword,\n        variable: parser.variable,\n        function: parser.function,\n        escape: parser.escape,\n        'parser-punctuation': {\n          pattern: parser.punctuation,\n          alias: 'punctuation'\n        }\n      },\n      parser['tag'].inside['attr-value']\n    )\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\n\n/** @param {Refractor} Prism */\nexport default function pascal(Prism) {\n  // Based on Free Pascal\n\n  /* TODO\nSupport inline asm ?\n*/\n\n  Prism.languages.pascal = {\n    directive: {\n      pattern: /\\{\\$[\\s\\S]*?\\}/,\n      greedy: true,\n      alias: ['marco', 'property']\n    },\n    comment: {\n      pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n      greedy: true\n    },\n    asm: {\n      pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n      lookbehind: true,\n      greedy: true,\n      inside: null // see below\n    },\n    keyword: [\n      {\n        // Turbo Pascal\n        pattern:\n          /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Free Pascal\n        pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Object Pascal\n        pattern:\n          /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n        lookbehind: true\n      },\n      {\n        // Modifiers\n        pattern:\n          /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n        lookbehind: true\n      }\n    ],\n    number: [\n      // Hexadecimal, octal and binary\n      /(?:[&%]\\d+|\\$[a-f\\d]+)/i,\n      // Decimal\n      /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n    ],\n    operator: [\n      /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n      {\n        pattern:\n          /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n        lookbehind: true\n      }\n    ],\n    punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n  }\n  Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n    asm: undefined,\n    keyword: undefined,\n    operator: undefined\n  })\n  Prism.languages.objectpascal = Prism.languages.pascal\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function pascaligo(Prism) {\n  ;(function (Prism) {\n    // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n\n    var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n    var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n      /<braces>/g,\n      function () {\n        return braces\n      }\n    )\n    var pascaligo = (Prism.languages.pascaligo = {\n      comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n      string: {\n        pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n        greedy: true\n      },\n      'class-name': [\n        {\n          pattern: RegExp(\n            /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n              /<type>/g,\n              function () {\n                return type\n              }\n            ),\n            'i'\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n              return type\n            }),\n            'i'\n          ),\n          inside: null // see below\n        },\n        {\n          pattern: RegExp(\n            /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n              return type\n            })\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      keyword: {\n        pattern:\n          /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n        lookbehind: true\n      },\n      boolean: {\n        pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n        lookbehind: true\n      },\n      builtin: {\n        pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n        lookbehind: true\n      },\n      function: /\\b\\w+(?=\\s*\\()/,\n      number: [\n        // Hexadecimal, octal and binary\n        /%[01]+|&[0-7]+|\\$[a-f\\d]+/i,\n        // Decimal\n        /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n      ],\n      operator:\n        /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n      punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n    })\n    var classNameInside = [\n      'comment',\n      'keyword',\n      'builtin',\n      'operator',\n      'punctuation'\n    ].reduce(function (accum, key) {\n      accum[key] = pascaligo[key]\n      return accum\n    }, {})\n    pascaligo['class-name'].forEach(function (p) {\n      p.inside = classNameInside\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npsl.displayName = 'psl'\npsl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function psl(Prism) {\n  Prism.languages.psl = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true,\n      inside: {\n        symbol: /\\\\[ntrbA-Z\"\\\\]/\n      }\n    },\n    'heredoc-string': {\n      pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n      alias: 'string',\n      greedy: true\n    },\n    keyword:\n      /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n    constant:\n      /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n    boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n    variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n    builtin: {\n      pattern:\n        /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n      alias: 'builtin-function'\n    },\n    'foreach-variable': {\n      pattern:\n        /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n      lookbehind: true,\n      greedy: true\n    },\n    function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n    number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n    punctuation: /[(){}\\[\\];,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\n\n/** @param {Refractor} Prism */\nexport default function pcaxis(Prism) {\n  Prism.languages.pcaxis = {\n    string: /\"[^\"]*\"/,\n    keyword: {\n      pattern:\n        /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        keyword: /^[-A-Z\\d]+/,\n        language: {\n          pattern: /^(\\s*)\\[[-\\w]+\\]/,\n          lookbehind: true,\n          inside: {\n            punctuation: /^\\[|\\]$/,\n            property: /[-\\w]+/\n          }\n        },\n        'sub-key': {\n          pattern: /^(\\s*)\\S[\\s\\S]*/,\n          lookbehind: true,\n          inside: {\n            parameter: {\n              pattern: /\"[^\"]*\"/,\n              alias: 'property'\n            },\n            punctuation: /^\\(|\\)$|,/\n          }\n        }\n      }\n    },\n    operator: /=/,\n    tlist: {\n      pattern:\n        /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n      greedy: true,\n      inside: {\n        function: /^TLIST/,\n        property: {\n          pattern: /^(\\s*\\(\\s*)\\w+/,\n          lookbehind: true\n        },\n        string: /\"[^\"]*\"/,\n        punctuation: /[(),]/,\n        operator: /-/\n      }\n    },\n    punctuation: /[;,]/,\n    number: {\n      pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n      lookbehind: true\n    },\n    boolean: /NO|YES/\n  }\n  Prism.languages.px = Prism.languages.pcaxis\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\n\n/** @param {Refractor} Prism */\nexport default function peoplecode(Prism) {\n  Prism.languages.peoplecode = {\n    comment: RegExp(\n      [\n        // C-style multiline comments\n        /\\/\\*[\\s\\S]*?\\*\\//.source,\n        // REM comments\n        /\\bREM[^;]*;/.source,\n        // Nested <* *> comments\n        /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source,\n        // /+ +/ comments\n        /\\/\\+[\\s\\S]*?\\+\\//.source\n      ].join('|')\n    ),\n    string: {\n      pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n      greedy: true\n    },\n    variable: /%\\w+/,\n    'function-definition': {\n      pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n      lookbehind: true,\n      alias: 'function'\n    },\n    'class-name': {\n      pattern:\n        /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n      lookbehind: true,\n      inside: {\n        punctuation: /:/\n      }\n    },\n    keyword:\n      /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n    'operator-keyword': {\n      pattern: /\\b(?:and|not|or)\\b/i,\n      alias: 'operator'\n    },\n    function: /[_a-z]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n    punctuation: /[:.;,()[\\]]/\n  }\n  Prism.languages.pcode = Prism.languages.peoplecode\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nperl.displayName = 'perl'\nperl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function perl(Prism) {\n  ;(function (Prism) {\n    var brackets =\n      /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n        .source\n    Prism.languages.perl = {\n      comment: [\n        {\n          // POD\n          pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\$])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      // TODO Could be nice to handle Heredoc too.\n      string: [\n        {\n          pattern: RegExp(\n            /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // q/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n                // q a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source,\n                // q(...)\n                // q{...}\n                // q[...]\n                // q<...>\n                brackets\n              ].join('|') +\n              ')'\n          ),\n          greedy: true\n        },\n        // \"...\", `...`\n        {\n          pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n          greedy: true\n        },\n        // '...'\n        // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n        {\n          pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n          greedy: true\n        }\n      ],\n      regex: [\n        {\n          pattern: RegExp(\n            /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // m/.../\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n                // m a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source,\n                // m(...)\n                // m{...}\n                // m[...]\n                // m<...>\n                brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngc]*/.source\n          ),\n          greedy: true\n        },\n        // The lookbehinds prevent -s from breaking\n        {\n          pattern: RegExp(\n            /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n              '(?:' +\n              [\n                // s/.../.../\n                // eslint-disable-next-line regexp/strict\n                /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n                  .source,\n                // s a...a...a\n                // eslint-disable-next-line regexp/strict\n                /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n                  .source,\n                // s(...)(...)\n                // s{...}{...}\n                // s[...][...]\n                // s<...><...>\n                // s(...)[...]\n                brackets + /\\s*/.source + brackets\n              ].join('|') +\n              ')' +\n              /[msixpodualngcer]*/.source\n          ),\n          lookbehind: true,\n          greedy: true\n        },\n        // /.../\n        // The look-ahead tries to prevent two divisions on\n        // the same line from being highlighted as regex.\n        // This does not support multi-line regex.\n        {\n          pattern:\n            /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n          greedy: true\n        }\n      ],\n      // FIXME Not sure about the handling of ::, ', and #\n      variable: [\n        // ${^POSTMATCH}\n        /[&*$@%]\\{\\^[A-Z]+\\}/,\n        // $^V\n        /[&*$@%]\\^[A-Z_]/,\n        // ${...}\n        /[&*$@%]#?(?=\\{)/,\n        // $foo\n        /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/,\n        // $1\n        /[&*$@%]\\d+/,\n        // $_, @_, %!\n        // The negative lookahead prevents from breaking the %= operator\n        /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n      ],\n      filehandle: {\n        // <>, <FOO>, _\n        pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n        alias: 'symbol'\n      },\n      'v-string': {\n        // v1.2, 1.2.3\n        pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n        alias: 'string'\n      },\n      function: {\n        pattern: /(\\bsub[ \\t]+)\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n      operator:\n        /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n      punctuation: /[{}[\\];(),:]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorPhp from './php.js'\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function phpdoc(Prism) {\n  Prism.register(refractorJavadoclike)\n  Prism.register(refractorPhp)\n  ;(function (Prism) {\n    var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n    Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n      parameter: {\n        pattern: RegExp(\n          '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n            typeExpression +\n            '\\\\s+)?)\\\\$\\\\w+'\n        ),\n        lookbehind: true\n      }\n    })\n    Prism.languages.insertBefore('phpdoc', 'keyword', {\n      'class-name': [\n        {\n          pattern: RegExp(\n            '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n              typeExpression\n          ),\n          lookbehind: true,\n          inside: {\n            keyword:\n              /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n            punctuation: /[|\\\\[\\]()]/\n          }\n        }\n      ]\n    })\n    Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorPhp from './php.js'\nphpExtras.displayName = 'php-extras'\nphpExtras.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function phpExtras(Prism) {\n  Prism.register(refractorPhp)\n  Prism.languages.insertBefore('php', 'variable', {\n    this: {\n      pattern: /\\$this\\b/,\n      alias: 'keyword'\n    },\n    global:\n      /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n    scope: {\n      pattern: /\\b[\\w\\\\]+::/,\n      inside: {\n        keyword: /\\b(?:parent|self|static)\\b/,\n        punctuation: /::|\\\\/\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nplantUml.displayName = 'plant-uml'\nplantUml.aliases = ['plantuml']\n\n/** @param {Refractor} Prism */\nexport default function plantUml(Prism) {\n  ;(function (Prism) {\n    var variable = /\\$\\w+|%[a-z]+%/\n    var arrowAttr = /\\[[^[\\]]*\\]/.source\n    var arrowDirection = /(?:[drlu]|do|down|le|left|ri|right|up)/.source\n    var arrowBody =\n      '(?:-+' +\n      arrowDirection +\n      '-+|\\\\.+' +\n      arrowDirection +\n      '\\\\.+|-+(?:' +\n      arrowAttr +\n      '-*)?|' +\n      arrowAttr +\n      '-+|\\\\.+(?:' +\n      arrowAttr +\n      '\\\\.*)?|' +\n      arrowAttr +\n      '\\\\.+)'\n    var arrowLeft = /(?:<{1,2}|\\/{1,2}|\\\\{1,2}|<\\||[#*^+}xo])/.source\n    var arrowRight = /(?:>{1,2}|\\/{1,2}|\\\\{1,2}|\\|>|[#*^+{xo])/.source\n    var arrowPrefix = /[[?]?[ox]?/.source\n    var arrowSuffix = /[ox]?[\\]?]?/.source\n    var arrow =\n      arrowPrefix +\n      '(?:' +\n      arrowBody +\n      arrowRight +\n      '|' +\n      arrowLeft +\n      arrowBody +\n      '(?:' +\n      arrowRight +\n      ')?' +\n      ')' +\n      arrowSuffix\n    Prism.languages['plant-uml'] = {\n      comment: {\n        pattern: /(^[ \\t]*)(?:'.*|\\/'[\\s\\S]*?'\\/)/m,\n        lookbehind: true,\n        greedy: true\n      },\n      preprocessor: {\n        pattern: /(^[ \\t]*)!.*/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'property',\n        inside: {\n          variable: variable\n        }\n      },\n      delimiter: {\n        pattern: /(^[ \\t]*)@(?:end|start)uml\\b/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'punctuation'\n      },\n      arrow: {\n        pattern: RegExp(\n          /(^|[^-.<>?|\\\\[\\]ox])/.source + arrow + /(?![-.<>?|\\\\\\]ox])/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'operator',\n        inside: {\n          expression: {\n            pattern: /(\\[)[^[\\]]+(?=\\])/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          punctuation: /\\[(?=$|\\])|^\\]/\n        }\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      text: {\n        pattern: /(\\[[ \\t]*[\\r\\n]+(?![\\r\\n]))[^\\]]*(?=\\])/,\n        lookbehind: true,\n        greedy: true,\n        alias: 'string'\n      },\n      keyword: [\n        {\n          pattern:\n            /^([ \\t]*)(?:abstract\\s+class|end\\s+(?:box|fork|group|merge|note|ref|split|title)|(?:fork|split)(?:\\s+again)?|activate|actor|agent|alt|annotation|artifact|autoactivate|autonumber|backward|binary|boundary|box|break|caption|card|case|circle|class|clock|cloud|collections|component|concise|control|create|critical|database|deactivate|destroy|detach|diamond|else|elseif|end|end[hr]note|endif|endswitch|endwhile|entity|enum|file|folder|footer|frame|group|[hr]?note|header|hexagon|hide|if|interface|label|legend|loop|map|namespace|network|newpage|node|nwdiag|object|opt|package|page|par|participant|person|queue|rectangle|ref|remove|repeat|restore|return|robust|scale|set|show|skinparam|stack|start|state|stop|storage|switch|title|together|usecase|usecase\\/|while)(?=\\s|$)/m,\n          lookbehind: true,\n          greedy: true\n        },\n        /\\b(?:elseif|equals|not|while)(?=\\s*\\()/,\n        /\\b(?:as|is|then)\\b/\n      ],\n      divider: {\n        pattern: /^==.+==$/m,\n        greedy: true,\n        alias: 'important'\n      },\n      time: {\n        pattern: /@(?:\\d+(?:[:/]\\d+){2}|[+-]?\\d+|:[a-z]\\w*(?:[+-]\\d+)?)\\b/i,\n        greedy: true,\n        alias: 'number'\n      },\n      color: {\n        pattern: /#(?:[a-z_]+|[a-fA-F0-9]+)\\b/,\n        alias: 'symbol'\n      },\n      variable: variable,\n      punctuation: /[:,;()[\\]{}]|\\.{3}/\n    }\n    Prism.languages['plant-uml'].arrow.inside.expression.inside =\n      Prism.languages['plant-uml']\n    Prism.languages['plantuml'] = Prism.languages['plant-uml']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorSql from './sql.js'\nplsql.displayName = 'plsql'\nplsql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function plsql(Prism) {\n  Prism.register(refractorSql)\n  Prism.languages.plsql = Prism.languages.extend('sql', {\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n      greedy: true\n    },\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n    keyword:\n      /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n    // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n    operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n  })\n  Prism.languages.insertBefore('plsql', 'operator', {\n    label: {\n      pattern: /<<\\s*\\w+\\s*>>/,\n      alias: 'symbol'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npowerquery.displayName = 'powerquery'\npowerquery.aliases = ['mscript', 'pq']\n\n/** @param {Refractor} Prism */\nexport default function powerquery(Prism) {\n  // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n\n  Prism.languages.powerquery = {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'quoted-identifier': {\n      pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    string: {\n      pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n      greedy: true\n    },\n    constant: [\n      /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n      /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n      /\\bOccurrence\\.(?:All|First|Last)\\b/,\n      /\\bOrder\\.(?:Ascending|Descending)\\b/,\n      /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n      /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n      /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n      /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n      /\\bGroupKind\\.(?:Global|Local)\\b/,\n      /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n      /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n      /\\bJoinSide\\.(?:Left|Right)\\b/,\n      /\\bPrecision\\.(?:Decimal|Double)\\b/,\n      /\\bRelativePosition\\.From(?:End|Start)\\b/,\n      /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n      /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n      /\\bnull\\b/\n    ],\n    boolean: /\\b(?:false|true)\\b/,\n    keyword:\n      /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n    function: {\n      pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n      lookbehind: true\n    },\n    'data-type': {\n      pattern:\n        /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n      alias: 'class-name'\n    },\n    number: {\n      pattern:\n        /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n      lookbehind: true\n    },\n    operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n    punctuation: /[,;\\[\\](){}]/\n  }\n  Prism.languages.pq = Prism.languages['powerquery']\n  Prism.languages.mscript = Prism.languages['powerquery']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npowershell.displayName = 'powershell'\npowershell.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function powershell(Prism) {\n  ;(function (Prism) {\n    var powershell = (Prism.languages.powershell = {\n      comment: [\n        {\n          pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^`])#.*/,\n          lookbehind: true\n        }\n      ],\n      string: [\n        {\n          pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern: /'(?:[^']|'')*'/,\n          greedy: true\n        }\n      ],\n      // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n      // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n      namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n      boolean: /\\$(?:false|true)\\b/i,\n      variable: /\\$\\w+\\b/,\n      // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n      // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n      function: [\n        /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n        /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n      ],\n      // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n      keyword:\n        /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n      operator: {\n        pattern:\n          /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n        lookbehind: true\n      },\n      punctuation: /[|{}[\\];(),.]/\n    })\n\n    // Variable interpolation inside strings, and nested expressions\n    powershell.string[0].inside = {\n      function: {\n        // Allow for one level of nesting\n        pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n        lookbehind: true,\n        inside: powershell\n      },\n      boolean: powershell.boolean,\n      variable: powershell.variable\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nprocessing.displayName = 'processing'\nprocessing.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function processing(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.processing = Prism.languages.extend('clike', {\n    keyword:\n      /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n    // Spaces are allowed between function name and parenthesis\n    function: /\\b\\w+(?=\\s*\\()/,\n    operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n  })\n  Prism.languages.insertBefore('processing', 'number', {\n    // Special case: XML is a type\n    constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n    type: {\n      pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n      alias: 'class-name'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nprolog.displayName = 'prolog'\nprolog.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function prolog(Prism) {\n  Prism.languages.prolog = {\n    // Syntax depends on the implementation\n    comment: {\n      pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n      greedy: true\n    },\n    // Depending on the implementation, strings may allow escaped newlines and quote-escape\n    string: {\n      pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n      greedy: true\n    },\n    builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n    // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n    function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n    number: /\\b\\d+(?:\\.\\d*)?/,\n    // Custom operators are allowed\n    operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n    punctuation: /[(){}\\[\\],]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npromql.displayName = 'promql'\npromql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function promql(Prism) {\n  // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n  // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n\n  ;(function (Prism) {\n    // PromQL Aggregation Operators\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n    var aggregations = [\n      'sum',\n      'min',\n      'max',\n      'avg',\n      'group',\n      'stddev',\n      'stdvar',\n      'count',\n      'count_values',\n      'bottomk',\n      'topk',\n      'quantile'\n    ]\n\n    // PromQL vector matching + the by and without clauses\n    // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n    var vectorMatching = [\n      'on',\n      'ignoring',\n      'group_right',\n      'group_left',\n      'by',\n      'without'\n    ]\n\n    // PromQL offset modifier\n    // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n    var offsetModifier = ['offset']\n    var keywords = aggregations.concat(vectorMatching, offsetModifier)\n    Prism.languages.promql = {\n      comment: {\n        pattern: /(^[ \\t]*)#.*/m,\n        lookbehind: true\n      },\n      'vector-match': {\n        // Match the comma-separated label lists inside vector matching:\n        pattern: new RegExp(\n          '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n        ),\n        lookbehind: true,\n        inside: {\n          'label-key': {\n            pattern: /\\b[^,]+\\b/,\n            alias: 'attr-name'\n          },\n          punctuation: /[(),]/\n        }\n      },\n      'context-labels': {\n        pattern: /\\{[^{}]*\\}/,\n        inside: {\n          'label-key': {\n            pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n            alias: 'attr-name'\n          },\n          'label-value': {\n            pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n            greedy: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\{|\\}|=~?|![=~]|,/\n        }\n      },\n      'context-range': [\n        {\n          pattern: /\\[[\\w\\s:]+\\]/,\n          // [1m]\n          inside: {\n            punctuation: /\\[|\\]|:/,\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        },\n        {\n          pattern: /(\\boffset\\s+)\\w+/,\n          // offset 1m\n          lookbehind: true,\n          inside: {\n            'range-duration': {\n              pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n              alias: 'number'\n            }\n          }\n        }\n      ],\n      keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n      number:\n        /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n      operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n      punctuation: /[{};()`,.[\\]]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nproperties.displayName = 'properties'\nproperties.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function properties(Prism) {\n  Prism.languages.properties = {\n    comment: /^[ \\t]*[#!].*$/m,\n    value: {\n      pattern:\n        /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n      lookbehind: true,\n      alias: 'attr-value'\n    },\n    key: {\n      pattern: /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n      alias: 'attr-name'\n    },\n    punctuation: /[=:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function protobuf(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var builtinTypes =\n      /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n    Prism.languages.protobuf = Prism.languages.extend('clike', {\n      'class-name': [\n        {\n          pattern:\n            /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n          lookbehind: true\n        }\n      ],\n      keyword:\n        /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n      function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n    })\n    Prism.languages.insertBefore('protobuf', 'operator', {\n      map: {\n        pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /[<>.,]/,\n          builtin: builtinTypes\n        }\n      },\n      builtin: builtinTypes,\n      'positional-class-name': {\n        pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n        alias: 'class-name',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      annotation: {\n        pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n        lookbehind: true\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nstylus.displayName = 'stylus'\nstylus.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function stylus(Prism) {\n  ;(function (Prism) {\n    var unit = {\n      pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n      lookbehind: true\n    }\n    // 123 -123 .123 -.123 12.3 -12.3\n    var number = {\n      pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n      lookbehind: true\n    }\n    var inside = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true\n      },\n      url: {\n        pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n        greedy: true\n      },\n      string: {\n        pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n        greedy: true\n      },\n      interpolation: null,\n      // See below\n      func: null,\n      // See below\n      important: /\\B!(?:important|optional)\\b/i,\n      keyword: {\n        pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n        lookbehind: true\n      },\n      hexcode: /#[\\da-f]{3,6}/i,\n      color: [\n        /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n        {\n          pattern:\n            /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n          inside: {\n            unit: unit,\n            number: number,\n            function: /[\\w-]+(?=\\()/,\n            punctuation: /[(),]/\n          }\n        }\n      ],\n      entity: /\\\\[\\da-f]{1,8}/i,\n      unit: unit,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: [\n        // We want non-word chars around \"-\" because it is\n        // accepted in property names.\n        /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n      ],\n      number: number,\n      punctuation: /[{}()\\[\\];:,]/\n    }\n    inside['interpolation'] = {\n      pattern: /\\{[^\\r\\n}:]+\\}/,\n      alias: 'variable',\n      inside: {\n        delimiter: {\n          pattern: /^\\{|\\}$/,\n          alias: 'punctuation'\n        },\n        rest: inside\n      }\n    }\n    inside['func'] = {\n      pattern: /[\\w-]+\\([^)]*\\).*/,\n      inside: {\n        function: /^[^(]+/,\n        rest: inside\n      }\n    }\n    Prism.languages.stylus = {\n      'atrule-declaration': {\n        pattern: /(^[ \\t]*)@.+/m,\n        lookbehind: true,\n        inside: {\n          atrule: /^@[\\w-]+/,\n          rest: inside\n        }\n      },\n      'variable-declaration': {\n        pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n        lookbehind: true,\n        inside: {\n          variable: /^\\S+/,\n          rest: inside\n        }\n      },\n      statement: {\n        pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n        lookbehind: true,\n        inside: {\n          keyword: /^\\S+/,\n          rest: inside\n        }\n      },\n      // A property/value pair cannot end with a comma or a brace\n      // It cannot have indented content unless it ended with a semicolon\n      'property-declaration': {\n        pattern:\n          /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          property: {\n            pattern: /^[^\\s:]+/,\n            inside: {\n              interpolation: inside.interpolation\n            }\n          },\n          rest: inside\n        }\n      },\n      // A selector can contain parentheses only as part of a pseudo-element\n      // It can span multiple lines.\n      // It must end with a comma or an accolade or have indented content.\n      selector: {\n        pattern:\n          /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n        lookbehind: true,\n        inside: {\n          interpolation: inside.interpolation,\n          comment: inside.comment,\n          punctuation: /[{},]/\n        }\n      },\n      func: inside.func,\n      string: inside.string,\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n        lookbehind: true,\n        greedy: true\n      },\n      interpolation: inside.interpolation,\n      punctuation: /[{}()\\[\\];:.]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\ntwig.displayName = 'twig'\ntwig.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function twig(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  Prism.languages.twig = {\n    comment: /^\\{#[\\s\\S]*?#\\}$/,\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      }\n    },\n    keyword: /\\b(?:even|if|odd)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n  Prism.hooks.add('before-tokenize', function (env) {\n    if (env.language !== 'twig') {\n      return\n    }\n    var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n    Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n  })\n  Prism.hooks.add('after-tokenize', function (env) {\n    Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\npug.displayName = 'pug'\npug.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function pug(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    // TODO:\n    // - Add CSS highlighting inside <style> tags\n    // - Add support for multi-line code blocks\n    // - Add support for interpolation #{} and !{}\n    // - Add support for tag interpolation #[]\n    // - Add explicit support for plain text using |\n    // - Add support for markup embedded in plain text\n\n    Prism.languages.pug = {\n      // Multiline stuff should appear before the rest\n\n      // This handles both single-line and multi-line comments\n      comment: {\n        pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n        lookbehind: true\n      },\n      // All the tag-related part is in lookbehind\n      // so that it can be highlighted by the \"tag\" pattern\n      'multiline-script': {\n        pattern:\n          /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      // See at the end of the file for known filters\n      filter: {\n        pattern:\n          /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true,\n        inside: {\n          'filter-name': {\n            pattern: /^:[\\w-]+/,\n            alias: 'variable'\n          },\n          text: /\\S[\\s\\S]*/\n        }\n      },\n      'multiline-plain-text': {\n        pattern:\n          /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n        lookbehind: true\n      },\n      markup: {\n        pattern: /(^[\\t ]*)<.+/m,\n        lookbehind: true,\n        inside: Prism.languages.markup\n      },\n      doctype: {\n        pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n        lookbehind: true\n      },\n      // This handle all conditional and loop keywords\n      'flow-control': {\n        pattern:\n          /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n        lookbehind: true,\n        inside: {\n          each: {\n            pattern: /^each .+? in\\b/,\n            inside: {\n              keyword: /\\b(?:each|in)\\b/,\n              punctuation: /,/\n            }\n          },\n          branch: {\n            pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n            alias: 'keyword'\n          },\n          rest: Prism.languages.javascript\n        }\n      },\n      keyword: {\n        pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n        lookbehind: true\n      },\n      mixin: [\n        // Declaration\n        {\n          pattern: /(^[\\t ]*)mixin .+/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^mixin/,\n            function: /\\w+(?=\\s*\\(|\\s*$)/,\n            punctuation: /[(),.]/\n          }\n        },\n        // Usage\n        {\n          pattern: /(^[\\t ]*)\\+.+/m,\n          lookbehind: true,\n          inside: {\n            name: {\n              pattern: /^\\+\\w+/,\n              alias: 'function'\n            },\n            rest: Prism.languages.javascript\n          }\n        }\n      ],\n      script: {\n        pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n        lookbehind: true,\n        inside: Prism.languages.javascript\n      },\n      'plain-text': {\n        pattern:\n          /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n        lookbehind: true\n      },\n      tag: {\n        pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n        lookbehind: true,\n        inside: {\n          attributes: [\n            {\n              pattern: /&[^(]+\\([^)]+\\)/,\n              inside: Prism.languages.javascript\n            },\n            {\n              pattern: /\\([^)]+\\)/,\n              inside: {\n                'attr-value': {\n                  pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n                  lookbehind: true,\n                  inside: Prism.languages.javascript\n                },\n                'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n                punctuation: /[!=(),]+/\n              }\n            }\n          ],\n          punctuation: /:/,\n          'attr-id': /#[\\w\\-]+/,\n          'attr-class': /\\.[\\w\\-]+/\n        }\n      },\n      code: [\n        {\n          pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n          lookbehind: true,\n          inside: Prism.languages.javascript\n        }\n      ],\n      punctuation: /[.\\-!=|]+/\n    }\n    var filter_pattern =\n      /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n        .source\n\n    // Non exhaustive list of available filters and associated languages\n    var filters = [\n      {\n        filter: 'atpl',\n        language: 'twig'\n      },\n      {\n        filter: 'coffee',\n        language: 'coffeescript'\n      },\n      'ejs',\n      'handlebars',\n      'less',\n      'livescript',\n      'markdown',\n      {\n        filter: 'sass',\n        language: 'scss'\n      },\n      'stylus'\n    ]\n    var all_filters = {}\n    for (var i = 0, l = filters.length; i < l; i++) {\n      var filter = filters[i]\n      filter =\n        typeof filter === 'string'\n          ? {\n              filter: filter,\n              language: filter\n            }\n          : filter\n      if (Prism.languages[filter.language]) {\n        all_filters['filter-' + filter.filter] = {\n          pattern: RegExp(\n            filter_pattern.replace('<filter_name>', function () {\n              return filter.filter\n            }),\n            'm'\n          ),\n          lookbehind: true,\n          inside: {\n            'filter-name': {\n              pattern: /^:[\\w-]+/,\n              alias: 'variable'\n            },\n            text: {\n              pattern: /\\S[\\s\\S]*/,\n              alias: [filter.language, 'language-' + filter.language],\n              inside: Prism.languages[filter.language]\n            }\n          }\n        }\n      }\n    }\n    Prism.languages.insertBefore('pug', 'filter', all_filters)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npuppet.displayName = 'puppet'\npuppet.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function puppet(Prism) {\n  ;(function (Prism) {\n    Prism.languages.puppet = {\n      heredoc: [\n        // Matches the content of a quoted heredoc string (subject to interpolation)\n        {\n          pattern:\n            /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/\n            // See interpolation below\n          }\n        },\n        // Matches the content of an unquoted heredoc string (no interpolation)\n        {\n          pattern:\n            /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'string',\n          inside: {\n            // Matches the end tag\n            punctuation: /(?=\\S).*\\S(?= *$)/\n          }\n        },\n        // Matches the start tag of heredoc strings\n        {\n          pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n          alias: 'string',\n          inside: {\n            punctuation: {\n              pattern: /(\\().+?(?=\\))/,\n              lookbehind: true\n            }\n          }\n        }\n      ],\n      'multiline-comment': {\n        pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true,\n        greedy: true,\n        alias: 'comment'\n      },\n      regex: {\n        // Must be prefixed with the keyword \"node\" or a non-word char\n        pattern:\n          /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          // Extended regexes must have the x flag. They can contain single-line comments.\n          'extended-regex': {\n            pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n            inside: {\n              comment: /#.*/\n            }\n          }\n        }\n      },\n      comment: {\n        pattern: /(^|[^\\\\])#.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      string: {\n        // Allow for one nested level of double quotes inside interpolation\n        pattern:\n          /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n        greedy: true,\n        inside: {\n          'double-quoted': {\n            pattern: /^\"[\\s\\S]*\"$/,\n            inside: {\n              // See interpolation below\n            }\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n      function: [\n        {\n          pattern: /(\\.)(?!\\d)\\w+/,\n          lookbehind: true\n        },\n        /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n      ],\n      number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n      boolean: /\\b(?:false|true)\\b/,\n      // Includes words reserved for future use\n      keyword:\n        /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n      datatype: {\n        pattern:\n          /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n        alias: 'symbol'\n      },\n      operator:\n        /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n      punctuation: /[\\[\\]{}().,;]|:+/\n    }\n    var interpolation = [\n      {\n        // Allow for one nested level of braces inside interpolation\n        pattern:\n          /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n        lookbehind: true,\n        inside: {\n          'short-variable': {\n            // Negative look-ahead prevent wrong highlighting of functions\n            pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n            lookbehind: true,\n            alias: 'variable',\n            inside: {\n              punctuation: /::/\n            }\n          },\n          delimiter: {\n            pattern: /^\\$/,\n            alias: 'variable'\n          },\n          rest: Prism.languages.puppet\n        }\n      },\n      {\n        pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n        lookbehind: true,\n        alias: 'variable',\n        inside: {\n          punctuation: /::/\n        }\n      }\n    ]\n    Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n    Prism.languages.puppet['string'].inside[\n      'double-quoted'\n    ].inside.interpolation = interpolation\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npure.displayName = 'pure'\npure.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function pure(Prism) {\n  ;(function (Prism) {\n    // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n\n    Prism.languages.pure = {\n      comment: [\n        {\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n          lookbehind: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true\n        },\n        /#!.+/\n      ],\n      'inline-lang': {\n        pattern: /%<[\\s\\S]+?%>/,\n        greedy: true,\n        inside: {\n          lang: {\n            pattern: /(^%< *)-\\*-.+?-\\*-/,\n            lookbehind: true,\n            alias: 'comment'\n          },\n          delimiter: {\n            pattern: /^%<.*|%>$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n        greedy: true\n      },\n      number: {\n        // The look-behind prevents wrong highlighting of the .. operator\n        pattern:\n          /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n        lookbehind: true\n      },\n      keyword:\n        /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n      function:\n        /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n      special: {\n        pattern: /\\b__[a-z]+__\\b/i,\n        alias: 'builtin'\n      },\n      // Any combination of operator chars can be an operator\n      // eslint-disable-next-line no-misleading-character-class\n      operator:\n        /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n      // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n      punctuation: /[(){}\\[\\];,|]/\n    }\n    var inlineLanguages = [\n      'c',\n      {\n        lang: 'c++',\n        alias: 'cpp'\n      },\n      'fortran'\n    ]\n    var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n    inlineLanguages.forEach(function (lang) {\n      var alias = lang\n      if (typeof lang !== 'string') {\n        alias = lang.alias\n        lang = lang.lang\n      }\n      if (Prism.languages[alias]) {\n        var o = {}\n        o['inline-lang-' + alias] = {\n          pattern: RegExp(\n            inlineLanguageRe.replace(\n              '<lang>',\n              lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n            ),\n            'i'\n          ),\n          inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n        }\n        o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n          Prism.languages[alias]\n        )\n        Prism.languages.insertBefore('pure', 'inline-lang', o)\n      }\n    })\n\n    // C is the default inline language\n    if (Prism.languages.c) {\n      Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n        Prism.languages.c\n      )\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\npurebasic.displayName = 'purebasic'\npurebasic.aliases = ['pbfasm']\n\n/** @param {Refractor} Prism */\nexport default function purebasic(Prism) {\n  Prism.register(refractorClike)\n  /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n\n  // PureBasic support, steal stuff from ansi-c\n  Prism.languages.purebasic = Prism.languages.extend('clike', {\n    comment: /;.*/,\n    keyword:\n      /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n    function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n    number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n    operator:\n      /(?:@\\*?|\\?|\\*)\\w+\\$?|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n  })\n  Prism.languages.insertBefore('purebasic', 'keyword', {\n    tag: /#\\w+\\$?/,\n    asm: {\n      pattern: /(^[\\t ]*)!.*/m,\n      lookbehind: true,\n      alias: 'tag',\n      inside: {\n        comment: /;.*/,\n        string: {\n          pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n          greedy: true\n        },\n        // Anonymous label references, i.e.: jmp @b\n        'label-reference-anonymous': {\n          pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        // Named label reference, i.e.: jne label1\n        'label-reference-addressed': {\n          pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        keyword: [\n          /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n          /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n        ],\n        function: {\n          pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n          lookbehind: true\n        },\n        'function-inline': {\n          pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n          lookbehind: true,\n          alias: 'function'\n        },\n        label: {\n          pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n          lookbehind: true,\n          alias: 'fasm-label'\n        },\n        register:\n          /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n        number:\n          /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n        operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n      }\n    }\n  })\n  delete Prism.languages.purebasic['class-name']\n  delete Prism.languages.purebasic['boolean']\n  Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorHaskell from './haskell.js'\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\n\n/** @param {Refractor} Prism */\nexport default function purescript(Prism) {\n  Prism.register(refractorHaskell)\n  Prism.languages.purescript = Prism.languages.extend('haskell', {\n    keyword:\n      /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n    'import-statement': {\n      // The imported or hidden names are not included in this import\n      // statement. This is because we want to highlight those exactly like\n      // we do for the names in the program.\n      pattern:\n        /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n      lookbehind: true,\n      inside: {\n        keyword: /\\b(?:as|hiding|import)\\b/,\n        punctuation: /\\./\n      }\n    },\n    // These are builtin functions only. Constructors are highlighted later as a constant.\n    builtin:\n      /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n    operator: [\n      // Infix operators\n      Prism.languages.haskell.operator[0],\n      // ASCII operators\n      Prism.languages.haskell.operator[2],\n      // All UTF16 Unicode operator symbols\n      // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n      // See https://github.com/PrismJS/prism/issues/3006 for more details.\n      /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n    ]\n  })\n  Prism.languages.purs = Prism.languages.purescript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npython.displayName = 'python'\npython.aliases = ['py']\n\n/** @param {Refractor} Prism */\nexport default function python(Prism) {\n  Prism.languages.python = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-interpolation': {\n      pattern:\n        /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n      greedy: true,\n      inside: {\n        interpolation: {\n          // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n          pattern:\n            /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'format-spec': {\n              pattern: /(:)[^:(){}]+(?=\\}$)/,\n              lookbehind: true\n            },\n            'conversion-option': {\n              pattern: /![sra](?=[:}]$)/,\n              alias: 'punctuation'\n            },\n            rest: null\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    'triple-quoted-string': {\n      pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n      greedy: true,\n      alias: 'string'\n    },\n    string: {\n      pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n      greedy: true\n    },\n    function: {\n      pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n      lookbehind: true\n    },\n    'class-name': {\n      pattern: /(\\bclass\\s+)\\w+/i,\n      lookbehind: true\n    },\n    decorator: {\n      pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n      lookbehind: true,\n      alias: ['annotation', 'punctuation'],\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n    builtin:\n      /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n    boolean: /\\b(?:False|None|True)\\b/,\n    number:\n      /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n    operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.python['string-interpolation'].inside[\n    'interpolation'\n  ].inside.rest = Prism.languages.python\n  Prism.languages.py = Prism.languages.python\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\n\n/** @param {Refractor} Prism */\nexport default function qsharp(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    /**\n     * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n     *\n     * Note: This is a simple text based replacement. Be careful when using backreferences!\n     *\n     * @param {string} pattern the given pattern.\n     * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n     * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n     * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n     */\n    function replace(pattern, replacements) {\n      return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n        return '(?:' + replacements[+index] + ')'\n      })\n    }\n    /**\n     * @param {string} pattern\n     * @param {string[]} replacements\n     * @param {string} [flags]\n     * @returns {RegExp}\n     */\n    function re(pattern, replacements, flags) {\n      return RegExp(replace(pattern, replacements), flags || '')\n    }\n\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<<self>>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n    }\n\n    // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n    // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n    var keywordKinds = {\n      // keywords which represent a return or variable type\n      type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n      // all other keywords\n      other:\n        'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n    }\n    // keywords\n    function keywordsToPattern(words) {\n      return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n    }\n    var keywords = RegExp(\n      keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n    )\n\n    // types\n    var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n    var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n    var typeInside = {\n      keyword: keywords,\n      punctuation: /[<>()?,.:[\\]]/\n    }\n\n    // strings\n    var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n    Prism.languages.qsharp = Prism.languages.extend('clike', {\n      comment: /\\/\\/.*/,\n      string: [\n        {\n          pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'class-name': [\n        {\n          // open Microsoft.Quantum.Canon;\n          // open Microsoft.Quantum.Canon as CN;\n          pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n            qualifiedName\n          ]),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // namespace Quantum.App1;\n          pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n          lookbehind: true,\n          inside: typeInside\n        }\n      ],\n      keyword: keywords,\n      number:\n        /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n      operator:\n        /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n      punctuation: /::|[{}[\\];(),.:]/\n    })\n    Prism.languages.insertBefore('qsharp', 'number', {\n      range: {\n        pattern: /\\.\\./,\n        alias: 'operator'\n      }\n    })\n\n    // single line\n    var interpolationExpr = nested(\n      replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n      2\n    )\n    Prism.languages.insertBefore('qsharp', 'string', {\n      'interpolation-string': {\n        pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n              interpolationExpr\n            ]),\n            lookbehind: true,\n            inside: {\n              punctuation: /^\\{|\\}$/,\n              expression: {\n                pattern: /[\\s\\S]+/,\n                alias: 'language-qsharp',\n                inside: Prism.languages.qsharp\n              }\n            }\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    })\n  })(Prism)\n  Prism.languages.qs = Prism.languages.qsharp\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nq.displayName = 'q'\nq.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function q(Prism) {\n  Prism.languages.q = {\n    string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n    comment: [\n      // From http://code.kx.com/wiki/Reference/Slash:\n      // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n      {\n        pattern: /([\\t )\\]}])\\/.*/,\n        lookbehind: true,\n        greedy: true\n      },\n      // From http://code.kx.com/wiki/Reference/Slash:\n      // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n      // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n      // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n      // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n      {\n        pattern:\n          /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n        lookbehind: true,\n        greedy: true\n      },\n      // From http://code.kx.com/wiki/Reference/Slash:\n      // A \\ on a line by itself with no preceding matching / will comment to end of file.\n      {\n        pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n        greedy: true\n      },\n      {\n        pattern: /^#!.+/m,\n        greedy: true\n      }\n    ],\n    symbol: /`(?::\\S+|[\\w.]*)/,\n    datetime: {\n      pattern:\n        /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n      alias: 'number'\n    },\n    // The negative look-ahead prevents bad highlighting\n    // of verbs 0: and 1:\n    number:\n      /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n    keyword:\n      /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n    adverb: {\n      pattern: /['\\/\\\\]:?|\\beach\\b/,\n      alias: 'function'\n    },\n    verb: {\n      pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n      alias: 'operator'\n    },\n    punctuation: /[(){}\\[\\];.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nqml.displayName = 'qml'\nqml.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function qml(Prism) {\n  Prism.register(refractorJavascript)\n  ;(function (Prism) {\n    var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n    var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n    var jsExpr =\n      /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n        .replace(/<string>/g, function () {\n          return jsString\n        })\n        .replace(/<comment>/g, function () {\n          return jsComment\n        })\n\n    // the pattern will blow up, so only a few iterations\n    for (var i = 0; i < 2; i++) {\n      jsExpr = jsExpr.replace(/<expr>/g, function () {\n        return jsExpr\n      })\n    }\n    jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n    Prism.languages.qml = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      'javascript-function': {\n        pattern: RegExp(\n          /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      'class-name': {\n        pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n        lookbehind: true\n      },\n      property: [\n        {\n          pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true\n        },\n        {\n          pattern:\n            /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n          lookbehind: true,\n          inside: {\n            keyword: /^property/,\n            property: /\\w+(?:\\.\\w+)*/\n          }\n        }\n      ],\n      'javascript-expression': {\n        pattern: RegExp(\n          /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n            /<js>/g,\n            function () {\n              return jsExpr\n            }\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'language-javascript',\n        inside: Prism.languages.javascript\n      },\n      string: {\n        pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      keyword: /\\b(?:as|import|on)\\b/,\n      punctuation: /[{}[\\]:;,]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nqore.displayName = 'qore'\nqore.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function qore(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.qore = Prism.languages.extend('clike', {\n    comment: {\n      pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n      lookbehind: true\n    },\n    // Overridden to allow unescaped multi-line strings\n    string: {\n      pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n    number:\n      /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n    operator: {\n      pattern:\n        /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n      lookbehind: true\n    },\n    variable: /\\$(?!\\d)\\w+\\b/\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nr.displayName = 'r'\nr.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function r(Prism) {\n  Prism.languages.r = {\n    comment: /#.*/,\n    string: {\n      pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    'percent-operator': {\n      // Includes user-defined operators\n      // and %%, %*%, %/%, %in%, %o%, %x%\n      pattern: /%[^%\\s]*%/,\n      alias: 'operator'\n    },\n    boolean: /\\b(?:FALSE|TRUE)\\b/,\n    ellipsis: /\\.\\.(?:\\.|\\d+)/,\n    number: [\n      /\\b(?:Inf|NaN)\\b/,\n      /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n    ],\n    keyword:\n      /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n    operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n    punctuation: /[(){}\\[\\],;]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorScheme from './scheme.js'\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\n\n/** @param {Refractor} Prism */\nexport default function racket(Prism) {\n  Prism.register(refractorScheme)\n  Prism.languages.racket = Prism.languages.extend('scheme', {\n    'lambda-parameter': {\n      // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n      // this will just prevent false positives of the `function` pattern\n      pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n      lookbehind: true\n    }\n  })\n  Prism.languages.insertBefore('racket', 'string', {\n    lang: {\n      pattern: /^#lang.+/m,\n      greedy: true,\n      alias: 'keyword'\n    }\n  })\n  Prism.languages.rkt = Prism.languages.racket\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCsharp from './csharp.js'\nimport refractorMarkup from './markup.js'\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\n\n/** @param {Refractor} Prism */\nexport default function cshtml(Prism) {\n  Prism.register(refractorCsharp)\n  Prism.register(refractorMarkup)\n  // Docs:\n  // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n  // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n\n  ;(function (Prism) {\n    var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n      .source\n    var stringLike =\n      /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n      '|' +\n      /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n\n    /**\n     * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n     *\n     * @param {string} pattern\n     * @param {number} depthLog2\n     * @returns {string}\n     */\n    function nested(pattern, depthLog2) {\n      for (var i = 0; i < depthLog2; i++) {\n        pattern = pattern.replace(/<self>/g, function () {\n          return '(?:' + pattern + ')'\n        })\n      }\n      return pattern\n        .replace(/<self>/g, '[^\\\\s\\\\S]')\n        .replace(/<str>/g, '(?:' + stringLike + ')')\n        .replace(/<comment>/g, '(?:' + commentLike + ')')\n    }\n    var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n    var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 1)\n    var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n    var angle = nested(/<(?:[^<>'\"@/]|<comment>|<self>)*>/.source, 1)\n    var inlineCs =\n      /@/.source +\n      /(?:await\\b\\s*)?/.source +\n      '(?:' +\n      /(?!await\\b)\\w+\\b/.source +\n      '|' +\n      round +\n      ')' +\n      '(?:' +\n      /[?!]?\\.\\w+\\b/.source +\n      '|' +\n      '(?:' +\n      angle +\n      ')?' +\n      round +\n      '|' +\n      square +\n      ')*' +\n      /(?![?!\\.(\\[]|<(?!\\/))/.source\n\n    // Note about the above bracket patterns:\n    // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n    // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n    // messes up the bracket and string counting implemented by the above patterns.\n    //\n    // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n    // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n    // complexity of an HTML expression.\n    //\n    // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n    // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n\n    var tagAttrInlineCs = /@(?![\\w()])/.source + '|' + inlineCs\n    var tagAttrValue =\n      '(?:' +\n      /\"[^\"@]*\"|'[^'@]*'|[^\\s'\"@>=]+(?=[\\s>])/.source +\n      '|' +\n      '[\"\\'][^\"\\'@]*(?:(?:' +\n      tagAttrInlineCs +\n      ')[^\"\\'@]*)+[\"\\']' +\n      ')'\n    var tagAttrs =\n      /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*<tagAttrValue>|(?=[\\s/>])))+)?/.source.replace(\n        /<tagAttrValue>/,\n        tagAttrValue\n      )\n    var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n    var tagRegion =\n      /\\B@?/.source +\n      '(?:' +\n      /<([a-zA-Z][\\w:]*)/.source +\n      tagAttrs +\n      /\\s*>/.source +\n      '(?:' +\n      (/[^<]/.source +\n        '|' +\n        // all tags that are not the start tag\n        // eslint-disable-next-line regexp/strict\n        /<\\/?(?!\\1\\b)/.source +\n        tagContent +\n        '|' +\n        // nested start tag\n        nested(\n          // eslint-disable-next-line regexp/strict\n          /<\\1/.source +\n            tagAttrs +\n            /\\s*>/.source +\n            '(?:' +\n            (/[^<]/.source +\n              '|' +\n              // all tags that are not the start tag\n              // eslint-disable-next-line regexp/strict\n              /<\\/?(?!\\1\\b)/.source +\n              tagContent +\n              '|' +\n              '<self>') +\n            ')*' +\n            // eslint-disable-next-line regexp/strict\n            /<\\/\\1\\s*>/.source,\n          2\n        )) +\n      ')*' +\n      // eslint-disable-next-line regexp/strict\n      /<\\/\\1\\s*>/.source +\n      '|' +\n      /</.source +\n      tagContent +\n      ')'\n\n    // Now for the actual language definition(s):\n    //\n    // Razor as a language has 2 parts:\n    //  1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n    //  2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n    //\n    // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n    // other. However, only CSHTML will be exported via `Prism.languages`.\n\n    Prism.languages.cshtml = Prism.languages.extend('markup', {})\n    var csharpWithHtml = Prism.languages.insertBefore(\n      'csharp',\n      'string',\n      {\n        html: {\n          pattern: RegExp(tagRegion),\n          greedy: true,\n          inside: Prism.languages.cshtml\n        }\n      },\n      {\n        csharp: Prism.languages.extend('csharp', {})\n      }\n    )\n    var cs = {\n      pattern: /\\S[\\s\\S]*/,\n      alias: 'language-csharp',\n      inside: csharpWithHtml\n    }\n    var inlineValue = {\n      pattern: RegExp(/(^|[^@])/.source + inlineCs),\n      lookbehind: true,\n      greedy: true,\n      alias: 'variable',\n      inside: {\n        keyword: /^@/,\n        csharp: cs\n      }\n    }\n    Prism.languages.cshtml.tag.pattern = RegExp(/<\\/?/.source + tagContent)\n    Prism.languages.cshtml.tag.inside['attr-value'].pattern = RegExp(\n      /=\\s*/.source + tagAttrValue\n    )\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        value: inlineValue\n      },\n      Prism.languages.cshtml.tag.inside['attr-value']\n    )\n    Prism.languages.insertBefore('cshtml', 'prolog', {\n      'razor-comment': {\n        pattern: /@\\*[\\s\\S]*?\\*@/,\n        greedy: true,\n        alias: 'comment'\n      },\n      block: {\n        pattern: RegExp(\n          /(^|[^@])@/.source +\n            '(?:' +\n            [\n              // @{ ... }\n              curly,\n              // @code{ ... }\n              /(?:code|functions)\\s*/.source + curly,\n              // @for (...) { ... }\n              /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly,\n              // @do { ... } while (...);\n              /do\\s*/.source +\n                curly +\n                /\\s*while\\s*/.source +\n                round +\n                /(?:\\s*;)?/.source,\n              // @try { ... } catch (...) { ... } finally { ... }\n              /try\\s*/.source +\n                curly +\n                /\\s*catch\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                /\\s*finally\\s*/.source +\n                curly,\n              // @if (...) {...} else if (...) {...} else {...}\n              /if\\s*/.source +\n                round +\n                /\\s*/.source +\n                curly +\n                '(?:' +\n                /\\s*else/.source +\n                '(?:' +\n                /\\s+if\\s*/.source +\n                round +\n                ')?' +\n                /\\s*/.source +\n                curly +\n                ')*',\n              // @helper Ident(params) { ... }\n              /helper\\s+\\w+\\s*/.source + round + /\\s*/.source + curly\n            ].join('|') +\n            ')'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w*/,\n          csharp: cs\n        }\n      },\n      directive: {\n        pattern:\n          /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          keyword: /^@\\w+/,\n          csharp: cs\n        }\n      },\n      value: inlineValue,\n      'delegate-operator': {\n        pattern: /(^|[^@])@(?=<)/,\n        lookbehind: true,\n        alias: 'operator'\n      }\n    })\n    Prism.languages.razor = Prism.languages.cshtml\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\njsx.displayName = 'jsx'\njsx.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsx(Prism) {\n  Prism.register(refractorJavascript)\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    var javascript = Prism.util.clone(Prism.languages.javascript)\n    var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n    var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n    var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n\n    /**\n     * @param {string} source\n     * @param {string} [flags]\n     */\n    function re(source, flags) {\n      source = source\n        .replace(/<S>/g, function () {\n          return space\n        })\n        .replace(/<BRACES>/g, function () {\n          return braces\n        })\n        .replace(/<SPREAD>/g, function () {\n          return spread\n        })\n      return RegExp(source, flags)\n    }\n    spread = re(spread).source\n    Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n    Prism.languages.jsx.tag.pattern = re(\n      /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n        .source\n    )\n    Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n    Prism.languages.jsx.tag.inside['attr-value'].pattern =\n      /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n    Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n      /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n    Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n    Prism.languages.insertBefore(\n      'inside',\n      'attr-name',\n      {\n        spread: {\n          pattern: re(/<SPREAD>/.source),\n          inside: Prism.languages.jsx\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n    Prism.languages.insertBefore(\n      'inside',\n      'special-attr',\n      {\n        script: {\n          // Allow for two levels of nesting\n          pattern: re(/=<BRACES>/.source),\n          alias: 'language-javascript',\n          inside: {\n            'script-punctuation': {\n              pattern: /^=(?=\\{)/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.jsx\n          }\n        }\n      },\n      Prism.languages.jsx.tag\n    )\n\n    // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (!token) {\n        return ''\n      }\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{'\n          ) {\n            // Here we might have entered a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left a JSX context inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside a JSX context.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token)\n\n            // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            tokens[i] = new Prism.Token(\n              'plain-text',\n              plainText,\n              null,\n              plainText\n            )\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'jsx' && env.language !== 'tsx') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJsx from './jsx.js'\nimport refractorTypescript from './typescript.js'\ntsx.displayName = 'tsx'\ntsx.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function tsx(Prism) {\n  Prism.register(refractorJsx)\n  Prism.register(refractorTypescript)\n  ;(function (Prism) {\n    var typescript = Prism.util.clone(Prism.languages.typescript)\n    Prism.languages.tsx = Prism.languages.extend('jsx', typescript)\n\n    // doesn't work with TS because TS is too complex\n    delete Prism.languages.tsx['parameter']\n    delete Prism.languages.tsx['literal-property']\n\n    // This will prevent collisions between TSX tags and TS generic types.\n    // Idea by https://github.com/karlhorky\n    // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n    var tag = Prism.languages.tsx.tag\n    tag.pattern = RegExp(\n      /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n      tag.pattern.flags\n    )\n    tag.lookbehind = true\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nreason.displayName = 'reason'\nreason.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function reason(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.reason = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    // 'class-name' must be matched *after* 'constructor' defined below\n    'class-name': /\\b[A-Z]\\w*/,\n    keyword:\n      /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n    operator:\n      /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n  })\n  Prism.languages.insertBefore('reason', 'class-name', {\n    char: {\n      pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n      greedy: true\n    },\n    // Negative look-ahead prevents from matching things like String.capitalize\n    constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n    label: {\n      pattern: /\\b[a-z]\\w*(?=::)/,\n      alias: 'symbol'\n    }\n  })\n\n  // We can't match functions property, so let's not even try.\n  delete Prism.languages.reason.function\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrego.displayName = 'rego'\nrego.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function rego(Prism) {\n  // https://www.openpolicyagent.org/docs/latest/policy-reference/\n\n  Prism.languages.rego = {\n    comment: /#.*/,\n    property: {\n      pattern:\n        /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n      lookbehind: true,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    function: {\n      pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n      inside: {\n        namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n        punctuation: /\\./\n      }\n    },\n    number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n    operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n    punctuation: /[,;.\\[\\]{}()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\n\n/** @param {Refractor} Prism */\nexport default function renpy(Prism) {\n  Prism.languages.renpy = {\n    comment: {\n      pattern: /(^|[^\\\\])#.+/,\n      lookbehind: true\n    },\n    string: {\n      pattern:\n        /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n      greedy: true\n    },\n    function: /\\b[a-z_]\\w*(?=\\()/i,\n    property:\n      /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n    tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n    keyword:\n      /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n    boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n    number:\n      /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n    operator:\n      /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.rpy = Prism.languages.renpy\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrescript.displayName = 'rescript'\nrescript.aliases = ['res']\n\n/** @param {Refractor} Prism */\nexport default function rescript(Prism) {\n  Prism.languages.rescript = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    char: {\n      pattern: /'(?:[^\\r\\n\\\\]|\\\\(?:.|\\w+))'/,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n      greedy: true\n    },\n    'class-name': /\\b[A-Z]\\w*|@[a-z.]*|#[A-Za-z]\\w*|#\\d/,\n    function: {\n      pattern: /[a-zA-Z]\\w*(?=\\()|(\\.)[a-z]\\w*/,\n      lookbehind: true\n    },\n    number:\n      /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n    boolean: /\\b(?:false|true)\\b/,\n    'attr-value': /[A-Za-z]\\w*(?==)/,\n    constant: {\n      pattern: /(\\btype\\s+)[a-z]\\w*/,\n      lookbehind: true\n    },\n    tag: {\n      pattern: /(<)[a-z]\\w*|(?:<\\/)[a-z]\\w*/,\n      lookbehind: true,\n      inside: {\n        operator: /<|>|\\//\n      }\n    },\n    keyword:\n      /\\b(?:and|as|assert|begin|bool|class|constraint|do|done|downto|else|end|exception|external|float|for|fun|function|if|in|include|inherit|initializer|int|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|string|switch|then|to|try|type|when|while|with)\\b/,\n    operator:\n      /\\.{3}|:[:=]?|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/,\n    punctuation: /[(){}[\\],;.]/\n  }\n  Prism.languages.insertBefore('rescript', 'string', {\n    'template-string': {\n      pattern:\n        /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n      greedy: true,\n      inside: {\n        'template-punctuation': {\n          pattern: /^`|`$/,\n          alias: 'string'\n        },\n        interpolation: {\n          pattern:\n            /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n          lookbehind: true,\n          inside: {\n            'interpolation-punctuation': {\n              pattern: /^\\$\\{|\\}$/,\n              alias: 'tag'\n            },\n            rest: Prism.languages.rescript\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.res = Prism.languages.rescript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrest.displayName = 'rest'\nrest.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function rest(Prism) {\n  Prism.languages.rest = {\n    table: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\||(?:\\+[=-]+)+\\+/\n        }\n      },\n      {\n        pattern:\n          /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n        lookbehind: true,\n        inside: {\n          punctuation: /[=-]+/\n        }\n      }\n    ],\n    // Directive-like patterns\n\n    'substitution-def': {\n      pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n      lookbehind: true,\n      inside: {\n        substitution: {\n          pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n          alias: 'attr-value',\n          inside: {\n            punctuation: /^\\||\\|$/\n          }\n        },\n        directive: {\n          pattern: /( )(?! )[^:]+::/,\n          lookbehind: true,\n          alias: 'function',\n          inside: {\n            punctuation: /::$/\n          }\n        }\n      }\n    },\n    'link-target': [\n      {\n        pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]$/\n        }\n      },\n      {\n        pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /^_|:$/\n        }\n      }\n    ],\n    directive: {\n      pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        punctuation: /::$/\n      }\n    },\n    comment: {\n      // The two alternatives try to prevent highlighting of blank comments\n      pattern:\n        /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n      lookbehind: true\n    },\n    title: [\n      // Overlined and underlined\n      {\n        pattern:\n          /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n        inside: {\n          punctuation:\n            /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      },\n      // Underlined only\n      {\n        pattern:\n          /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n        lookbehind: true,\n        inside: {\n          punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n          important: /.+/\n        }\n      }\n    ],\n    hr: {\n      pattern:\n        /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    field: {\n      pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    'command-line-option': {\n      pattern:\n        /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n      lookbehind: true,\n      alias: 'symbol'\n    },\n    'literal-block': {\n      pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^::/,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'quoted-literal-block': {\n      pattern:\n        /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n      inside: {\n        'literal-block-punctuation': {\n          pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n          alias: 'punctuation'\n        }\n      }\n    },\n    'list-bullet': {\n      pattern:\n        /(^[\\t ]*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n      lookbehind: true,\n      alias: 'punctuation'\n    },\n    'doctest-block': {\n      pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n      lookbehind: true,\n      inside: {\n        punctuation: /^>>>/\n      }\n    },\n    inline: [\n      {\n        pattern:\n          /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n        lookbehind: true,\n        inside: {\n          bold: {\n            pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n            lookbehind: true\n          },\n          italic: {\n            pattern: /(^\\*).+(?=\\*$)/,\n            lookbehind: true\n          },\n          'inline-literal': {\n            pattern: /(^``).+(?=``$)/,\n            lookbehind: true,\n            alias: 'symbol'\n          },\n          role: {\n            pattern: /^:[^:]+:|:[^:]+:$/,\n            alias: 'function',\n            inside: {\n              punctuation: /^:|:$/\n            }\n          },\n          'interpreted-text': {\n            pattern: /(^`).+(?=`$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          substitution: {\n            pattern: /(^\\|).+(?=\\|$)/,\n            lookbehind: true,\n            alias: 'attr-value'\n          },\n          punctuation: /\\*\\*?|``?|\\|/\n        }\n      }\n    ],\n    link: [\n      {\n        pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n        alias: 'string',\n        inside: {\n          punctuation: /^\\[|\\]_$/\n        }\n      },\n      {\n        pattern:\n          /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n        alias: 'string',\n        inside: {\n          punctuation: /^_?`|`$|`?_?_$/\n        }\n      }\n    ],\n    // Line block start,\n    // quote attribution,\n    // explicit markup start,\n    // and anonymous hyperlink target shortcut (__)\n    punctuation: {\n      pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n      lookbehind: true\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrip.displayName = 'rip'\nrip.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function rip(Prism) {\n  Prism.languages.rip = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    regex: {\n      pattern:\n        /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n    builtin: /@|\\bSystem\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n    time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n    datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n    symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n    number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n    punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n    reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function roboconf(Prism) {\n  Prism.languages.roboconf = {\n    comment: /#.*/,\n    keyword: {\n      pattern:\n        /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n      lookbehind: true\n    },\n    component: {\n      pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n      alias: 'variable'\n    },\n    property: /[\\w.-]+(?=[ \\t]*:)/,\n    value: {\n      pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n      lookbehind: true,\n      alias: 'attr-value'\n    },\n    optional: {\n      pattern: /\\(optional\\)/,\n      alias: 'builtin'\n    },\n    wildcard: {\n      pattern: /(\\.)\\*/,\n      lookbehind: true,\n      alias: 'operator'\n    },\n    punctuation: /[{},.;:=]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = ['robot']\n\n/** @param {Refractor} Prism */\nexport default function robotframework(Prism) {\n  ;(function (Prism) {\n    var comment = {\n      pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n      lookbehind: true,\n      greedy: true\n    }\n    var variable = {\n      pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n      lookbehind: true,\n      inside: {\n        punctuation: /^[$@&%]\\{|\\}$/\n      }\n    }\n    function createSection(name, inside) {\n      var extendecInside = {}\n      extendecInside['section-header'] = {\n        pattern: /^ ?\\*{3}.+?\\*{3}/,\n        alias: 'keyword'\n      }\n\n      // copy inside tokens\n      for (var token in inside) {\n        extendecInside[token] = inside[token]\n      }\n      extendecInside['tag'] = {\n        pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\[|\\]/\n        }\n      }\n      extendecInside['variable'] = variable\n      extendecInside['comment'] = comment\n      return {\n        pattern: RegExp(\n          /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n            /<name>/g,\n            function () {\n              return name\n            }\n          ),\n          'im'\n        ),\n        alias: 'section',\n        inside: extendecInside\n      }\n    }\n    var docTag = {\n      pattern:\n        /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n      lookbehind: true,\n      alias: 'string'\n    }\n    var testNameLike = {\n      pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      alias: 'function',\n      inside: {\n        variable: variable\n      }\n    }\n    var testPropertyLike = {\n      pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n      lookbehind: true,\n      inside: {\n        variable: variable\n      }\n    }\n    Prism.languages['robotframework'] = {\n      settings: createSection('Settings', {\n        documentation: {\n          pattern:\n            /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n          lookbehind: true,\n          alias: 'string'\n        },\n        property: {\n          pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n          lookbehind: true\n        }\n      }),\n      variables: createSection('Variables'),\n      'test-cases': createSection('Test Cases', {\n        'test-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      keywords: createSection('Keywords', {\n        'keyword-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      tasks: createSection('Tasks', {\n        'task-name': testNameLike,\n        documentation: docTag,\n        property: testPropertyLike\n      }),\n      comment: comment\n    }\n    Prism.languages.robot = Prism.languages['robotframework']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nrust.displayName = 'rust'\nrust.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function rust(Prism) {\n  ;(function (Prism) {\n    var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n    for (var i = 0; i < 2; i++) {\n      // support 4 levels of nested comments\n      multilineComment = multilineComment.replace(/<self>/g, function () {\n        return multilineComment\n      })\n    }\n    multilineComment = multilineComment.replace(/<self>/g, function () {\n      return /[^\\s\\S]/.source\n    })\n    Prism.languages.rust = {\n      comment: [\n        {\n          pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          pattern: /(^|[^\\\\:])\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      string: {\n        pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n        greedy: true\n      },\n      char: {\n        pattern:\n          /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n        greedy: true\n      },\n      attribute: {\n        pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n        greedy: true,\n        alias: 'attr-name',\n        inside: {\n          string: null // see below\n        }\n      },\n      // Closure params should not be confused with bitwise OR |\n      'closure-params': {\n        pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          'closure-punctuation': {\n            pattern: /^\\||\\|$/,\n            alias: 'punctuation'\n          },\n          rest: null // see below\n        }\n      },\n      'lifetime-annotation': {\n        pattern: /'\\w+/,\n        alias: 'symbol'\n      },\n      'fragment-specifier': {\n        pattern: /(\\$\\w+:)[a-z]+/,\n        lookbehind: true,\n        alias: 'punctuation'\n      },\n      variable: /\\$\\w+/,\n      'function-definition': {\n        pattern: /(\\bfn\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'function'\n      },\n      'type-definition': {\n        pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n        lookbehind: true,\n        alias: 'class-name'\n      },\n      'module-declaration': [\n        {\n          pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n          lookbehind: true,\n          alias: 'namespace'\n        },\n        {\n          pattern:\n            /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n          lookbehind: true,\n          alias: 'namespace',\n          inside: {\n            punctuation: /::/\n          }\n        }\n      ],\n      keyword: [\n        // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n        /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/,\n        // primitives and str\n        // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n        /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n      ],\n      // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n      // and Rust's naming conventions recommend snake_case anyway.\n      // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n      macro: {\n        pattern: /\\b\\w+!/,\n        alias: 'property'\n      },\n      constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n      'class-name': /\\b[A-Z]\\w*\\b/,\n      namespace: {\n        pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n        inside: {\n          punctuation: /::/\n        }\n      },\n      // Hex, oct, bin, dec numbers with visual separators and type suffix\n      number:\n        /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n      operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n    }\n    Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n    Prism.languages.rust['attribute'].inside['string'] =\n      Prism.languages.rust['string']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsas.displayName = 'sas'\nsas.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function sas(Prism) {\n  ;(function (Prism) {\n    var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n    var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n    var numericConstant = {\n      pattern: RegExp(stringPattern + '[bx]'),\n      alias: 'number'\n    }\n    var macroVariable = {\n      pattern: /&[a-z_]\\w*/i\n    }\n    var macroKeyword = {\n      pattern:\n        /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var step = {\n      pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n      alias: 'keyword',\n      lookbehind: true\n    }\n    var comment = [\n      /\\/\\*[\\s\\S]*?\\*\\//,\n      {\n        pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n        lookbehind: true\n      }\n    ]\n    var string = {\n      pattern: RegExp(stringPattern),\n      greedy: true\n    }\n    var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n    var func = {\n      pattern: /%?\\b\\w+(?=\\()/,\n      alias: 'keyword'\n    }\n    var args = {\n      function: func,\n      'arg-value': {\n        pattern: /(=\\s*)[A-Z\\.]+/i,\n        lookbehind: true\n      },\n      operator: /=/,\n      'macro-variable': macroVariable,\n      arg: {\n        pattern: /[A-Z]+/i,\n        alias: 'keyword'\n      },\n      number: number,\n      'numeric-constant': numericConstant,\n      punctuation: punctuation,\n      string: string\n    }\n    var format = {\n      pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n      inside: {\n        keyword: /^(?:format|put)(?==)/i,\n        equals: /=/,\n        format: {\n          pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var altformat = {\n      pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n      inside: {\n        keyword: /^(?:format|put)/i,\n        format: {\n          pattern: /[\\w$]+\\.\\d?/,\n          alias: 'number'\n        }\n      }\n    }\n    var globalStatements = {\n      pattern:\n        /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var submitStatement = {\n      pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n      lookbehind: true,\n      alias: 'keyword'\n    }\n    var actionSets =\n      /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n        .source\n    var casActions = {\n      pattern: RegExp(\n        /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n          /<act>/g,\n          function () {\n            return actionSets\n          }\n        ),\n        'i'\n      ),\n      lookbehind: true,\n      inside: {\n        keyword: RegExp(\n          /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n            return actionSets\n          }),\n          'i'\n        ),\n        action: {\n          pattern: /(?:action)/i,\n          alias: 'keyword'\n        },\n        comment: comment,\n        function: func,\n        'arg-value': args['arg-value'],\n        operator: args.operator,\n        argument: args.arg,\n        number: number,\n        'numeric-constant': numericConstant,\n        punctuation: punctuation,\n        string: string\n      }\n    }\n    var keywords = {\n      pattern:\n        /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n      lookbehind: true\n    }\n    Prism.languages.sas = {\n      datalines: {\n        pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          keyword: {\n            pattern: /^(?:cards|(?:data)?lines)/i\n          },\n          punctuation: /;/\n        }\n      },\n      'proc-sql': {\n        pattern:\n          /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          sql: {\n            pattern: RegExp(\n              /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            alias: 'language-sql',\n            inside: Prism.languages.sql\n          },\n          'global-statements': globalStatements,\n          'sql-statements': {\n            pattern:\n              /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n            lookbehind: true,\n            alias: 'keyword'\n          },\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-groovy': {\n        pattern:\n          /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          groovy: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-groovy',\n            inside: Prism.languages.groovy\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-lua': {\n        pattern:\n          /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          lua: {\n            pattern: RegExp(\n              /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n                /<str>/g,\n                function () {\n                  return stringPattern\n                }\n              ),\n              'im'\n            ),\n            lookbehind: true,\n            alias: 'language-lua',\n            inside: Prism.languages.lua\n          },\n          keyword: keywords,\n          'submit-statement': submitStatement,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-cas': {\n        pattern:\n          /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n        lookbehind: true,\n        inside: {\n          comment: comment,\n          'statement-var': {\n            pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n            lookbehind: true,\n            inside: {\n              statement: {\n                pattern: /^saveresult\\s+\\S+/i,\n                inside: {\n                  keyword: /^(?:saveresult)/i\n                }\n              },\n              rest: args\n            }\n          },\n          'cas-actions': casActions,\n          statement: {\n            pattern:\n              /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n            lookbehind: true,\n            inside: args\n          },\n          step: step,\n          keyword: keywords,\n          function: func,\n          format: format,\n          altformat: altformat,\n          'global-statements': globalStatements,\n          number: number,\n          'numeric-constant': numericConstant,\n          punctuation: punctuation,\n          string: string\n        }\n      },\n      'proc-args': {\n        pattern: RegExp(\n          /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n            /<str>/g,\n            function () {\n              return stringPattern\n            }\n          ),\n          'im'\n        ),\n        lookbehind: true,\n        inside: args\n      },\n      /*Special keywords within macros*/\n      'macro-keyword': macroKeyword,\n      'macro-variable': macroVariable,\n      'macro-string-functions': {\n        pattern:\n          /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n        lookbehind: true,\n        inside: {\n          function: {\n            pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n            alias: 'keyword'\n          },\n          'macro-keyword': macroKeyword,\n          'macro-variable': macroVariable,\n          'escaped-char': {\n            pattern: /%['\"()<>=¬^~;,#]/\n          },\n          punctuation: punctuation\n        }\n      },\n      'macro-declaration': {\n        pattern: /^%macro[^;]+(?=;)/im,\n        inside: {\n          keyword: /%macro/i\n        }\n      },\n      'macro-end': {\n        pattern: /^%mend[^;]+(?=;)/im,\n        inside: {\n          keyword: /%mend/i\n        }\n      },\n      /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n      macro: {\n        pattern: /%_\\w+(?=\\()/,\n        alias: 'keyword'\n      },\n      input: {\n        pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n        inside: {\n          input: {\n            alias: 'keyword',\n            pattern: /^input/i\n          },\n          comment: comment,\n          number: number,\n          'numeric-constant': numericConstant\n        }\n      },\n      'options-args': {\n        pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n        lookbehind: true,\n        inside: args\n      },\n      'cas-actions': casActions,\n      comment: comment,\n      function: func,\n      format: format,\n      altformat: altformat,\n      'numeric-constant': numericConstant,\n      datetime: {\n        // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n        pattern: RegExp(stringPattern + '(?:dt?|t)'),\n        alias: 'number'\n      },\n      string: string,\n      step: step,\n      keyword: keywords,\n      // In SAS Studio syntax highlighting, these operators are styled like keywords\n      'operator-keyword': {\n        pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n        alias: 'operator'\n      },\n      // Decimal (1.2e23), hexadecimal (0c1x)\n      number: number,\n      operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n      punctuation: punctuation\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCss from './css.js'\nsass.displayName = 'sass'\nsass.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function sass(Prism) {\n  Prism.register(refractorCss)\n  ;(function (Prism) {\n    Prism.languages.sass = Prism.languages.extend('css', {\n      // Sass comments don't need to be closed, only indented\n      comment: {\n        pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n    Prism.languages.insertBefore('sass', 'atrule', {\n      // We want to consume the whole line\n      'atrule-line': {\n        // Includes support for = and + shortcuts\n        pattern: /^(?:[ \\t]*)[@+=].+/m,\n        greedy: true,\n        inside: {\n          atrule: /(?:@[\\w-]+|[+=])/\n        }\n      }\n    })\n    delete Prism.languages.sass.atrule\n    var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n    var operator = [\n      /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n      {\n        pattern: /(\\s)-(?=\\s)/,\n        lookbehind: true\n      }\n    ]\n    Prism.languages.insertBefore('sass', 'property', {\n      // We want to consume the whole line\n      'variable-line': {\n        pattern: /^[ \\t]*\\$.+/m,\n        greedy: true,\n        inside: {\n          punctuation: /:/,\n          variable: variable,\n          operator: operator\n        }\n      },\n      // We want to consume the whole line\n      'property-line': {\n        pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n        greedy: true,\n        inside: {\n          property: [\n            /[^:\\s]+(?=\\s*:)/,\n            {\n              pattern: /(:)[^:\\s]+/,\n              lookbehind: true\n            }\n          ],\n          punctuation: /:/,\n          variable: variable,\n          operator: operator,\n          important: Prism.languages.sass.important\n        }\n      }\n    })\n    delete Prism.languages.sass.property\n    delete Prism.languages.sass.important\n\n    // Now that whole lines for other patterns are consumed,\n    // what's left should be selectors\n    Prism.languages.insertBefore('sass', 'punctuation', {\n      selector: {\n        pattern:\n          /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n        lookbehind: true,\n        greedy: true\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorBash from './bash.js'\nshellSession.displayName = 'shell-session'\nshellSession.aliases = ['sh-session', 'shellsession']\n\n/** @param {Refractor} Prism */\nexport default function shellSession(Prism) {\n  Prism.register(refractorBash)\n  ;(function (Prism) {\n    // CAREFUL!\n    // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n\n    var strings = [\n      // normal string\n      /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n      /'[^']*'/.source,\n      /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source,\n      // here doc\n      // 2 capturing groups\n      /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n    ].join('|')\n    Prism.languages['shell-session'] = {\n      command: {\n        pattern: RegExp(\n          // user info\n          /^/.source +\n            '(?:' +\n            // <user> \":\" ( <path> )?\n            (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n              .source +\n              '|' +\n              // <path>\n              // Since the path pattern is quite general, we will require it to start with a special character to\n              // prevent false positives.\n              /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n            ')?' +\n            // shell symbol\n            /[$#%](?=\\s)/.source +\n            // bash command\n            /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n              /<<str>>/g,\n              function () {\n                return strings\n              }\n            ),\n          'm'\n        ),\n        greedy: true,\n        inside: {\n          info: {\n            // foo@bar:~/files$ exit\n            // foo@bar$ exit\n            // ~/files$ exit\n            pattern: /^[^#$%]+/,\n            alias: 'punctuation',\n            inside: {\n              user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n              punctuation: /:/,\n              path: /[\\s\\S]+/\n            }\n          },\n          bash: {\n            pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n            lookbehind: true,\n            alias: 'language-bash',\n            inside: Prism.languages.bash\n          },\n          'shell-symbol': {\n            pattern: /^[$#%]/,\n            alias: 'important'\n          }\n        }\n      },\n      output: /.(?:.*(?:[\\r\\n]|.$))*/\n    }\n    Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n      Prism.languages['shell-session']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsmali.displayName = 'smali'\nsmali.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function smali(Prism) {\n  // Test files for the parser itself:\n  // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n\n  Prism.languages.smali = {\n    comment: /#.*/,\n    string: {\n      pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n      greedy: true\n    },\n    'class-name': {\n      pattern:\n        /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n      lookbehind: true,\n      inside: {\n        'class-name': {\n          pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n          lookbehind: true\n        },\n        namespace: {\n          pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n          lookbehind: true,\n          inside: {\n            punctuation: /\\//\n          }\n        },\n        builtin: /^L/\n      }\n    },\n    builtin: [\n      {\n        // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n        pattern: /([();\\[])[BCDFIJSVZ]+/,\n        lookbehind: true\n      },\n      {\n        // e.g. .field mWifiOnUid:I\n        pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n        lookbehind: true\n      }\n    ],\n    keyword: [\n      {\n        pattern: /(\\.end\\s+)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n        lookbehind: true\n      },\n      {\n        pattern:\n          /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n      lookbehind: true\n    },\n    field: {\n      pattern: /[\\w$]+(?=:)/,\n      alias: 'variable'\n    },\n    register: {\n      pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n      lookbehind: true,\n      alias: 'variable'\n    },\n    boolean: {\n      pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n      lookbehind: true\n    },\n    number: {\n      pattern:\n        /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n      lookbehind: true\n    },\n    label: {\n      pattern: /(:)\\w+/,\n      lookbehind: true,\n      alias: 'property'\n    },\n    operator: /->|\\.\\.|[\\[=]/,\n    punctuation: /[{}(),;:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function smalltalk(Prism) {\n  Prism.languages.smalltalk = {\n    comment: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    char: {\n      pattern: /\\$./,\n      greedy: true\n    },\n    string: {\n      pattern: /'(?:''|[^'])*'/,\n      greedy: true\n    },\n    symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n    'block-arguments': {\n      pattern: /(\\[\\s*):[^\\[|]*\\|/,\n      lookbehind: true,\n      inside: {\n        variable: /:[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    'temporary-variables': {\n      pattern: /\\|[^|]+\\|/,\n      inside: {\n        variable: /[\\da-z]+/i,\n        punctuation: /\\|/\n      }\n    },\n    keyword: /\\b(?:new|nil|self|super)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: [\n      /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n      /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n    ],\n    operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n    punctuation: /[.;:?\\[\\](){}]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function smarty(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.smarty = {\n      comment: {\n        pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n        greedy: true\n      },\n      'embedded-php': {\n        pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n        greedy: true,\n        inside: {\n          smarty: {\n            pattern: /^\\{php\\}|\\{\\/php\\}$/,\n            inside: null // see below\n          },\n          php: {\n            pattern: /[\\s\\S]+/,\n            alias: 'language-php',\n            inside: Prism.languages.php\n          }\n        }\n      },\n      string: [\n        {\n          pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n          greedy: true,\n          inside: {\n            interpolation: {\n              pattern: /\\{[^{}]*\\}|`[^`]*`/,\n              inside: {\n                'interpolation-punctuation': {\n                  pattern: /^[{`]|[`}]$/,\n                  alias: 'punctuation'\n                },\n                expression: {\n                  pattern: /[\\s\\S]+/,\n                  inside: null // see below\n                }\n              }\n            },\n            variable: /\\$\\w+/\n          }\n        },\n        {\n          pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n          greedy: true\n        }\n      ],\n      keyword: {\n        pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n        lookbehind: true,\n        greedy: true\n      },\n      delimiter: {\n        pattern: /^\\{\\/?|\\}$/,\n        greedy: true,\n        alias: 'punctuation'\n      },\n      number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n      variable: [\n        /\\$(?!\\d)\\w+/,\n        /#(?!\\d)\\w+#/,\n        {\n          pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n          lookbehind: true\n        },\n        {\n          pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n        lookbehind: true\n      },\n      'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n      boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n      punctuation: /[\\[\\](){}.,:`]|->/,\n      operator: [\n        /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n        /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n        /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n      ]\n    }\n    Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n      Prism.languages.smarty\n    Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n      Prism.languages.smarty\n    var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n    var smartyPattern = RegExp(\n      // comments\n      /\\{\\*[\\s\\S]*?\\*\\}/.source +\n        '|' +\n        // php tags\n        /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n        '|' +\n        // smarty blocks\n        /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n          /<str>/g,\n          function () {\n            return string.source\n          }\n        ),\n      'g'\n    )\n\n    // Tokenize all inline Smarty expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var smartyLiteralStart = '{literal}'\n      var smartyLiteralEnd = '{/literal}'\n      var smartyLiteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'smarty',\n        smartyPattern,\n        function (match) {\n          // Smarty tags inside {literal} block are ignored\n          if (match === smartyLiteralEnd) {\n            smartyLiteralMode = false\n          }\n          if (!smartyLiteralMode) {\n            if (match === smartyLiteralStart) {\n              smartyLiteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    })\n\n    // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\n\n/** @param {Refractor} Prism */\nexport default function sml(Prism) {\n  // https://smlfamily.github.io/sml97-defn.pdf\n  // https://people.mpi-sws.org/~rossberg/sml.html\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n    Prism.languages.sml = {\n      // allow one level of nesting\n      comment:\n        /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n      string: {\n        pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n        greedy: true\n      },\n      'class-name': [\n        {\n          // This is only an approximation since the real grammar is context-free\n          //\n          // Why the main loop so complex?\n          // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n          // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n          // followed by a long identifier.\n          pattern: RegExp(\n            /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n              .replace(/<NOT-LAST>/g, function () {\n                return /\\s*(?:[*,]|->)/.source\n              })\n              .replace(/<TERMINAL>/g, function () {\n                return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n                  .source\n              })\n              .replace(/<LONG-ID>/g, function () {\n                return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n              })\n              .replace(/<KEYWORD>/g, function () {\n                return keywords.source\n              }),\n            'i'\n          ),\n          lookbehind: true,\n          greedy: true,\n          inside: null // see below\n        },\n        {\n          pattern:\n            /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n          lookbehind: true\n        }\n      ],\n      function: {\n        pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n        lookbehind: true\n      },\n      keyword: keywords,\n      variable: {\n        pattern: /(^|[^\\w'])'[\\w']*/,\n        lookbehind: true\n      },\n      number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n      word: {\n        pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n        alias: 'constant'\n      },\n      boolean: /\\b(?:false|true)\\b/i,\n      operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n      punctuation: /[(){}\\[\\].:,;]/\n    }\n    Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n    Prism.languages.smlnj = Prism.languages.sml\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\n\n/** @param {Refractor} Prism */\nexport default function solidity(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.solidity = Prism.languages.extend('clike', {\n    'class-name': {\n      pattern:\n        /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n    operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n  })\n  Prism.languages.insertBefore('solidity', 'keyword', {\n    builtin:\n      /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n  })\n  Prism.languages.insertBefore('solidity', 'number', {\n    version: {\n      pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n      lookbehind: true,\n      alias: 'number'\n    }\n  })\n  Prism.languages.sol = Prism.languages.solidity\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsolutionFile.displayName = 'solution-file'\nsolutionFile.aliases = ['sln']\n\n/** @param {Refractor} Prism */\nexport default function solutionFile(Prism) {\n  ;(function (Prism) {\n    var guid = {\n      // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n      pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n      alias: 'constant',\n      inside: {\n        punctuation: /[{}]/\n      }\n    }\n    Prism.languages['solution-file'] = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n        greedy: true,\n        inside: {\n          guid: guid\n        }\n      },\n      object: {\n        // Foo\n        //   Bar(\"abs\") = 9\n        //   EndBar\n        //   Prop = TRUE\n        // EndFoo\n        pattern:\n          /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n        lookbehind: true,\n        greedy: true,\n        alias: 'keyword'\n      },\n      property: {\n        pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n        lookbehind: true,\n        inside: {\n          guid: guid\n        }\n      },\n      guid: guid,\n      number: /\\b\\d+(?:\\.\\d+)*\\b/,\n      boolean: /\\b(?:FALSE|TRUE)\\b/,\n      operator: /=/,\n      punctuation: /[(),]/\n    }\n    Prism.languages['sln'] = Prism.languages['solution-file']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkupTemplating from './markup-templating.js'\nsoy.displayName = 'soy'\nsoy.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function soy(Prism) {\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n    var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n    Prism.languages.soy = {\n      comment: [\n        /\\/\\*[\\s\\S]*?\\*\\//,\n        {\n          pattern: /(\\s)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      'command-arg': {\n        pattern:\n          /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'string',\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      parameter: {\n        pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n        lookbehind: true,\n        alias: 'variable'\n      },\n      keyword: [\n        {\n          pattern:\n            /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n          lookbehind: true\n        },\n        /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n      ],\n      delimiter: {\n        pattern: /^\\{+\\/?|\\/?\\}+$/,\n        alias: 'punctuation'\n      },\n      property: /\\w+(?==)/,\n      variable: {\n        pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n        inside: {\n          string: {\n            pattern: stringPattern,\n            greedy: true\n          },\n          number: numberPattern,\n          punctuation: /[\\[\\].?]/\n        }\n      },\n      string: {\n        pattern: stringPattern,\n        greedy: true\n      },\n      function: [\n        /\\w+(?=\\()/,\n        {\n          pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n          lookbehind: true\n        }\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: numberPattern,\n      operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n      punctuation: /[{}()\\[\\]|.,:]/\n    }\n\n    // Tokenize all inline Soy expressions\n    Prism.hooks.add('before-tokenize', function (env) {\n      var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n      var soyLitteralStart = '{literal}'\n      var soyLitteralEnd = '{/literal}'\n      var soyLitteralMode = false\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'soy',\n        soyPattern,\n        function (match) {\n          // Soy tags inside {literal} block are ignored\n          if (match === soyLitteralEnd) {\n            soyLitteralMode = false\n          }\n          if (!soyLitteralMode) {\n            if (match === soyLitteralStart) {\n              soyLitteralMode = true\n            }\n            return true\n          }\n          return false\n        }\n      )\n    })\n\n    // Re-insert the tokens after tokenizing\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nturtle.displayName = 'turtle'\nturtle.aliases = ['trig']\n\n/** @param {Refractor} Prism */\nexport default function turtle(Prism) {\n  Prism.languages.turtle = {\n    comment: {\n      pattern: /#.*/,\n      greedy: true\n    },\n    'multiline-string': {\n      pattern:\n        /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n      greedy: true,\n      alias: 'string',\n      inside: {\n        comment: /#.*/\n      }\n    },\n    string: {\n      pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n      greedy: true\n    },\n    url: {\n      pattern:\n        /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n      greedy: true,\n      inside: {\n        punctuation: /[<>]/\n      }\n    },\n    function: {\n      pattern:\n        /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n      inside: {\n        'local-name': {\n          pattern: /([^:]*:)[\\s\\S]+/,\n          lookbehind: true\n        },\n        prefix: {\n          pattern: /[\\s\\S]+/,\n          inside: {\n            punctuation: /:/\n          }\n        }\n      }\n    },\n    number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n    punctuation: /[{}.,;()[\\]]|\\^\\^/,\n    boolean: /\\b(?:false|true)\\b/,\n    keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n    tag: {\n      pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n      inside: {\n        punctuation: /@/\n      }\n    }\n  }\n  Prism.languages.trig = Prism.languages['turtle']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorTurtle from './turtle.js'\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\n\n/** @param {Refractor} Prism */\nexport default function sparql(Prism) {\n  Prism.register(refractorTurtle)\n  Prism.languages.sparql = Prism.languages.extend('turtle', {\n    boolean: /\\b(?:false|true)\\b/i,\n    variable: {\n      pattern: /[?$]\\w+/,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('sparql', 'punctuation', {\n    keyword: [\n      /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n      /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n      /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n    ]\n  })\n  Prism.languages.rq = Prism.languages.sparql\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsplunkSpl.displayName = 'splunk-spl'\nsplunkSpl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function splunkSpl(Prism) {\n  Prism.languages['splunk-spl'] = {\n    comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n      greedy: true\n    },\n    // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n    keyword:\n      /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n    'operator-word': {\n      pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n      alias: 'operator'\n    },\n    function: /\\b\\w+(?=\\s*\\()/,\n    property: /\\b\\w+(?=\\s*=(?!=))/,\n    date: {\n      // MM/DD/YYYY(:HH:MM:SS)?\n      pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n      alias: 'number'\n    },\n    number: /\\b\\d+(?:\\.\\d+)?\\b/,\n    boolean: /\\b(?:f|false|t|true)\\b/i,\n    operator: /[<>=]=?|[-+*/%|]/,\n    punctuation: /[()[\\],]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nsqf.displayName = 'sqf'\nsqf.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function sqf(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.sqf = Prism.languages.extend('clike', {\n    string: {\n      pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function:\n      /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n    number:\n      /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n    operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n    'magic-variable': {\n      pattern:\n        /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n      alias: 'keyword'\n    },\n    constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n  })\n  Prism.languages.insertBefore('sqf', 'string', {\n    macro: {\n      pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property',\n      inside: {\n        directive: {\n          pattern: /#[a-z]+\\b/i,\n          alias: 'keyword'\n        },\n        comment: Prism.languages.sqf.comment\n      }\n    }\n  })\n  delete Prism.languages.sqf['class-name']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function squirrel(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.squirrel = Prism.languages.extend('clike', {\n    comment: [\n      Prism.languages.clike['comment'][0],\n      {\n        pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    'class-name': {\n      pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n      lookbehind: true,\n      inside: {\n        punctuation: /\\./\n      }\n    },\n    keyword:\n      /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n    number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n    operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n    punctuation: /[(){}\\[\\],;.]/\n  })\n  Prism.languages.insertBefore('squirrel', 'string', {\n    char: {\n      pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n      lookbehind: true,\n      greedy: true\n    }\n  })\n  Prism.languages.insertBefore('squirrel', 'operator', {\n    'attribute-punctuation': {\n      pattern: /<\\/|\\/>/,\n      alias: 'important'\n    },\n    lambda: {\n      pattern: /@(?=\\()/,\n      alias: 'operator'\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nstan.displayName = 'stan'\nstan.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function stan(Prism) {\n  ;(function (Prism) {\n    // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n\n    var higherOrderFunctions =\n      /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n    Prism.languages.stan = {\n      comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n      string: {\n        // String literals can contain spaces and any printable ASCII characters except for \" and \\\n        // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n        pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n        greedy: true\n      },\n      directive: {\n        pattern: /^([ \\t]*)#include\\b.*/m,\n        lookbehind: true,\n        alias: 'property'\n      },\n      'function-arg': {\n        pattern: RegExp(\n          '(' +\n            higherOrderFunctions.source +\n            /\\s*\\(\\s*/.source +\n            ')' +\n            /[a-zA-Z]\\w*/.source\n        ),\n        lookbehind: true,\n        alias: 'function'\n      },\n      constraint: {\n        pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          property: /\\b[a-z]\\w*(?=\\s*=)/i,\n          operator: /=/,\n          punctuation: /^<|>$|,/\n        }\n      },\n      keyword: [\n        {\n          pattern:\n            /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n          alias: 'program-block'\n        },\n        /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/,\n        // these are functions that are known to take another function as their first argument.\n        higherOrderFunctions\n      ],\n      function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n      number:\n        /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n      boolean: /\\b(?:false|true)\\b/,\n      operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n      punctuation: /[()\\[\\]{},;]/\n    }\n    Prism.languages.stan.constraint.inside.expression.inside =\n      Prism.languages.stan\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJava from './java.js'\nimport refractorMata from './mata.js'\nimport refractorPython from './python.js'\nstata.displayName = 'stata'\nstata.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function stata(Prism) {\n  Prism.register(refractorJava)\n  Prism.register(refractorMata)\n  Prism.register(refractorPython)\n  // https://www.stata.com/manuals/u.pdf\n  // https://www.stata.com/manuals/p.pdf\n\n  Prism.languages.stata = {\n    comment: [\n      {\n        pattern: /(^[ \\t]*)\\*.*/m,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|\\s)\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    'string-literal': {\n      pattern: /\"[^\"\\r\\n]*\"|[‘`']\".*?\"[’`']/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$\\{[^{}]*\\}|[‘`']\\w[^’`'\\r\\n]*[’`']/,\n          inside: {\n            punctuation: /^\\$\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: null // see below\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    },\n    mata: {\n      pattern: /(^[ \\t]*mata[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'language-mata',\n      inside: Prism.languages.mata\n    },\n    java: {\n      pattern: /(^[ \\t]*java[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'language-java',\n      inside: Prism.languages.java\n    },\n    python: {\n      pattern: /(^[ \\t]*python[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'language-python',\n      inside: Prism.languages.python\n    },\n    command: {\n      pattern:\n        /(^[ \\t]*(?:\\.[ \\t]+)?(?:(?:bayes|bootstrap|by|bysort|capture|collect|fmm|fp|frame|jackknife|mfp|mi|nestreg|noisily|permute|quietly|rolling|simulate|statsby|stepwise|svy|version|xi)\\b[^:\\r\\n]*:[ \\t]*|(?:capture|noisily|quietly|version)[ \\t]+)?)[a-zA-Z]\\w*/m,\n      lookbehind: true,\n      greedy: true,\n      alias: 'keyword'\n    },\n    variable: /\\$\\w+|[‘`']\\w[^’`'\\r\\n]*[’`']/,\n    keyword:\n      /\\b(?:bayes|bootstrap|by|bysort|capture|clear|collect|fmm|fp|frame|if|in|jackknife|mi[ \\t]+estimate|mfp|nestreg|noisily|of|permute|quietly|rolling|simulate|sort|statsby|stepwise|svy|varlist|version|xi)\\b/,\n    boolean: /\\b(?:off|on)\\b/,\n    number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+/,\n    function: /\\b[a-z_]\\w*(?=\\()/i,\n    operator: /\\+\\+|--|##?|[<>!=~]=?|[+\\-*^&|/]/,\n    punctuation: /[(){}[\\],:]/\n  }\n  Prism.languages.stata[\n    'string-literal'\n  ].inside.interpolation.inside.expression.inside = Prism.languages.stata\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\niecst.displayName = 'iecst'\niecst.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function iecst(Prism) {\n  Prism.languages.iecst = {\n    comment: [\n      {\n        pattern:\n          /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n        lookbehind: true,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    keyword: [\n      /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n      /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n    ],\n    'class-name':\n      /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n    address: {\n      pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n      alias: 'symbol'\n    },\n    number:\n      /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n    operator:\n      /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    punctuation: /[()[\\].,;]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsupercollider.displayName = 'supercollider'\nsupercollider.aliases = ['sclang']\n\n/** @param {Refractor} Prism */\nexport default function supercollider(Prism) {\n  Prism.languages.supercollider = {\n    comment: {\n      pattern:\n        /\\/\\/.*|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /(^|[^\\\\])\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n      lookbehind: true,\n      greedy: true\n    },\n    char: {\n      pattern: /\\$(?:[^\\\\\\r\\n]|\\\\.)/,\n      greedy: true\n    },\n    symbol: {\n      pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'|\\\\\\w+/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword: /\\b(?:_|arg|classvar|const|nil|var|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    label: {\n      pattern: /\\b[a-z_]\\w*(?=\\s*:)/,\n      alias: 'property'\n    },\n    number:\n      /\\b(?:inf|pi|0x[0-9a-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(?:pi)?|\\d+r[0-9a-zA-Z]+(?:\\.[0-9a-zA-Z]+)?|\\d+[sb]{1,4}\\d*)\\b/,\n    'class-name': /\\b[A-Z]\\w*\\b/,\n    operator:\n      /\\.{2,3}|#(?![[{])|&&|[!=]==?|\\+>>|\\+{1,3}|-[->]|=>|>>|\\?\\?|@\\|?@|\\|(?:@|[!=]=)?\\||!\\?|<[!=>]|\\*{1,2}|<{2,3}\\*?|[-!%&/<>?@|=`]/,\n    punctuation: /[{}()[\\].:,;]|#[[{]/\n  }\n  Prism.languages.sclang = Prism.languages.supercollider\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nswift.displayName = 'swift'\nswift.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function swift(Prism) {\n  Prism.languages.swift = {\n    comment: {\n      // Nested comments are supported up to 2 levels\n      pattern:\n        /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n      lookbehind: true,\n      greedy: true\n    },\n    'string-literal': [\n      // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n      {\n        pattern: RegExp(\n          /(^|[^\"#])/.source +\n            '(?:' +\n            // single-line string\n            /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n              .source +\n            '|' +\n            // multi-line string\n            /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n              .source +\n            ')' +\n            /(?![\"#])/.source\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\\\($/,\n            alias: 'punctuation'\n          },\n          punctuation: /\\\\(?=[\\r\\n])/,\n          string: /[\\s\\S]+/\n        }\n      },\n      {\n        pattern: RegExp(\n          /(^|[^\"#])(#+)/.source +\n            '(?:' +\n            // single-line string\n            /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n              .source +\n            '|' +\n            // multi-line string\n            /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n            ')' +\n            '\\\\2'\n        ),\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n            lookbehind: true,\n            inside: null // see below\n          },\n          'interpolation-punctuation': {\n            pattern: /^\\)|\\\\#+\\($/,\n            alias: 'punctuation'\n          },\n          string: /[\\s\\S]+/\n        }\n      }\n    ],\n    directive: {\n      // directives with conditions\n      pattern: RegExp(\n        /#/.source +\n          '(?:' +\n          (/(?:elseif|if)\\b/.source +\n            '(?:[ \\t]*' +\n            // This regex is a little complex. It's equivalent to this:\n            //   (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n            // where <round> is a general parentheses expression.\n            /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n              .source +\n            ')+') +\n          '|' +\n          /(?:else|endif)\\b/.source +\n          ')'\n      ),\n      alias: 'property',\n      inside: {\n        'directive-name': /^#\\w+/,\n        boolean: /\\b(?:false|true)\\b/,\n        number: /\\b\\d+(?:\\.\\d+)*\\b/,\n        operator: /!|&&|\\|\\||[<>]=?/,\n        punctuation: /[(),]/\n      }\n    },\n    literal: {\n      pattern:\n        /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n      alias: 'constant'\n    },\n    'other-directive': {\n      pattern: /#\\w+\\b/,\n      alias: 'property'\n    },\n    attribute: {\n      pattern: /@\\w+/,\n      alias: 'atrule'\n    },\n    'function-definition': {\n      pattern: /(\\bfunc\\s+)\\w+/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    label: {\n      // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n      pattern:\n        /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n      lookbehind: true,\n      alias: 'important'\n    },\n    keyword:\n      /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    nil: {\n      pattern: /\\bnil\\b/,\n      alias: 'constant'\n    },\n    'short-argument': /\\$\\d+\\b/,\n    omit: {\n      pattern: /\\b_\\b/,\n      alias: 'keyword'\n    },\n    number:\n      /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n    // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n    'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n    // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n    // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n    // This regex only supports ASCII operators.\n    operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n    punctuation: /[{}[\\]();,.:\\\\]/\n  }\n  Prism.languages.swift['string-literal'].forEach(function (rule) {\n    rule.inside['interpolation'].inside = Prism.languages.swift\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function systemd(Prism) {\n  // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n\n  ;(function (Prism) {\n    var comment = {\n      pattern: /^[;#].*/m,\n      greedy: true\n    }\n    var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n    Prism.languages.systemd = {\n      comment: comment,\n      section: {\n        pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n        greedy: true,\n        inside: {\n          punctuation: /^\\[|\\]$/,\n          'section-name': {\n            pattern: /[\\s\\S]+/,\n            alias: 'selector'\n          }\n        }\n      },\n      key: {\n        pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n        greedy: true,\n        alias: 'attr-name'\n      },\n      value: {\n        // This pattern is quite complex because of two properties:\n        //  1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n        //     the lookbehind. You will see this in the main loop where spaces are handled separately.\n        //  2) Line continuations.\n        //     After line continuations, empty lines and comments are ignored so we have to consume them.\n        pattern: RegExp(\n          /(=[ \\t]*(?!\\s))/.source +\n            // the value either starts with quotes or not\n            '(?:' +\n            quotesSource +\n            '|(?=[^\"\\r\\n]))' +\n            // main loop\n            '(?:' +\n            (/[^\\s\\\\]/.source +\n              // handle spaces separately because of quotes\n              '|' +\n              '[ \\t]+(?:(?![ \\t\"])|' +\n              quotesSource +\n              ')' +\n              // line continuation\n              '|' +\n              /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n            ')*'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'attr-value',\n        inside: {\n          comment: comment,\n          quoted: {\n            pattern: RegExp(/(^|\\s)/.source + quotesSource),\n            lookbehind: true,\n            greedy: true\n          },\n          punctuation: /\\\\$/m,\n          boolean: {\n            pattern: /^(?:false|no|off|on|true|yes)$/,\n            greedy: true\n          }\n        }\n      },\n      punctuation: /=/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nt4Templating.displayName = 't4-templating'\nt4Templating.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function t4Templating(Prism) {\n  ;(function (Prism) {\n    function createBlock(prefix, inside, contentAlias) {\n      return {\n        pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n        alias: 'block',\n        inside: {\n          delimiter: {\n            pattern: RegExp('^<#' + prefix + '|#>$'),\n            alias: 'important'\n          },\n          content: {\n            pattern: /[\\s\\S]+/,\n            inside: inside,\n            alias: contentAlias\n          }\n        }\n      }\n    }\n    function createT4(insideLang) {\n      var grammar = Prism.languages[insideLang]\n      var className = 'language-' + insideLang\n      return {\n        block: {\n          pattern: /<#[\\s\\S]+?#>/,\n          inside: {\n            directive: createBlock('@', {\n              'attr-value': {\n                pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n                inside: {\n                  punctuation: /^=|^[\"']|[\"']$/\n                }\n              },\n              keyword: /\\b\\w+(?=\\s)/,\n              'attr-name': /\\b\\w+/\n            }),\n            expression: createBlock('=', grammar, className),\n            'class-feature': createBlock('\\\\+', grammar, className),\n            standard: createBlock('', grammar, className)\n          }\n        }\n      }\n    }\n    Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n      value: createT4\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorCsharp from './csharp.js'\nimport refractorT4Templating from './t4-templating.js'\nt4Cs.displayName = 't4-cs'\nt4Cs.aliases = ['t4']\n\n/** @param {Refractor} Prism */\nexport default function t4Cs(Prism) {\n  Prism.register(refractorCsharp)\n  Prism.register(refractorT4Templating)\n  Prism.languages.t4 = Prism.languages['t4-cs'] =\n    Prism.languages['t4-templating'].createT4('csharp')\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorBasic from './basic.js'\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function vbnet(Prism) {\n  Prism.register(refractorBasic)\n  Prism.languages.vbnet = Prism.languages.extend('basic', {\n    comment: [\n      {\n        pattern: /(?:!|REM\\b).+/i,\n        inside: {\n          keyword: /^REM/i\n        }\n      },\n      {\n        pattern: /(^|[^\\\\:])'.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n      lookbehind: true,\n      greedy: true\n    },\n    keyword:\n      /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n    punctuation: /[,;:(){}]/\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorT4Templating from './t4-templating.js'\nimport refractorVbnet from './vbnet.js'\nt4Vb.displayName = 't4-vb'\nt4Vb.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function t4Vb(Prism) {\n  Prism.register(refractorT4Templating)\n  Prism.register(refractorVbnet)\n  Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorYaml from './yaml.js'\ntap.displayName = 'tap'\ntap.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function tap(Prism) {\n  Prism.register(refractorYaml)\n  // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n\n  Prism.languages.tap = {\n    fail: /not ok[^#{\\n\\r]*/,\n    pass: /ok[^#{\\n\\r]*/,\n    pragma: /pragma [+-][a-z]+/,\n    bailout: /bail out!.*/i,\n    version: /TAP version \\d+/i,\n    plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n    subtest: {\n      pattern: /# Subtest(?:: .*)?/,\n      greedy: true\n    },\n    punctuation: /[{}]/,\n    directive: /#.*/,\n    yamlish: {\n      pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n      lookbehind: true,\n      inside: Prism.languages.yaml,\n      alias: 'language-yaml'\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ntcl.displayName = 'tcl'\ntcl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function tcl(Prism) {\n  Prism.languages.tcl = {\n    comment: {\n      pattern: /(^|[^\\\\])#.*/,\n      lookbehind: true\n    },\n    string: {\n      pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n      greedy: true\n    },\n    variable: [\n      {\n        pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n        lookbehind: true\n      },\n      {\n        pattern: /(\\$)\\{[^}]+\\}/,\n        lookbehind: true\n      },\n      {\n        pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n        lookbehind: true\n      }\n    ],\n    function: {\n      pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n      lookbehind: true\n    },\n    builtin: [\n      {\n        pattern:\n          /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n        lookbehind: true\n      },\n      /\\b(?:else|elseif)\\b/\n    ],\n    scope: {\n      pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n      lookbehind: true,\n      alias: 'constant'\n    },\n    keyword: {\n      pattern:\n        /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n      lookbehind: true\n    },\n    operator:\n      /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n    punctuation: /[{}()\\[\\]]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nimport refractorMarkupTemplating from './markup-templating.js'\ntt2.displayName = 'tt2'\ntt2.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function tt2(Prism) {\n  Prism.register(refractorClike)\n  Prism.register(refractorMarkupTemplating)\n  ;(function (Prism) {\n    Prism.languages.tt2 = Prism.languages.extend('clike', {\n      comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n      keyword:\n        /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n      punctuation: /[[\\]{},()]/\n    })\n    Prism.languages.insertBefore('tt2', 'number', {\n      operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n      variable: {\n        pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'keyword', {\n      delimiter: {\n        pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n        alias: 'punctuation'\n      }\n    })\n    Prism.languages.insertBefore('tt2', 'string', {\n      'single-quoted-string': {\n        pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n        greedy: true,\n        alias: 'string'\n      },\n      'double-quoted-string': {\n        pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n        greedy: true,\n        alias: 'string',\n        inside: {\n          variable: {\n            pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n          }\n        }\n      }\n    })\n\n    // The different types of TT2 strings \"replace\" the C-like standard string\n    delete Prism.languages.tt2.string\n    Prism.hooks.add('before-tokenize', function (env) {\n      var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n      Prism.languages['markup-templating'].buildPlaceholders(\n        env,\n        'tt2',\n        tt2Pattern\n      )\n    })\n    Prism.hooks.add('after-tokenize', function (env) {\n      Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ntoml.displayName = 'toml'\ntoml.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function toml(Prism) {\n  ;(function (Prism) {\n    var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n\n    /**\n     * @param {string} pattern\n     */\n    function insertKey(pattern) {\n      return pattern.replace(/__/g, function () {\n        return key\n      })\n    }\n    Prism.languages.toml = {\n      comment: {\n        pattern: /#.*/,\n        greedy: true\n      },\n      table: {\n        pattern: RegExp(\n          insertKey(\n            /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n          ),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'class-name'\n      },\n      key: {\n        pattern: RegExp(\n          insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n          'm'\n        ),\n        lookbehind: true,\n        greedy: true,\n        alias: 'property'\n      },\n      string: {\n        pattern:\n          /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n        greedy: true\n      },\n      date: [\n        {\n          // Offset Date-Time, Local Date-Time, Local Date\n          pattern:\n            /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n          alias: 'number'\n        },\n        {\n          // Local Time\n          pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n          alias: 'number'\n        }\n      ],\n      number:\n        /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      punctuation: /[.,=[\\]{}]/\n    }\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ntremor.displayName = 'tremor'\ntremor.aliases = ['trickle', 'troy']\n\n/** @param {Refractor} Prism */\nexport default function tremor(Prism) {\n  ;(function (Prism) {\n    Prism.languages.tremor = {\n      comment: {\n        pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n        lookbehind: true\n      },\n      'interpolated-string': null,\n      // see below\n      extractor: {\n        pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n        greedy: true,\n        inside: {\n          regex: {\n            pattern: /(^re)\\|[\\s\\S]+/,\n            lookbehind: true\n          },\n          function: /^\\w+/,\n          value: /\\|[\\s\\S]+/\n        }\n      },\n      identifier: {\n        pattern: /`[^`]*`/,\n        greedy: true\n      },\n      function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n      keyword:\n        /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n      boolean: /\\b(?:false|null|true)\\b/i,\n      number:\n        /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n      'pattern-punctuation': {\n        pattern: /%(?=[({[])/,\n        alias: 'punctuation'\n      },\n      operator:\n        /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n      punctuation: /::|[;\\[\\]()\\{\\},.:]/\n    }\n    var interpolationPattern =\n      /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n    Prism.languages.tremor['interpolated-string'] = {\n      pattern: RegExp(\n        /(^|[^\\\\])/.source +\n          '(?:' +\n          '\"\"\"(?:' +\n          /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"\"\"' +\n          '|' +\n          '\"(?:' +\n          /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n          '|' +\n          interpolationPattern +\n          ')*\"' +\n          ')'\n      ),\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: RegExp(interpolationPattern),\n          inside: {\n            punctuation: /^#\\{|\\}$/,\n            expression: {\n              pattern: /[\\s\\S]+/,\n              inside: Prism.languages.tremor\n            }\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n    Prism.languages.troy = Prism.languages['tremor']\n    Prism.languages.trickle = Prism.languages['tremor']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\n\n/** @param {Refractor} Prism */\nexport default function typoscript(Prism) {\n  ;(function (Prism) {\n    var keywords =\n      /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n    Prism.languages.typoscript = {\n      comment: [\n        {\n          // multiline comments /* */\n          pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n          lookbehind: true\n        },\n        {\n          // double-slash comments - ignored when backslashes or colon is found in front\n          // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n          pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // hash comments - ignored when leading quote is found for hex colors in strings\n          pattern: /(^|[^\"'])#.*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      function: [\n        {\n          // old include style\n          pattern:\n            /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n          inside: {\n            string: {\n              pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n              inside: {\n                keyword: keywords\n              }\n            },\n            keyword: {\n              pattern: /INCLUDE_TYPOSCRIPT/\n            }\n          }\n        },\n        {\n          // new include style\n          pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n          inside: {\n            string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n          }\n        }\n      ],\n      string: {\n        pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n        lookbehind: true,\n        inside: {\n          function: /\\{\\$.*\\}/,\n          // constants include\n          keyword: keywords,\n          number: /^\\d+$/,\n          punctuation: /[,|:]/\n        }\n      },\n      keyword: keywords,\n      number: {\n        // special highlighting for indexes of arrays in tags\n        pattern: /\\b\\d+\\s*[.{=]/,\n        inside: {\n          operator: /[.{=]/\n        }\n      },\n      tag: {\n        pattern: /\\.?[-\\w\\\\]+\\.?/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      punctuation: /[{}[\\];(),.:|]/,\n      operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n    }\n    Prism.languages.tsconfig = Prism.languages.typoscript\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\n\n/** @param {Refractor} Prism */\nexport default function unrealscript(Prism) {\n  Prism.languages.unrealscript = {\n    comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      greedy: true\n    },\n    category: {\n      pattern:\n        /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n      lookbehind: true,\n      greedy: true,\n      alias: 'property'\n    },\n    metadata: {\n      pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n      lookbehind: true,\n      greedy: true,\n      inside: {\n        property: /\\b\\w+(?=\\s*=)/,\n        operator: /=/,\n        punctuation: /[<>|]/\n      }\n    },\n    macro: {\n      pattern: /`\\w+/,\n      alias: 'property'\n    },\n    'class-name': {\n      pattern:\n        /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n      lookbehind: true\n    },\n    keyword:\n      /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n    function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n    // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n    operator:\n      />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n    punctuation: /[()[\\]{};,.]/\n  }\n  Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function uorazor(Prism) {\n  Prism.languages.uorazor = {\n    'comment-hash': {\n      pattern: /#.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    'comment-slash': {\n      pattern: /\\/\\/.*/,\n      alias: 'comment',\n      greedy: true\n    },\n    string: {\n      pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n      inside: {\n        punctuation: /^['\"]|['\"]$/\n      },\n      greedy: true\n    },\n    'source-layers': {\n      pattern:\n        /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n      alias: 'function'\n    },\n    'source-commands': {\n      pattern:\n        /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n      alias: 'function'\n    },\n    'tag-name': {\n      pattern: /(^\\{%-?\\s*)\\w+/,\n      lookbehind: true,\n      alias: 'keyword'\n    },\n    delimiter: {\n      pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n      alias: 'punctuation'\n    },\n    function:\n      /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n    keyword:\n      /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n    boolean: /\\b(?:false|null|true)\\b/,\n    number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n    operator: [\n      {\n        pattern:\n          /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n        lookbehind: true\n      },\n      /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n    ],\n    punctuation: /[()\\[\\]{}:.,]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nv.displayName = 'v'\nv.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function v(Prism) {\n  Prism.register(refractorClike)\n  ;(function (Prism) {\n    var interpolationExpr = {\n      pattern: /[\\s\\S]+/,\n      inside: null\n    }\n    Prism.languages.v = Prism.languages.extend('clike', {\n      string: {\n        pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n        alias: 'quoted-string',\n        greedy: true,\n        inside: {\n          interpolation: {\n            pattern:\n              /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n            lookbehind: true,\n            inside: {\n              'interpolation-variable': {\n                pattern: /^\\$\\w[\\s\\S]*$/,\n                alias: 'variable'\n              },\n              'interpolation-punctuation': {\n                pattern: /^\\$\\{|\\}$/,\n                alias: 'punctuation'\n              },\n              'interpolation-expression': interpolationExpr\n            }\n          }\n        }\n      },\n      'class-name': {\n        pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n        lookbehind: true\n      },\n      keyword:\n        /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n      number:\n        /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n      operator:\n        /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n      builtin:\n        /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n    })\n    interpolationExpr.inside = Prism.languages.v\n    Prism.languages.insertBefore('v', 'string', {\n      char: {\n        pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n        // using {1,2} instead of `u` flag for compatibility\n        alias: 'rune'\n      }\n    })\n    Prism.languages.insertBefore('v', 'operator', {\n      attribute: {\n        pattern:\n          /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n        lookbehind: true,\n        alias: 'annotation',\n        inside: {\n          punctuation: /[\\[\\]]/,\n          keyword: /\\w+/\n        }\n      },\n      generic: {\n        pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n        inside: {\n          punctuation: /[<>]/,\n          'class-name': /\\w+/\n        }\n      }\n    })\n    Prism.languages.insertBefore('v', 'function', {\n      'generic-function': {\n        // e.g. foo<T>( ...\n        pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n        inside: {\n          function: /^\\w+/,\n          generic: {\n            pattern: /<\\w+>/,\n            inside: Prism.languages.v.generic.inside\n          }\n        }\n      }\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\nvala.displayName = 'vala'\nvala.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function vala(Prism) {\n  Prism.register(refractorClike)\n  Prism.languages.vala = Prism.languages.extend('clike', {\n    // Classes copied from prism-csharp\n    'class-name': [\n      {\n        // (Foo bar, Bar baz)\n        pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // [Foo]\n        pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo : Bar\n        pattern:\n          /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      {\n        // class Foo\n        pattern:\n          /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n        lookbehind: true,\n        inside: {\n          punctuation: /\\./\n        }\n      }\n    ],\n    keyword:\n      /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n    function: /\\b\\w+(?=\\s*\\()/,\n    number:\n      /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n    operator:\n      /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n    punctuation: /[{}[\\];(),.:]/,\n    constant: /\\b[A-Z0-9_]+\\b/\n  })\n  Prism.languages.insertBefore('vala', 'string', {\n    'raw-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    'template-string': {\n      pattern: /@\"[\\s\\S]*?\"/,\n      greedy: true,\n      inside: {\n        interpolation: {\n          pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n          inside: {\n            delimiter: {\n              pattern: /^\\$\\(?|\\)$/,\n              alias: 'punctuation'\n            },\n            rest: Prism.languages.vala\n          }\n        },\n        string: /[\\s\\S]+/\n      }\n    }\n  })\n  Prism.languages.insertBefore('vala', 'keyword', {\n    regex: {\n      pattern:\n        /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n      greedy: true,\n      inside: {\n        'regex-source': {\n          pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n          lookbehind: true,\n          alias: 'language-regex',\n          inside: Prism.languages.regex\n        },\n        'regex-delimiter': /^\\//,\n        'regex-flags': /^[a-z]+$/\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function velocity(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    Prism.languages.velocity = Prism.languages.extend('markup', {})\n    var velocity = {\n      variable: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n        lookbehind: true,\n        inside: {} // See below\n      },\n      string: {\n        pattern: /\"[^\"]*\"|'[^']*'/,\n        greedy: true\n      },\n      number: /\\b\\d+\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n      punctuation: /[(){}[\\]:,.]/\n    }\n    velocity.variable.inside = {\n      string: velocity['string'],\n      function: {\n        pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n        lookbehind: true\n      },\n      number: velocity['number'],\n      boolean: velocity['boolean'],\n      punctuation: velocity['punctuation']\n    }\n    Prism.languages.insertBefore('velocity', 'comment', {\n      unparsed: {\n        pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n        lookbehind: true,\n        greedy: true,\n        inside: {\n          punctuation: /^#\\[\\[|\\]\\]#$/\n        }\n      },\n      'velocity-comment': [\n        {\n          pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        },\n        {\n          pattern: /(^|[^\\\\])##.*/,\n          lookbehind: true,\n          greedy: true,\n          alias: 'comment'\n        }\n      ],\n      directive: {\n        pattern:\n          /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n        lookbehind: true,\n        inside: {\n          keyword: {\n            pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n            inside: {\n              punctuation: /[{}]/\n            }\n          },\n          rest: velocity\n        }\n      },\n      variable: velocity['variable']\n    })\n    Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n      Prism.languages.velocity\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nverilog.displayName = 'verilog'\nverilog.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function verilog(Prism) {\n  Prism.languages.verilog = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    'kernel-function': {\n      // support for any kernel function (ex: $display())\n      pattern: /\\B\\$\\w+\\b/,\n      alias: 'property'\n    },\n    // support for user defined constants (ex: `define)\n    constant: /\\B`\\w+\\b/,\n    function: /\\b\\w+(?=\\()/,\n    // support for verilog and system verilog keywords\n    keyword:\n      /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n    // bold highlighting for all verilog and system verilog logic blocks\n    important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n    // support for time ticks, vectors, and real numbers\n    number:\n      /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n    operator: /[-+{}^~%*\\/?=!<>&|]+/,\n    punctuation: /[[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function vhdl(Prism) {\n  Prism.languages.vhdl = {\n    comment: /--.+/,\n    // support for all logic vectors\n    'vhdl-vectors': {\n      pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n      alias: 'number'\n    },\n    // support for operator overloading included\n    'quoted-function': {\n      pattern: /\"\\S+?\"(?=\\()/,\n      alias: 'function'\n    },\n    string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n    attribute: {\n      pattern: /\\b'\\w+/,\n      alias: 'attr-name'\n    },\n    // support for predefined attributes included\n    keyword:\n      /\\b(?:access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|private|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|view|wait|when|while|with)\\b/i,\n    boolean: /\\b(?:false|true)\\b/i,\n    function: /\\w+(?=\\()/,\n    // decimal, based, physical, and exponential numbers supported\n    number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n    operator:\n      /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n    punctuation: /[{}[\\];(),.:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nvim.displayName = 'vim'\nvim.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function vim(Prism) {\n  Prism.languages.vim = {\n    string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n    comment: /\".*/,\n    function: /\\b\\w+(?=\\()/,\n    keyword:\n      /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n    builtin:\n      /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n    operator:\n      /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n    punctuation: /[{}[\\](),;:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nvisualBasic.displayName = 'visual-basic'\nvisualBasic.aliases = ['vb', 'vba']\n\n/** @param {Refractor} Prism */\nexport default function visualBasic(Prism) {\n  Prism.languages['visual-basic'] = {\n    comment: {\n      pattern: /(?:['‘’]|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n      inside: {\n        keyword: /^REM/i\n      }\n    },\n    directive: {\n      pattern:\n        /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n      alias: 'property',\n      greedy: true\n    },\n    string: {\n      pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n      greedy: true\n    },\n    date: {\n      pattern:\n        /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n      alias: 'number'\n    },\n    number:\n      /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n    boolean: /\\b(?:False|Nothing|True)\\b/i,\n    keyword:\n      /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n    operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n    punctuation: /[{}().,:?]/\n  }\n  Prism.languages.vb = Prism.languages['visual-basic']\n  Prism.languages.vba = Prism.languages['visual-basic']\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function warpscript(Prism) {\n  Prism.languages.warpscript = {\n    comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n    string: {\n      pattern:\n        /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n      greedy: true\n    },\n    variable: /\\$\\S+/,\n    macro: {\n      pattern: /@\\S+/,\n      alias: 'property'\n    },\n    // WarpScript doesn't have any keywords, these are all functions under the control category\n    // https://www.warp10.io/tags/control\n    keyword:\n      /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n    number:\n      /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n    boolean: /\\b(?:F|T|false|true)\\b/,\n    punctuation: /<%|%>|[{}[\\]()]/,\n    // Some operators from the \"operators\" category\n    // https://www.warp10.io/tags/operators\n    operator:\n      /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwasm.displayName = 'wasm'\nwasm.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function wasm(Prism) {\n  Prism.languages.wasm = {\n    comment: [\n      /\\(;[\\s\\S]*?;\\)/,\n      {\n        pattern: /;;.*/,\n        greedy: true\n      }\n    ],\n    string: {\n      pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n      greedy: true\n    },\n    keyword: [\n      {\n        pattern: /\\b(?:align|offset)=/,\n        inside: {\n          operator: /=/\n        }\n      },\n      {\n        pattern:\n          /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n        inside: {\n          punctuation: /\\./\n        }\n      },\n      /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n    ],\n    variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n    number:\n      /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n    punctuation: /[()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwebIdl.displayName = 'web-idl'\nwebIdl.aliases = ['webidl']\n\n/** @param {Refractor} Prism */\nexport default function webIdl(Prism) {\n  ;(function (Prism) {\n    var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n    var type =\n      '(?:' +\n      /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n      '|' +\n      /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n      '|' +\n      /(?!(?:unrestricted|unsigned)\\b)/.source +\n      id +\n      /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n      ')' +\n      /(?:\\s*\\?)?/.source\n    var typeInside = {}\n    Prism.languages['web-idl'] = {\n      comment: {\n        pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n        greedy: true\n      },\n      string: {\n        pattern: /\"[^\"]*\"/,\n        greedy: true\n      },\n      namespace: {\n        pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n        lookbehind: true\n      },\n      'class-name': [\n        {\n          pattern:\n            /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n              type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // callback return type\n          pattern: RegExp(\n            '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n          ),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          // typedef\n          pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n          lookbehind: true,\n          inside: typeInside\n        },\n        {\n          pattern: RegExp(\n            /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n              .source + id\n          ),\n          lookbehind: true\n        },\n        {\n          // inheritance\n          pattern: RegExp(/(:\\s*)/.source + id),\n          lookbehind: true\n        },\n        // includes and implements\n        RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n        {\n          pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n          lookbehind: true\n        },\n        {\n          // function return type, parameter types, and dictionary members\n          pattern: RegExp(\n            type +\n              '(?=' +\n              /\\s*(?:\\.{3}\\s*)?/.source +\n              id +\n              /\\s*[(),;=]/.source +\n              ')'\n          ),\n          inside: typeInside\n        }\n      ],\n      builtin:\n        /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n      keyword: [\n        /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/,\n        // type keywords\n        /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n      ],\n      boolean: /\\b(?:false|true)\\b/,\n      number: {\n        pattern:\n          /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n        lookbehind: true\n      },\n      operator: /\\.{3}|[=:?<>-]/,\n      punctuation: /[(){}[\\].,;]/\n    }\n    for (var key in Prism.languages['web-idl']) {\n      if (key !== 'class-name') {\n        typeInside[key] = Prism.languages['web-idl'][key]\n      }\n    }\n    Prism.languages['webidl'] = Prism.languages['web-idl']\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwgsl.displayName = 'wgsl'\nwgsl.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function wgsl(Prism) {\n  Prism.languages.wgsl = {\n    comment: {\n      pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n      greedy: true\n    },\n    'builtin-attribute': {\n      pattern: /(@)builtin\\(.*?\\)/,\n      lookbehind: true,\n      inside: {\n        attribute: {\n          pattern: /^builtin/,\n          alias: 'attr-name'\n        },\n        punctuation: /[(),]/,\n        'built-in-values': {\n          pattern:\n            /\\b(?:frag_depth|front_facing|global_invocation_id|instance_index|local_invocation_id|local_invocation_index|num_workgroups|position|sample_index|sample_mask|vertex_index|workgroup_id)\\b/,\n          alias: 'attr-value'\n        }\n      }\n    },\n    attributes: {\n      pattern:\n        /(@)(?:align|binding|compute|const|fragment|group|id|interpolate|invariant|location|size|vertex|workgroup_size)/i,\n      lookbehind: true,\n      alias: 'attr-name'\n    },\n    functions: {\n      pattern: /\\b(fn\\s+)[_a-zA-Z]\\w*(?=[(<])/,\n      lookbehind: true,\n      alias: 'function'\n    },\n    keyword:\n      /\\b(?:bitcast|break|case|const|continue|continuing|default|discard|else|enable|fallthrough|fn|for|function|if|let|loop|private|return|storage|struct|switch|type|uniform|var|while|workgroup)\\b/,\n    builtin:\n      /\\b(?:abs|acos|acosh|all|any|array|asin|asinh|atan|atan2|atanh|atomic|atomicAdd|atomicAnd|atomicCompareExchangeWeak|atomicExchange|atomicLoad|atomicMax|atomicMin|atomicOr|atomicStore|atomicSub|atomicXor|bool|ceil|clamp|cos|cosh|countLeadingZeros|countOneBits|countTrailingZeros|cross|degrees|determinant|distance|dot|dpdx|dpdxCoarse|dpdxFine|dpdy|dpdyCoarse|dpdyFine|exp|exp2|extractBits|f32|f64|faceForward|firstLeadingBit|floor|fma|fract|frexp|fwidth|fwidthCoarse|fwidthFine|i32|i64|insertBits|inverseSqrt|ldexp|length|log|log2|mat[2-4]x[2-4]|max|min|mix|modf|normalize|override|pack2x16float|pack2x16snorm|pack2x16unorm|pack4x8snorm|pack4x8unorm|pow|ptr|quantizeToF16|radians|reflect|refract|reverseBits|round|sampler|sampler_comparison|select|shiftLeft|shiftRight|sign|sin|sinh|smoothstep|sqrt|staticAssert|step|storageBarrier|tan|tanh|textureDimensions|textureGather|textureGatherCompare|textureLoad|textureNumLayers|textureNumLevels|textureNumSamples|textureSample|textureSampleBias|textureSampleCompare|textureSampleCompareLevel|textureSampleGrad|textureSampleLevel|textureStore|texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array|texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array|texture_depth_multisampled_2d|texture_multisampled_2d|texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d|transpose|trunc|u32|u64|unpack2x16float|unpack2x16snorm|unpack2x16unorm|unpack4x8snorm|unpack4x8unorm|vec[2-4]|workgroupBarrier)\\b/,\n    'function-calls': {\n      pattern: /\\b[_a-z]\\w*(?=\\()/i,\n      alias: 'function'\n    },\n    'class-name': /\\b(?:[A-Z][A-Za-z0-9]*)\\b/,\n    'bool-literal': {\n      pattern: /\\b(?:false|true)\\b/,\n      alias: 'boolean'\n    },\n    'hex-int-literal': {\n      pattern: /\\b0[xX][0-9a-fA-F]+[iu]?\\b(?![.pP])/,\n      alias: 'number'\n    },\n    'hex-float-literal': {\n      pattern: /\\b0[xX][0-9a-fA-F]*(?:\\.[0-9a-fA-F]*)?(?:[pP][+-]?\\d+[fh]?)?/,\n      alias: 'number'\n    },\n    'decimal-float-literal': [\n      {\n        pattern: /\\d*\\.\\d+(?:[eE](?:\\+|-)?\\d+)?[fh]?/,\n        alias: 'number'\n      },\n      {\n        pattern: /\\d+\\.\\d*(?:[eE](?:\\+|-)?\\d+)?[fh]?/,\n        alias: 'number'\n      },\n      {\n        pattern: /\\d+[eE](?:\\+|-)?\\d+[fh]?/,\n        alias: 'number'\n      },\n      {\n        pattern: /\\b\\d+[fh]\\b/,\n        alias: 'number'\n      }\n    ],\n    'int-literal': {\n      pattern: /\\b\\d+[iu]?\\b/,\n      alias: 'number'\n    },\n    operator: [\n      {\n        pattern: /(?:\\^|~|\\|(?!\\|)|\\|\\||&&|<<|>>|!)(?!=)/\n      },\n      {\n        pattern: /&(?![&=])/\n      },\n      {\n        pattern: /(?:\\+=|-=|\\*=|\\/=|%=|\\^=|&=|\\|=|<<=|>>=)/\n      },\n      {\n        pattern: /(^|[^<>=!])=(?![=>])/,\n        lookbehind: true\n      },\n      {\n        pattern: /(?:==|!=|<=|\\+\\+|--|(^|[^=])>=)/,\n        lookbehind: true\n      },\n      {\n        pattern: /(?:(?:[+%]|(?:\\*(?!\\w)))(?!=))|(?:-(?!>))|(?:\\/(?!\\/))/\n      },\n      {\n        pattern: /->/\n      }\n    ],\n    punctuation: /[@(){}[\\],;<>:.]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nwiki.displayName = 'wiki'\nwiki.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function wiki(Prism) {\n  Prism.register(refractorMarkup)\n  Prism.languages.wiki = Prism.languages.extend('markup', {\n    'block-comment': {\n      pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n      lookbehind: true,\n      alias: 'comment'\n    },\n    heading: {\n      pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n      inside: {\n        punctuation: /^=+|=+$/,\n        important: /.+/\n      }\n    },\n    emphasis: {\n      // TODO Multi-line\n      pattern: /('{2,5}).+?\\1/,\n      inside: {\n        'bold-italic': {\n          pattern: /(''''').+?(?=\\1)/,\n          lookbehind: true,\n          alias: ['bold', 'italic']\n        },\n        bold: {\n          pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        italic: {\n          pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n          lookbehind: true\n        },\n        punctuation: /^''+|''+$/\n      }\n    },\n    hr: {\n      pattern: /^-{4,}/m,\n      alias: 'punctuation'\n    },\n    url: [\n      /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n      /\\[\\[.+?\\]\\]|\\[.+?\\]/\n    ],\n    variable: [\n      /__[A-Z]+__/,\n      // FIXME Nested structures should be handled\n      // {{formatnum:{{#expr:{{{3}}}}}}}\n      /\\{{3}.+?\\}{3}/,\n      /\\{\\{.+?\\}\\}/\n    ],\n    symbol: [/^#redirect/im, /~{3,5}/],\n    // Handle table attrs:\n    // {|\n    // ! style=\"text-align:left;\"| Item\n    // |}\n    'table-tag': {\n      pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n      lookbehind: true,\n      inside: {\n        'table-bar': {\n          pattern: /\\|$/,\n          alias: 'punctuation'\n        },\n        rest: Prism.languages.markup['tag'].inside\n      }\n    },\n    punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n  })\n  Prism.languages.insertBefore('wiki', 'tag', {\n    // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n    nowiki: {\n      pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n      inside: {\n        tag: {\n          pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n          inside: Prism.languages.markup['tag'].inside\n        }\n      }\n    }\n  })\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'nb', 'wl']\n\n/** @param {Refractor} Prism */\nexport default function wolfram(Prism) {\n  Prism.languages.wolfram = {\n    comment:\n      // Allow one level of nesting - note: regex taken from applescipt\n      /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n    string: {\n      pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n      greedy: true\n    },\n    keyword:\n      /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n    context: {\n      pattern: /\\b\\w+`+\\w*/,\n      alias: 'class-name'\n    },\n    blank: {\n      pattern: /\\b\\w+_\\b/,\n      alias: 'regex'\n    },\n    'global-variable': {\n      pattern: /\\$\\w+/,\n      alias: 'variable'\n    },\n    boolean: /\\b(?:False|True)\\b/,\n    number:\n      /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n    operator:\n      /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n    punctuation: /[{}[\\];(),.:]/\n  }\n  Prism.languages.mathematica = Prism.languages.wolfram\n  Prism.languages.wl = Prism.languages.wolfram\n  Prism.languages.nb = Prism.languages.wolfram\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nwren.displayName = 'wren'\nwren.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function wren(Prism) {\n  // https://wren.io/\n\n  Prism.languages.wren = {\n    // Multiline comments in Wren can have nested multiline comments\n    // Comments: // and /* */\n    comment: [\n      {\n        // support 3 levels of nesting\n        // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n        pattern:\n          /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n        greedy: true\n      },\n      {\n        pattern: /(^|[^\\\\:])\\/\\/.*/,\n        lookbehind: true,\n        greedy: true\n      }\n    ],\n    // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n    // Based on prism-python.js\n    'triple-quoted-string': {\n      pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n      greedy: true,\n      alias: 'string'\n    },\n    // see below\n    'string-literal': null,\n    // #!/usr/bin/env wren on the first line\n    hashbang: {\n      pattern: /^#!\\/.+/,\n      greedy: true,\n      alias: 'comment'\n    },\n    // Attributes are special keywords to add meta data to classes\n    attribute: {\n      // #! attributes are stored in class properties\n      // #!myvar = true\n      // #attributes are not stored and dismissed at compilation\n      pattern: /#!?[ \\t\\u3000]*\\w+/,\n      alias: 'keyword'\n    },\n    'class-name': [\n      {\n        // class definition\n        // class Meta {}\n        pattern: /(\\bclass\\s+)\\w+/,\n        lookbehind: true\n      },\n      // A class must always start with an uppercase.\n      // File.read\n      /\\b[A-Z][a-z\\d_]*\\b/\n    ],\n    // A constant can be a variable, class, property or method. Just named in all uppercase letters\n    constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n    null: {\n      pattern: /\\bnull\\b/,\n      alias: 'keyword'\n    },\n    keyword:\n      /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n    boolean: /\\b(?:false|true)\\b/,\n    number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n    // Functions can be Class.method()\n    function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n    operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n    punctuation: /[\\[\\](){}.,;]/\n  }\n  Prism.languages.wren['string-literal'] = {\n    // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n    pattern:\n      /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n    lookbehind: true,\n    greedy: true,\n    inside: {\n      interpolation: {\n        // \"%(interpolation)\"\n        pattern:\n          /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n        lookbehind: true,\n        inside: {\n          expression: {\n            pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n            lookbehind: true,\n            inside: Prism.languages.wren\n          },\n          'interpolation-punctuation': {\n            pattern: /^%\\(|\\)$/,\n            alias: 'punctuation'\n          }\n        }\n      },\n      string: /[\\s\\S]+/\n    }\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\n\n/** @param {Refractor} Prism */\nexport default function xeora(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    Prism.languages.xeora = Prism.languages.extend('markup', {\n      constant: {\n        pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$/\n          }\n        }\n      },\n      variable: {\n        pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$.]/\n          },\n          operator: {\n            pattern: /#+|[-+*~=^@]/\n          }\n        }\n      },\n      'function-inline': {\n        pattern:\n          /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n        inside: {\n          variable: {\n            pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n            inside: {\n              punctuation: {\n                pattern: /[,.|]/\n              },\n              operator: {\n                pattern: /#+|[-+*~=^@]/\n              }\n            }\n          },\n          punctuation: {\n            pattern: /\\$\\w:|[$:?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'function-block': {\n        pattern:\n          /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[$:{}?.,|]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-inline': {\n        pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-open': {\n        pattern:\n          /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n        inside: {\n          punctuation: {\n            pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n            inside: {\n              tag: {\n                pattern: /#\\d/\n              }\n            }\n          },\n          attribute: {\n            pattern: /![A-Z]+$/,\n            inside: {\n              punctuation: {\n                pattern: /!/\n              }\n            },\n            alias: 'keyword'\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-separator': {\n        pattern: /\\}:[-\\w.]+:\\{/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}]/\n          }\n        },\n        alias: 'function'\n      },\n      'directive-block-close': {\n        pattern: /\\}:[-\\w.]+\\$/,\n        inside: {\n          punctuation: {\n            pattern: /[:{}$]/\n          }\n        },\n        alias: 'function'\n      }\n    })\n    Prism.languages.insertBefore(\n      'inside',\n      'punctuation',\n      {\n        variable: Prism.languages.xeora['function-inline'].inside['variable']\n      },\n      Prism.languages.xeora['function-block']\n    )\n    Prism.languages.xeoracube = Prism.languages.xeora\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nxmlDoc.displayName = 'xml-doc'\nxmlDoc.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function xmlDoc(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    /**\n     * If the given language is present, it will insert the given doc comment grammar token into it.\n     *\n     * @param {string} lang\n     * @param {any} docComment\n     */\n    function insertDocComment(lang, docComment) {\n      if (Prism.languages[lang]) {\n        Prism.languages.insertBefore(lang, 'comment', {\n          'doc-comment': docComment\n        })\n      }\n    }\n    var tag = Prism.languages.markup.tag\n    var slashDocComment = {\n      pattern: /\\/\\/\\/.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    var tickDocComment = {\n      pattern: /'''.*/,\n      greedy: true,\n      alias: 'comment',\n      inside: {\n        tag: tag\n      }\n    }\n    insertDocComment('csharp', slashDocComment)\n    insertDocComment('fsharp', slashDocComment)\n    insertDocComment('vbnet', tickDocComment)\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nxojo.displayName = 'xojo'\nxojo.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function xojo(Prism) {\n  Prism.languages.xojo = {\n    comment: {\n      pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n      greedy: true\n    },\n    string: {\n      pattern: /\"(?:\"\"|[^\"])*\"/,\n      greedy: true\n    },\n    number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n    directive: {\n      pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n      alias: 'property'\n    },\n    keyword:\n      /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n    operator:\n      /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n    punctuation: /[.,;:()]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nxquery.displayName = 'xquery'\nxquery.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function xquery(Prism) {\n  Prism.register(refractorMarkup)\n  ;(function (Prism) {\n    Prism.languages.xquery = Prism.languages.extend('markup', {\n      'xquery-comment': {\n        pattern: /\\(:[\\s\\S]*?:\\)/,\n        greedy: true,\n        alias: 'comment'\n      },\n      string: {\n        pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n        greedy: true\n      },\n      extension: {\n        pattern: /\\(#.+?#\\)/,\n        alias: 'symbol'\n      },\n      variable: /\\$[-\\w:]+/,\n      axis: {\n        pattern:\n          /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      'keyword-operator': {\n        pattern:\n          /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n        lookbehind: true,\n        alias: 'operator'\n      },\n      keyword: {\n        pattern:\n          /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n      'xquery-element': {\n        pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'tag'\n      },\n      'xquery-attribute': {\n        pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n        lookbehind: true,\n        alias: 'attr-name'\n      },\n      builtin: {\n        pattern:\n          /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n        lookbehind: true\n      },\n      number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n      operator: [\n        /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n        {\n          pattern: /(\\s)-(?=\\s)/,\n          lookbehind: true\n        }\n      ],\n      punctuation: /[[\\](){},;:/]/\n    })\n    Prism.languages.xquery.tag.pattern =\n      /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n    Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n      /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n      /^=\"|\"$/\n    Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n      // Allow for two levels of nesting\n      pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n      inside: Prism.languages.xquery,\n      alias: 'language-xquery'\n    }\n\n    // The following will handle plain text inside tags\n    var stringifyToken = function (token) {\n      if (typeof token === 'string') {\n        return token\n      }\n      if (typeof token.content === 'string') {\n        return token.content\n      }\n      return token.content.map(stringifyToken).join('')\n    }\n    var walkTokens = function (tokens) {\n      var openedTags = []\n      for (var i = 0; i < tokens.length; i++) {\n        var token = tokens[i]\n        var notTagNorBrace = false\n        if (typeof token !== 'string') {\n          if (\n            token.type === 'tag' &&\n            token.content[0] &&\n            token.content[0].type === 'tag'\n          ) {\n            // We found a tag, now find its kind\n\n            if (token.content[0].content[0].content === '</') {\n              // Closing tag\n              if (\n                openedTags.length > 0 &&\n                openedTags[openedTags.length - 1].tagName ===\n                  stringifyToken(token.content[0].content[1])\n              ) {\n                // Pop matching opening tag\n                openedTags.pop()\n              }\n            } else {\n              if (token.content[token.content.length - 1].content === '/>') {\n                // Autoclosed tag, ignore\n              } else {\n                // Opening tag\n                openedTags.push({\n                  tagName: stringifyToken(token.content[0].content[1]),\n                  openedBraces: 0\n                })\n              }\n            }\n          } else if (\n            openedTags.length > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '{' &&\n            // Ignore `{{`\n            (!tokens[i + 1] ||\n              tokens[i + 1].type !== 'punctuation' ||\n              tokens[i + 1].content !== '{') &&\n            (!tokens[i - 1] ||\n              tokens[i - 1].type !== 'plain-text' ||\n              tokens[i - 1].content !== '{')\n          ) {\n            // Here we might have entered an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces++\n          } else if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces > 0 &&\n            token.type === 'punctuation' &&\n            token.content === '}'\n          ) {\n            // Here we might have left an XQuery expression inside a tag\n            openedTags[openedTags.length - 1].openedBraces--\n          } else if (token.type !== 'comment') {\n            notTagNorBrace = true\n          }\n        }\n        if (notTagNorBrace || typeof token === 'string') {\n          if (\n            openedTags.length > 0 &&\n            openedTags[openedTags.length - 1].openedBraces === 0\n          ) {\n            // Here we are inside a tag, and not inside an XQuery expression.\n            // That's plain text: drop any tokens matched.\n            var plainText = stringifyToken(token)\n\n            // And merge text with adjacent text\n            if (\n              i < tokens.length - 1 &&\n              (typeof tokens[i + 1] === 'string' ||\n                tokens[i + 1].type === 'plain-text')\n            ) {\n              plainText += stringifyToken(tokens[i + 1])\n              tokens.splice(i + 1, 1)\n            }\n            if (\n              i > 0 &&\n              (typeof tokens[i - 1] === 'string' ||\n                tokens[i - 1].type === 'plain-text')\n            ) {\n              plainText = stringifyToken(tokens[i - 1]) + plainText\n              tokens.splice(i - 1, 1)\n              i--\n            }\n            if (/^\\s+$/.test(plainText)) {\n              tokens[i] = plainText\n            } else {\n              tokens[i] = new Prism.Token(\n                'plain-text',\n                plainText,\n                null,\n                plainText\n              )\n            }\n          }\n        }\n        if (token.content && typeof token.content !== 'string') {\n          walkTokens(token.content)\n        }\n      }\n    }\n    Prism.hooks.add('after-tokenize', function (env) {\n      if (env.language !== 'xquery') {\n        return\n      }\n      walkTokens(env.tokens)\n    })\n  })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nyang.displayName = 'yang'\nyang.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function yang(Prism) {\n  Prism.languages.yang = {\n    // https://tools.ietf.org/html/rfc6020#page-34\n    // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n    comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n    string: {\n      pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n      greedy: true\n    },\n    keyword: {\n      pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n      lookbehind: true\n    },\n    namespace: {\n      pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n      lookbehind: true\n    },\n    boolean: /\\b(?:false|true)\\b/,\n    operator: /\\+/,\n    punctuation: /[{};:]/\n  }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nzig.displayName = 'zig'\nzig.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function zig(Prism) {\n  ;(function (Prism) {\n    function literal(str) {\n      return function () {\n        return str\n      }\n    }\n    var keyword =\n      /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n    var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n    var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n    var PREFIX_TYPE_OP =\n      /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n        /<ALIGN>/g,\n        literal(ALIGN)\n      )\n    var SUFFIX_EXPR =\n      /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n        /<ID>/g,\n        literal(IDENTIFIER)\n      )\n    var TYPE =\n      '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n\n    /*\n     * A simplified grammar for Zig compile time type literals:\n     *\n     * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n     *\n     * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n     *\n     * PREFIX_TYPE_OP = \"?\"\n     *                | \\b \"promise\" \"->\"\n     *                | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n     *\n     * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n     *\n     * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n     *\n     */\n\n    Prism.languages.zig = {\n      comment: [\n        {\n          pattern: /\\/\\/[/!].*/,\n          alias: 'doc-comment'\n        },\n        /\\/{2}.*/\n      ],\n      string: [\n        {\n          // \"string\" and c\"string\"\n          pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n          lookbehind: true,\n          greedy: true\n        },\n        {\n          // multiline strings and c-strings\n          pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n          lookbehind: true,\n          greedy: true\n        }\n      ],\n      char: {\n        // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n        pattern:\n          /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n        lookbehind: true,\n        greedy: true\n      },\n      builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n      label: {\n        pattern:\n          /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n        lookbehind: true\n      },\n      'class-name': [\n        // const Foo = struct {};\n        /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n        {\n          // const x: i32 = 9;\n          // var x: Bar;\n          // fn foo(x: bool, y: f32) void {}\n          pattern: RegExp(\n            /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        },\n        {\n          // extern fn foo(x: f64) f64; (optional alignment)\n          pattern: RegExp(\n            /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n              .replace(/<TYPE>/g, literal(TYPE))\n              .replace(/<ALIGN>/g, literal(ALIGN))\n          ),\n          lookbehind: true,\n          inside: null // see below\n        }\n      ],\n      'builtin-type': {\n        pattern:\n          /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n        alias: 'keyword'\n      },\n      keyword: keyword,\n      function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n      number:\n        /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n      boolean: /\\b(?:false|true)\\b/,\n      operator:\n        /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n      punctuation: /[.:,;(){}[\\]]/\n    }\n    Prism.languages.zig['class-name'].forEach(function (obj) {\n      if (obj.inside === null) {\n        obj.inside = Prism.languages.zig\n      }\n    })\n  })(Prism)\n}\n","/**\n * @typedef {import('./core.js').Syntax} Syntax\n */\n\nimport markup from '../lang/markup.js'\nimport css from '../lang/css.js'\nimport clike from '../lang/clike.js'\nimport regex from '../lang/regex.js'\nimport javascript from '../lang/javascript.js'\nimport abap from '../lang/abap.js'\nimport abnf from '../lang/abnf.js'\nimport actionscript from '../lang/actionscript.js'\nimport ada from '../lang/ada.js'\nimport agda from '../lang/agda.js'\nimport al from '../lang/al.js'\nimport antlr4 from '../lang/antlr4.js'\nimport apacheconf from '../lang/apacheconf.js'\nimport sql from '../lang/sql.js'\nimport apex from '../lang/apex.js'\nimport apl from '../lang/apl.js'\nimport applescript from '../lang/applescript.js'\nimport aql from '../lang/aql.js'\nimport c from '../lang/c.js'\nimport cpp from '../lang/cpp.js'\nimport arduino from '../lang/arduino.js'\nimport arff from '../lang/arff.js'\nimport armasm from '../lang/armasm.js'\nimport bash from '../lang/bash.js'\nimport yaml from '../lang/yaml.js'\nimport markdown from '../lang/markdown.js'\nimport arturo from '../lang/arturo.js'\nimport asciidoc from '../lang/asciidoc.js'\nimport csharp from '../lang/csharp.js'\nimport aspnet from '../lang/aspnet.js'\nimport asm6502 from '../lang/asm6502.js'\nimport asmatmel from '../lang/asmatmel.js'\nimport autohotkey from '../lang/autohotkey.js'\nimport autoit from '../lang/autoit.js'\nimport avisynth from '../lang/avisynth.js'\nimport avroIdl from '../lang/avro-idl.js'\nimport awk from '../lang/awk.js'\nimport basic from '../lang/basic.js'\nimport batch from '../lang/batch.js'\nimport bbcode from '../lang/bbcode.js'\nimport bbj from '../lang/bbj.js'\nimport bicep from '../lang/bicep.js'\nimport birb from '../lang/birb.js'\nimport bison from '../lang/bison.js'\nimport bnf from '../lang/bnf.js'\nimport bqn from '../lang/bqn.js'\nimport brainfuck from '../lang/brainfuck.js'\nimport brightscript from '../lang/brightscript.js'\nimport bro from '../lang/bro.js'\nimport bsl from '../lang/bsl.js'\nimport cfscript from '../lang/cfscript.js'\nimport chaiscript from '../lang/chaiscript.js'\nimport cil from '../lang/cil.js'\nimport cilkc from '../lang/cilkc.js'\nimport cilkcpp from '../lang/cilkcpp.js'\nimport clojure from '../lang/clojure.js'\nimport cmake from '../lang/cmake.js'\nimport cobol from '../lang/cobol.js'\nimport coffeescript from '../lang/coffeescript.js'\nimport concurnas from '../lang/concurnas.js'\nimport csp from '../lang/csp.js'\nimport cooklang from '../lang/cooklang.js'\nimport coq from '../lang/coq.js'\nimport ruby from '../lang/ruby.js'\nimport crystal from '../lang/crystal.js'\nimport cssExtras from '../lang/css-extras.js'\nimport csv from '../lang/csv.js'\nimport cue from '../lang/cue.js'\nimport cypher from '../lang/cypher.js'\nimport d from '../lang/d.js'\nimport dart from '../lang/dart.js'\nimport dataweave from '../lang/dataweave.js'\nimport dax from '../lang/dax.js'\nimport dhall from '../lang/dhall.js'\nimport diff from '../lang/diff.js'\nimport markupTemplating from '../lang/markup-templating.js'\nimport django from '../lang/django.js'\nimport dnsZoneFile from '../lang/dns-zone-file.js'\nimport docker from '../lang/docker.js'\nimport dot from '../lang/dot.js'\nimport ebnf from '../lang/ebnf.js'\nimport editorconfig from '../lang/editorconfig.js'\nimport eiffel from '../lang/eiffel.js'\nimport ejs from '../lang/ejs.js'\nimport elixir from '../lang/elixir.js'\nimport elm from '../lang/elm.js'\nimport lua from '../lang/lua.js'\nimport etlua from '../lang/etlua.js'\nimport erb from '../lang/erb.js'\nimport erlang from '../lang/erlang.js'\nimport excelFormula from '../lang/excel-formula.js'\nimport fsharp from '../lang/fsharp.js'\nimport factor from '../lang/factor.js'\nimport $false from '../lang/false.js'\nimport firestoreSecurityRules from '../lang/firestore-security-rules.js'\nimport flow from '../lang/flow.js'\nimport fortran from '../lang/fortran.js'\nimport ftl from '../lang/ftl.js'\nimport gml from '../lang/gml.js'\nimport gap from '../lang/gap.js'\nimport gcode from '../lang/gcode.js'\nimport gdscript from '../lang/gdscript.js'\nimport gedcom from '../lang/gedcom.js'\nimport gettext from '../lang/gettext.js'\nimport gherkin from '../lang/gherkin.js'\nimport git from '../lang/git.js'\nimport glsl from '../lang/glsl.js'\nimport gn from '../lang/gn.js'\nimport linkerScript from '../lang/linker-script.js'\nimport go from '../lang/go.js'\nimport goModule from '../lang/go-module.js'\nimport gradle from '../lang/gradle.js'\nimport graphql from '../lang/graphql.js'\nimport groovy from '../lang/groovy.js'\nimport less from '../lang/less.js'\nimport scss from '../lang/scss.js'\nimport textile from '../lang/textile.js'\nimport haml from '../lang/haml.js'\nimport handlebars from '../lang/handlebars.js'\nimport haskell from '../lang/haskell.js'\nimport haxe from '../lang/haxe.js'\nimport hcl from '../lang/hcl.js'\nimport hlsl from '../lang/hlsl.js'\nimport hoon from '../lang/hoon.js'\nimport hpkp from '../lang/hpkp.js'\nimport hsts from '../lang/hsts.js'\nimport json from '../lang/json.js'\nimport uri from '../lang/uri.js'\nimport http from '../lang/http.js'\nimport ichigojam from '../lang/ichigojam.js'\nimport icon from '../lang/icon.js'\nimport icuMessageFormat from '../lang/icu-message-format.js'\nimport idris from '../lang/idris.js'\nimport ignore from '../lang/ignore.js'\nimport inform7 from '../lang/inform7.js'\nimport ini from '../lang/ini.js'\nimport io from '../lang/io.js'\nimport j from '../lang/j.js'\nimport java from '../lang/java.js'\nimport php from '../lang/php.js'\nimport javadoclike from '../lang/javadoclike.js'\nimport scala from '../lang/scala.js'\nimport javadoc from '../lang/javadoc.js'\nimport javastacktrace from '../lang/javastacktrace.js'\nimport jexl from '../lang/jexl.js'\nimport jolie from '../lang/jolie.js'\nimport jq from '../lang/jq.js'\nimport jsTemplates from '../lang/js-templates.js'\nimport typescript from '../lang/typescript.js'\nimport jsdoc from '../lang/jsdoc.js'\nimport n4js from '../lang/n4js.js'\nimport jsExtras from '../lang/js-extras.js'\nimport json5 from '../lang/json5.js'\nimport jsonp from '../lang/jsonp.js'\nimport jsstacktrace from '../lang/jsstacktrace.js'\nimport julia from '../lang/julia.js'\nimport keepalived from '../lang/keepalived.js'\nimport keyman from '../lang/keyman.js'\nimport kotlin from '../lang/kotlin.js'\nimport kumir from '../lang/kumir.js'\nimport kusto from '../lang/kusto.js'\nimport latex from '../lang/latex.js'\nimport latte from '../lang/latte.js'\nimport scheme from '../lang/scheme.js'\nimport lilypond from '../lang/lilypond.js'\nimport liquid from '../lang/liquid.js'\nimport lisp from '../lang/lisp.js'\nimport livescript from '../lang/livescript.js'\nimport llvm from '../lang/llvm.js'\nimport log from '../lang/log.js'\nimport lolcode from '../lang/lolcode.js'\nimport magma from '../lang/magma.js'\nimport makefile from '../lang/makefile.js'\nimport mata from '../lang/mata.js'\nimport matlab from '../lang/matlab.js'\nimport maxscript from '../lang/maxscript.js'\nimport mel from '../lang/mel.js'\nimport mermaid from '../lang/mermaid.js'\nimport metafont from '../lang/metafont.js'\nimport mizar from '../lang/mizar.js'\nimport mongodb from '../lang/mongodb.js'\nimport monkey from '../lang/monkey.js'\nimport moonscript from '../lang/moonscript.js'\nimport n1ql from '../lang/n1ql.js'\nimport nand2tetrisHdl from '../lang/nand2tetris-hdl.js'\nimport naniscript from '../lang/naniscript.js'\nimport nasm from '../lang/nasm.js'\nimport neon from '../lang/neon.js'\nimport nevod from '../lang/nevod.js'\nimport nginx from '../lang/nginx.js'\nimport nim from '../lang/nim.js'\nimport nix from '../lang/nix.js'\nimport nsis from '../lang/nsis.js'\nimport objectivec from '../lang/objectivec.js'\nimport ocaml from '../lang/ocaml.js'\nimport odin from '../lang/odin.js'\nimport opencl from '../lang/opencl.js'\nimport openqasm from '../lang/openqasm.js'\nimport oz from '../lang/oz.js'\nimport parigp from '../lang/parigp.js'\nimport parser from '../lang/parser.js'\nimport pascal from '../lang/pascal.js'\nimport pascaligo from '../lang/pascaligo.js'\nimport psl from '../lang/psl.js'\nimport pcaxis from '../lang/pcaxis.js'\nimport peoplecode from '../lang/peoplecode.js'\nimport perl from '../lang/perl.js'\nimport phpdoc from '../lang/phpdoc.js'\nimport phpExtras from '../lang/php-extras.js'\nimport plantUml from '../lang/plant-uml.js'\nimport plsql from '../lang/plsql.js'\nimport powerquery from '../lang/powerquery.js'\nimport powershell from '../lang/powershell.js'\nimport processing from '../lang/processing.js'\nimport prolog from '../lang/prolog.js'\nimport promql from '../lang/promql.js'\nimport properties from '../lang/properties.js'\nimport protobuf from '../lang/protobuf.js'\nimport stylus from '../lang/stylus.js'\nimport twig from '../lang/twig.js'\nimport pug from '../lang/pug.js'\nimport puppet from '../lang/puppet.js'\nimport pure from '../lang/pure.js'\nimport purebasic from '../lang/purebasic.js'\nimport purescript from '../lang/purescript.js'\nimport python from '../lang/python.js'\nimport qsharp from '../lang/qsharp.js'\nimport q from '../lang/q.js'\nimport qml from '../lang/qml.js'\nimport qore from '../lang/qore.js'\nimport r from '../lang/r.js'\nimport racket from '../lang/racket.js'\nimport cshtml from '../lang/cshtml.js'\nimport jsx from '../lang/jsx.js'\nimport tsx from '../lang/tsx.js'\nimport reason from '../lang/reason.js'\nimport rego from '../lang/rego.js'\nimport renpy from '../lang/renpy.js'\nimport rescript from '../lang/rescript.js'\nimport rest from '../lang/rest.js'\nimport rip from '../lang/rip.js'\nimport roboconf from '../lang/roboconf.js'\nimport robotframework from '../lang/robotframework.js'\nimport rust from '../lang/rust.js'\nimport sas from '../lang/sas.js'\nimport sass from '../lang/sass.js'\nimport shellSession from '../lang/shell-session.js'\nimport smali from '../lang/smali.js'\nimport smalltalk from '../lang/smalltalk.js'\nimport smarty from '../lang/smarty.js'\nimport sml from '../lang/sml.js'\nimport solidity from '../lang/solidity.js'\nimport solutionFile from '../lang/solution-file.js'\nimport soy from '../lang/soy.js'\nimport turtle from '../lang/turtle.js'\nimport sparql from '../lang/sparql.js'\nimport splunkSpl from '../lang/splunk-spl.js'\nimport sqf from '../lang/sqf.js'\nimport squirrel from '../lang/squirrel.js'\nimport stan from '../lang/stan.js'\nimport stata from '../lang/stata.js'\nimport iecst from '../lang/iecst.js'\nimport supercollider from '../lang/supercollider.js'\nimport swift from '../lang/swift.js'\nimport systemd from '../lang/systemd.js'\nimport t4Templating from '../lang/t4-templating.js'\nimport t4Cs from '../lang/t4-cs.js'\nimport vbnet from '../lang/vbnet.js'\nimport t4Vb from '../lang/t4-vb.js'\nimport tap from '../lang/tap.js'\nimport tcl from '../lang/tcl.js'\nimport tt2 from '../lang/tt2.js'\nimport toml from '../lang/toml.js'\nimport tremor from '../lang/tremor.js'\nimport typoscript from '../lang/typoscript.js'\nimport unrealscript from '../lang/unrealscript.js'\nimport uorazor from '../lang/uorazor.js'\nimport v from '../lang/v.js'\nimport vala from '../lang/vala.js'\nimport velocity from '../lang/velocity.js'\nimport verilog from '../lang/verilog.js'\nimport vhdl from '../lang/vhdl.js'\nimport vim from '../lang/vim.js'\nimport visualBasic from '../lang/visual-basic.js'\nimport warpscript from '../lang/warpscript.js'\nimport wasm from '../lang/wasm.js'\nimport webIdl from '../lang/web-idl.js'\nimport wgsl from '../lang/wgsl.js'\nimport wiki from '../lang/wiki.js'\nimport wolfram from '../lang/wolfram.js'\nimport wren from '../lang/wren.js'\nimport xeora from '../lang/xeora.js'\nimport xmlDoc from '../lang/xml-doc.js'\nimport xojo from '../lang/xojo.js'\nimport xquery from '../lang/xquery.js'\nimport yang from '../lang/yang.js'\nimport zig from '../lang/zig.js'\nimport {refractor} from './core.js'\n\nrefractor.register(markup)\nrefractor.register(css)\nrefractor.register(clike)\nrefractor.register(regex)\nrefractor.register(javascript)\nrefractor.register(abap)\nrefractor.register(abnf)\nrefractor.register(actionscript)\nrefractor.register(ada)\nrefractor.register(agda)\nrefractor.register(al)\nrefractor.register(antlr4)\nrefractor.register(apacheconf)\nrefractor.register(sql)\nrefractor.register(apex)\nrefractor.register(apl)\nrefractor.register(applescript)\nrefractor.register(aql)\nrefractor.register(c)\nrefractor.register(cpp)\nrefractor.register(arduino)\nrefractor.register(arff)\nrefractor.register(armasm)\nrefractor.register(bash)\nrefractor.register(yaml)\nrefractor.register(markdown)\nrefractor.register(arturo)\nrefractor.register(asciidoc)\nrefractor.register(csharp)\nrefractor.register(aspnet)\nrefractor.register(asm6502)\nrefractor.register(asmatmel)\nrefractor.register(autohotkey)\nrefractor.register(autoit)\nrefractor.register(avisynth)\nrefractor.register(avroIdl)\nrefractor.register(awk)\nrefractor.register(basic)\nrefractor.register(batch)\nrefractor.register(bbcode)\nrefractor.register(bbj)\nrefractor.register(bicep)\nrefractor.register(birb)\nrefractor.register(bison)\nrefractor.register(bnf)\nrefractor.register(bqn)\nrefractor.register(brainfuck)\nrefractor.register(brightscript)\nrefractor.register(bro)\nrefractor.register(bsl)\nrefractor.register(cfscript)\nrefractor.register(chaiscript)\nrefractor.register(cil)\nrefractor.register(cilkc)\nrefractor.register(cilkcpp)\nrefractor.register(clojure)\nrefractor.register(cmake)\nrefractor.register(cobol)\nrefractor.register(coffeescript)\nrefractor.register(concurnas)\nrefractor.register(csp)\nrefractor.register(cooklang)\nrefractor.register(coq)\nrefractor.register(ruby)\nrefractor.register(crystal)\nrefractor.register(cssExtras)\nrefractor.register(csv)\nrefractor.register(cue)\nrefractor.register(cypher)\nrefractor.register(d)\nrefractor.register(dart)\nrefractor.register(dataweave)\nrefractor.register(dax)\nrefractor.register(dhall)\nrefractor.register(diff)\nrefractor.register(markupTemplating)\nrefractor.register(django)\nrefractor.register(dnsZoneFile)\nrefractor.register(docker)\nrefractor.register(dot)\nrefractor.register(ebnf)\nrefractor.register(editorconfig)\nrefractor.register(eiffel)\nrefractor.register(ejs)\nrefractor.register(elixir)\nrefractor.register(elm)\nrefractor.register(lua)\nrefractor.register(etlua)\nrefractor.register(erb)\nrefractor.register(erlang)\nrefractor.register(excelFormula)\nrefractor.register(fsharp)\nrefractor.register(factor)\nrefractor.register($false)\nrefractor.register(firestoreSecurityRules)\nrefractor.register(flow)\nrefractor.register(fortran)\nrefractor.register(ftl)\nrefractor.register(gml)\nrefractor.register(gap)\nrefractor.register(gcode)\nrefractor.register(gdscript)\nrefractor.register(gedcom)\nrefractor.register(gettext)\nrefractor.register(gherkin)\nrefractor.register(git)\nrefractor.register(glsl)\nrefractor.register(gn)\nrefractor.register(linkerScript)\nrefractor.register(go)\nrefractor.register(goModule)\nrefractor.register(gradle)\nrefractor.register(graphql)\nrefractor.register(groovy)\nrefractor.register(less)\nrefractor.register(scss)\nrefractor.register(textile)\nrefractor.register(haml)\nrefractor.register(handlebars)\nrefractor.register(haskell)\nrefractor.register(haxe)\nrefractor.register(hcl)\nrefractor.register(hlsl)\nrefractor.register(hoon)\nrefractor.register(hpkp)\nrefractor.register(hsts)\nrefractor.register(json)\nrefractor.register(uri)\nrefractor.register(http)\nrefractor.register(ichigojam)\nrefractor.register(icon)\nrefractor.register(icuMessageFormat)\nrefractor.register(idris)\nrefractor.register(ignore)\nrefractor.register(inform7)\nrefractor.register(ini)\nrefractor.register(io)\nrefractor.register(j)\nrefractor.register(java)\nrefractor.register(php)\nrefractor.register(javadoclike)\nrefractor.register(scala)\nrefractor.register(javadoc)\nrefractor.register(javastacktrace)\nrefractor.register(jexl)\nrefractor.register(jolie)\nrefractor.register(jq)\nrefractor.register(jsTemplates)\nrefractor.register(typescript)\nrefractor.register(jsdoc)\nrefractor.register(n4js)\nrefractor.register(jsExtras)\nrefractor.register(json5)\nrefractor.register(jsonp)\nrefractor.register(jsstacktrace)\nrefractor.register(julia)\nrefractor.register(keepalived)\nrefractor.register(keyman)\nrefractor.register(kotlin)\nrefractor.register(kumir)\nrefractor.register(kusto)\nrefractor.register(latex)\nrefractor.register(latte)\nrefractor.register(scheme)\nrefractor.register(lilypond)\nrefractor.register(liquid)\nrefractor.register(lisp)\nrefractor.register(livescript)\nrefractor.register(llvm)\nrefractor.register(log)\nrefractor.register(lolcode)\nrefractor.register(magma)\nrefractor.register(makefile)\nrefractor.register(mata)\nrefractor.register(matlab)\nrefractor.register(maxscript)\nrefractor.register(mel)\nrefractor.register(mermaid)\nrefractor.register(metafont)\nrefractor.register(mizar)\nrefractor.register(mongodb)\nrefractor.register(monkey)\nrefractor.register(moonscript)\nrefractor.register(n1ql)\nrefractor.register(nand2tetrisHdl)\nrefractor.register(naniscript)\nrefractor.register(nasm)\nrefractor.register(neon)\nrefractor.register(nevod)\nrefractor.register(nginx)\nrefractor.register(nim)\nrefractor.register(nix)\nrefractor.register(nsis)\nrefractor.register(objectivec)\nrefractor.register(ocaml)\nrefractor.register(odin)\nrefractor.register(opencl)\nrefractor.register(openqasm)\nrefractor.register(oz)\nrefractor.register(parigp)\nrefractor.register(parser)\nrefractor.register(pascal)\nrefractor.register(pascaligo)\nrefractor.register(psl)\nrefractor.register(pcaxis)\nrefractor.register(peoplecode)\nrefractor.register(perl)\nrefractor.register(phpdoc)\nrefractor.register(phpExtras)\nrefractor.register(plantUml)\nrefractor.register(plsql)\nrefractor.register(powerquery)\nrefractor.register(powershell)\nrefractor.register(processing)\nrefractor.register(prolog)\nrefractor.register(promql)\nrefractor.register(properties)\nrefractor.register(protobuf)\nrefractor.register(stylus)\nrefractor.register(twig)\nrefractor.register(pug)\nrefractor.register(puppet)\nrefractor.register(pure)\nrefractor.register(purebasic)\nrefractor.register(purescript)\nrefractor.register(python)\nrefractor.register(qsharp)\nrefractor.register(q)\nrefractor.register(qml)\nrefractor.register(qore)\nrefractor.register(r)\nrefractor.register(racket)\nrefractor.register(cshtml)\nrefractor.register(jsx)\nrefractor.register(tsx)\nrefractor.register(reason)\nrefractor.register(rego)\nrefractor.register(renpy)\nrefractor.register(rescript)\nrefractor.register(rest)\nrefractor.register(rip)\nrefractor.register(roboconf)\nrefractor.register(robotframework)\nrefractor.register(rust)\nrefractor.register(sas)\nrefractor.register(sass)\nrefractor.register(shellSession)\nrefractor.register(smali)\nrefractor.register(smalltalk)\nrefractor.register(smarty)\nrefractor.register(sml)\nrefractor.register(solidity)\nrefractor.register(solutionFile)\nrefractor.register(soy)\nrefractor.register(turtle)\nrefractor.register(sparql)\nrefractor.register(splunkSpl)\nrefractor.register(sqf)\nrefractor.register(squirrel)\nrefractor.register(stan)\nrefractor.register(stata)\nrefractor.register(iecst)\nrefractor.register(supercollider)\nrefractor.register(swift)\nrefractor.register(systemd)\nrefractor.register(t4Templating)\nrefractor.register(t4Cs)\nrefractor.register(vbnet)\nrefractor.register(t4Vb)\nrefractor.register(tap)\nrefractor.register(tcl)\nrefractor.register(tt2)\nrefractor.register(toml)\nrefractor.register(tremor)\nrefractor.register(typoscript)\nrefractor.register(unrealscript)\nrefractor.register(uorazor)\nrefractor.register(v)\nrefractor.register(vala)\nrefractor.register(velocity)\nrefractor.register(verilog)\nrefractor.register(vhdl)\nrefractor.register(vim)\nrefractor.register(visualBasic)\nrefractor.register(warpscript)\nrefractor.register(wasm)\nrefractor.register(webIdl)\nrefractor.register(wgsl)\nrefractor.register(wiki)\nrefractor.register(wolfram)\nrefractor.register(wren)\nrefractor.register(xeora)\nrefractor.register(xmlDoc)\nrefractor.register(xojo)\nrefractor.register(xquery)\nrefractor.register(yang)\nrefractor.register(zig)\n\nexport {refractor} from './core.js'\n","function _interopRequireDefault(e) {\n  return e && e.__esModule ? e : {\n    \"default\": e\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"maxHeight\": \"inherit\",\n    \"height\": \"inherit\",\n    \"padding\": \"0 1em\",\n    \"display\": \"block\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"position\": \"relative\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"visible\",\n    \"padding\": \"1px\",\n    \"backgroundColor\": \"#fdfdfd\",\n    \"WebkitBoxSizing\": \"border-box\",\n    \"MozBoxSizing\": \"border-box\",\n    \"boxSizing\": \"border-box\",\n    \"marginBottom\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"] > code\": {\n    \"position\": \"relative\",\n    \"zIndex\": \"1\",\n    \"borderLeft\": \"10px solid #358ccb\",\n    \"boxShadow\": \"-1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf\",\n    \"backgroundColor\": \"#fdfdfd\",\n    \"backgroundImage\": \"linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%)\",\n    \"backgroundSize\": \"3em 3em\",\n    \"backgroundOrigin\": \"content-box\",\n    \"backgroundAttachment\": \"local\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"backgroundColor\": \"#fdfdfd\",\n    \"WebkitBoxSizing\": \"border-box\",\n    \"MozBoxSizing\": \"border-box\",\n    \"boxSizing\": \"border-box\",\n    \"marginBottom\": \"1em\",\n    \"position\": \"relative\",\n    \"padding\": \".2em\",\n    \"borderRadius\": \"0.3em\",\n    \"color\": \"#c92c2c\",\n    \"border\": \"1px solid rgba(0, 0, 0, 0.1)\",\n    \"display\": \"inline\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"pre[class*=\\\"language-\\\"]:before\": {\n    \"content\": \"''\",\n    \"display\": \"block\",\n    \"position\": \"absolute\",\n    \"bottom\": \"0.75em\",\n    \"left\": \"0.18em\",\n    \"width\": \"40%\",\n    \"height\": \"20%\",\n    \"maxHeight\": \"13em\",\n    \"boxShadow\": \"0px 13px 8px #979797\",\n    \"WebkitTransform\": \"rotate(-2deg)\",\n    \"MozTransform\": \"rotate(-2deg)\",\n    \"msTransform\": \"rotate(-2deg)\",\n    \"OTransform\": \"rotate(-2deg)\",\n    \"transform\": \"rotate(-2deg)\"\n  },\n  \"pre[class*=\\\"language-\\\"]:after\": {\n    \"content\": \"''\",\n    \"display\": \"block\",\n    \"position\": \"absolute\",\n    \"bottom\": \"0.75em\",\n    \"left\": \"auto\",\n    \"width\": \"40%\",\n    \"height\": \"20%\",\n    \"maxHeight\": \"13em\",\n    \"boxShadow\": \"0px 13px 8px #979797\",\n    \"WebkitTransform\": \"rotate(2deg)\",\n    \"MozTransform\": \"rotate(2deg)\",\n    \"msTransform\": \"rotate(2deg)\",\n    \"OTransform\": \"rotate(2deg)\",\n    \"transform\": \"rotate(2deg)\",\n    \"right\": \"0.75em\"\n  },\n  \"comment\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"block-comment\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"prolog\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"doctype\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"cdata\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"punctuation\": {\n    \"color\": \"#5F6364\"\n  },\n  \"property\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"tag\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"boolean\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"number\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"function-name\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"constant\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"symbol\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"deleted\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"selector\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"attr-name\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"string\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"char\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"function\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"builtin\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"inserted\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"operator\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"entity\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"variable\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#1990b8\"\n  },\n  \"attr-value\": {\n    \"color\": \"#1990b8\"\n  },\n  \"keyword\": {\n    \"color\": \"#1990b8\"\n  },\n  \"class-name\": {\n    \"color\": \"#1990b8\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"normal\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"pre[class*=\\\"language-\\\"].line-numbers.line-numbers\": {\n    \"paddingLeft\": \"0\"\n  },\n  \"pre[class*=\\\"language-\\\"].line-numbers.line-numbers code\": {\n    \"paddingLeft\": \"3.8em\"\n  },\n  \"pre[class*=\\\"language-\\\"].line-numbers.line-numbers .line-numbers-rows\": {\n    \"left\": \"0\"\n  },\n  \"pre[class*=\\\"language-\\\"][data-line]\": {\n    \"paddingTop\": \"0\",\n    \"paddingBottom\": \"0\",\n    \"paddingLeft\": \"0\"\n  },\n  \"pre[data-line] code\": {\n    \"position\": \"relative\",\n    \"paddingLeft\": \"4em\"\n  },\n  \"pre .line-highlight\": {\n    \"marginTop\": \"0\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 -.1em .2em black\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"hsl(30, 20%, 25%)\",\n    \"textShadow\": \"0 -.1em .2em black\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"border\": \".3em solid hsl(30, 20%, 40%)\",\n    \"borderRadius\": \".5em\",\n    \"boxShadow\": \"1px 1px .5em black inset\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(30, 20%, 25%)\",\n    \"padding\": \".15em .2em .05em\",\n    \"borderRadius\": \".3em\",\n    \"border\": \".13em solid hsl(30, 20%, 40%)\",\n    \"boxShadow\": \"1px 1px .3em -.1em black inset\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(30, 20%, 50%)\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(30, 20%, 50%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(30, 20%, 50%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(30, 20%, 50%)\"\n  },\n  \"punctuation\": {\n    \"Opacity\": \".7\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(75, 70%, 60%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(40, 90%, 60%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(40, 90%, 60%)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"hsl(40, 90%, 60%)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"hsl(40, 90%, 60%)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"hsl(40, 90%, 60%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(40, 90%, 60%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(350, 40%, 70%)\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"deleted\": {\n    \"color\": \"red\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"black\",\n    \"color\": \"white\",\n    \"boxShadow\": \"-.3em 0 0 .3em black, .3em 0 0 .3em black\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \".4em .8em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"url('data:image/svg+xml;charset=utf-8,<svg%20version%3D\\\"1.1\\\"%20xmlns%3D\\\"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg\\\"%20width%3D\\\"100\\\"%20height%3D\\\"100\\\"%20fill%3D\\\"rgba(0%2C0%2C0%2C.2)\\\">%0D%0A<polygon%20points%3D\\\"0%2C50%2050%2C0%200%2C0\\\"%20%2F>%0D%0A<polygon%20points%3D\\\"0%2C100%2050%2C100%20100%2C50%20100%2C0\\\"%20%2F>%0D%0A<%2Fsvg>')\",\n    \"backgroundSize\": \"1em 1em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".2em\",\n    \"borderRadius\": \".3em\",\n    \"boxShadow\": \"none\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#aaa\"\n  },\n  \"prolog\": {\n    \"color\": \"#aaa\"\n  },\n  \"doctype\": {\n    \"color\": \"#aaa\"\n  },\n  \"cdata\": {\n    \"color\": \"#aaa\"\n  },\n  \"punctuation\": {\n    \"color\": \"#999\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#0cf\"\n  },\n  \"tag\": {\n    \"color\": \"#0cf\"\n  },\n  \"boolean\": {\n    \"color\": \"#0cf\"\n  },\n  \"number\": {\n    \"color\": \"#0cf\"\n  },\n  \"constant\": {\n    \"color\": \"#0cf\"\n  },\n  \"symbol\": {\n    \"color\": \"#0cf\"\n  },\n  \"selector\": {\n    \"color\": \"yellow\"\n  },\n  \"attr-name\": {\n    \"color\": \"yellow\"\n  },\n  \"string\": {\n    \"color\": \"yellow\"\n  },\n  \"char\": {\n    \"color\": \"yellow\"\n  },\n  \"builtin\": {\n    \"color\": \"yellow\"\n  },\n  \"operator\": {\n    \"color\": \"yellowgreen\"\n  },\n  \"entity\": {\n    \"color\": \"yellowgreen\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"yellowgreen\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"yellowgreen\"\n  },\n  \"variable\": {\n    \"color\": \"yellowgreen\"\n  },\n  \"inserted\": {\n    \"color\": \"yellowgreen\"\n  },\n  \"atrule\": {\n    \"color\": \"deeppink\"\n  },\n  \"attr-value\": {\n    \"color\": \"deeppink\"\n  },\n  \"keyword\": {\n    \"color\": \"deeppink\"\n  },\n  \"regex\": {\n    \"color\": \"orange\"\n  },\n  \"important\": {\n    \"color\": \"orange\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"deleted\": {\n    \"color\": \"red\"\n  },\n  \"pre.diff-highlight.diff-highlight > code .token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"rgba(255, 0, 0, .3)\",\n    \"display\": \"inline\"\n  },\n  \"pre > code.diff-highlight.diff-highlight .token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"rgba(255, 0, 0, .3)\",\n    \"display\": \"inline\"\n  },\n  \"pre.diff-highlight.diff-highlight > code .token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"rgba(0, 255, 128, .3)\",\n    \"display\": \"inline\"\n  },\n  \"pre > code.diff-highlight.diff-highlight .token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"rgba(0, 255, 128, .3)\",\n    \"display\": \"inline\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"#272822\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#272822\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#8292a2\"\n  },\n  \"prolog\": {\n    \"color\": \"#8292a2\"\n  },\n  \"doctype\": {\n    \"color\": \"#8292a2\"\n  },\n  \"cdata\": {\n    \"color\": \"#8292a2\"\n  },\n  \"punctuation\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#f92672\"\n  },\n  \"tag\": {\n    \"color\": \"#f92672\"\n  },\n  \"constant\": {\n    \"color\": \"#f92672\"\n  },\n  \"symbol\": {\n    \"color\": \"#f92672\"\n  },\n  \"deleted\": {\n    \"color\": \"#f92672\"\n  },\n  \"boolean\": {\n    \"color\": \"#ae81ff\"\n  },\n  \"number\": {\n    \"color\": \"#ae81ff\"\n  },\n  \"selector\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"attr-name\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"string\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"char\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"builtin\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"inserted\": {\n    \"color\": \"#a6e22e\"\n  },\n  \"operator\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"entity\": {\n    \"color\": \"#f8f8f2\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"variable\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"atrule\": {\n    \"color\": \"#e6db74\"\n  },\n  \"attr-value\": {\n    \"color\": \"#e6db74\"\n  },\n  \"function\": {\n    \"color\": \"#e6db74\"\n  },\n  \"class-name\": {\n    \"color\": \"#e6db74\"\n  },\n  \"keyword\": {\n    \"color\": \"#66d9ef\"\n  },\n  \"regex\": {\n    \"color\": \"#fd971f\"\n  },\n  \"important\": {\n    \"color\": \"#fd971f\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#657b83\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#657b83\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\",\n    \"backgroundColor\": \"#fdf6e3\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#073642\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#073642\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#073642\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#073642\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#073642\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#073642\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#073642\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#073642\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"backgroundColor\": \"#fdf6e3\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#93a1a1\"\n  },\n  \"prolog\": {\n    \"color\": \"#93a1a1\"\n  },\n  \"doctype\": {\n    \"color\": \"#93a1a1\"\n  },\n  \"cdata\": {\n    \"color\": \"#93a1a1\"\n  },\n  \"punctuation\": {\n    \"color\": \"#586e75\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#268bd2\"\n  },\n  \"tag\": {\n    \"color\": \"#268bd2\"\n  },\n  \"boolean\": {\n    \"color\": \"#268bd2\"\n  },\n  \"number\": {\n    \"color\": \"#268bd2\"\n  },\n  \"constant\": {\n    \"color\": \"#268bd2\"\n  },\n  \"symbol\": {\n    \"color\": \"#268bd2\"\n  },\n  \"deleted\": {\n    \"color\": \"#268bd2\"\n  },\n  \"selector\": {\n    \"color\": \"#2aa198\"\n  },\n  \"attr-name\": {\n    \"color\": \"#2aa198\"\n  },\n  \"string\": {\n    \"color\": \"#2aa198\"\n  },\n  \"char\": {\n    \"color\": \"#2aa198\"\n  },\n  \"builtin\": {\n    \"color\": \"#2aa198\"\n  },\n  \"url\": {\n    \"color\": \"#2aa198\"\n  },\n  \"inserted\": {\n    \"color\": \"#2aa198\"\n  },\n  \"entity\": {\n    \"color\": \"#657b83\",\n    \"background\": \"#eee8d5\",\n    \"cursor\": \"help\"\n  },\n  \"atrule\": {\n    \"color\": \"#859900\"\n  },\n  \"attr-value\": {\n    \"color\": \"#859900\"\n  },\n  \"keyword\": {\n    \"color\": \"#859900\"\n  },\n  \"function\": {\n    \"color\": \"#b58900\"\n  },\n  \"class-name\": {\n    \"color\": \"#b58900\"\n  },\n  \"regex\": {\n    \"color\": \"#cb4b16\"\n  },\n  \"important\": {\n    \"color\": \"#cb4b16\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"#cb4b16\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#ccc\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#ccc\",\n    \"background\": \"#2d2d2d\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#2d2d2d\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#999\"\n  },\n  \"block-comment\": {\n    \"color\": \"#999\"\n  },\n  \"prolog\": {\n    \"color\": \"#999\"\n  },\n  \"doctype\": {\n    \"color\": \"#999\"\n  },\n  \"cdata\": {\n    \"color\": \"#999\"\n  },\n  \"punctuation\": {\n    \"color\": \"#ccc\"\n  },\n  \"tag\": {\n    \"color\": \"#e2777a\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e2777a\"\n  },\n  \"namespace\": {\n    \"color\": \"#e2777a\"\n  },\n  \"deleted\": {\n    \"color\": \"#e2777a\"\n  },\n  \"function-name\": {\n    \"color\": \"#6196cc\"\n  },\n  \"boolean\": {\n    \"color\": \"#f08d49\"\n  },\n  \"number\": {\n    \"color\": \"#f08d49\"\n  },\n  \"function\": {\n    \"color\": \"#f08d49\"\n  },\n  \"property\": {\n    \"color\": \"#f8c555\"\n  },\n  \"class-name\": {\n    \"color\": \"#f8c555\"\n  },\n  \"constant\": {\n    \"color\": \"#f8c555\"\n  },\n  \"symbol\": {\n    \"color\": \"#f8c555\"\n  },\n  \"selector\": {\n    \"color\": \"#cc99cd\"\n  },\n  \"important\": {\n    \"color\": \"#cc99cd\",\n    \"fontWeight\": \"bold\"\n  },\n  \"atrule\": {\n    \"color\": \"#cc99cd\"\n  },\n  \"keyword\": {\n    \"color\": \"#cc99cd\"\n  },\n  \"builtin\": {\n    \"color\": \"#cc99cd\"\n  },\n  \"string\": {\n    \"color\": \"#7ec699\"\n  },\n  \"char\": {\n    \"color\": \"#7ec699\"\n  },\n  \"attr-value\": {\n    \"color\": \"#7ec699\"\n  },\n  \"regex\": {\n    \"color\": \"#7ec699\"\n  },\n  \"variable\": {\n    \"color\": \"#7ec699\"\n  },\n  \"operator\": {\n    \"color\": \"#67cdcc\"\n  },\n  \"entity\": {\n    \"color\": \"#67cdcc\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#67cdcc\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"color\": \"green\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"textShadow\": \"0 -.1em .2em black\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"hsl(0, 0%, 8%)\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"textShadow\": \"0 -.1em .2em black\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"borderRadius\": \".5em\",\n    \"border\": \".3em solid hsl(0, 0%, 33%)\",\n    \"boxShadow\": \"1px 1px .5em black inset\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"padding\": \"1em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(0, 0%, 8%)\",\n    \"borderRadius\": \".3em\",\n    \"border\": \".13em solid hsl(0, 0%, 33%)\",\n    \"boxShadow\": \"1px 1px .3em -.1em black inset\",\n    \"padding\": \".15em .2em .05em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"hsla(0, 0%, 93%, 0.15)\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(0, 0%, 47%)\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(0, 0%, 47%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(0, 0%, 47%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(0, 0%, 47%)\"\n  },\n  \"punctuation\": {\n    \"Opacity\": \".7\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(14, 58%, 55%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(14, 58%, 55%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(14, 58%, 55%)\"\n  },\n  \"deleted\": {\n    \"color\": \"hsl(14, 58%, 55%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"property\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(53, 89%, 79%)\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(76, 21%, 52%)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(76, 21%, 52%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(218, 22%, 55%)\"\n  },\n  \"regex\": {\n    \"color\": \"hsl(42, 75%, 65%)\"\n  },\n  \"important\": {\n    \"color\": \"hsl(42, 75%, 65%)\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markup .token.tag\": {\n    \"color\": \"hsl(33, 33%, 52%)\"\n  },\n  \".language-markup .token.attr-name\": {\n    \"color\": \"hsl(33, 33%, 52%)\"\n  },\n  \".language-markup .token.punctuation\": {\n    \"color\": \"hsl(33, 33%, 52%)\"\n  },\n  \"\": {\n    \"position\": \"relative\",\n    \"zIndex\": \"1\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0))\",\n    \"borderBottom\": \"1px dashed hsl(0, 0%, 33%)\",\n    \"borderTop\": \"1px dashed hsl(0, 0%, 33%)\",\n    \"marginTop\": \"0.75em\",\n    \"zIndex\": \"0\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"backgroundColor\": \"hsl(215, 15%, 59%)\",\n    \"color\": \"hsl(24, 20%, 95%)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"backgroundColor\": \"hsl(215, 15%, 59%)\",\n    \"color\": \"hsl(24, 20%, 95%)\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"#f5f2f0\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#f5f2f0\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"slategray\"\n  },\n  \"prolog\": {\n    \"color\": \"slategray\"\n  },\n  \"doctype\": {\n    \"color\": \"slategray\"\n  },\n  \"cdata\": {\n    \"color\": \"slategray\"\n  },\n  \"punctuation\": {\n    \"color\": \"#999\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#905\"\n  },\n  \"tag\": {\n    \"color\": \"#905\"\n  },\n  \"boolean\": {\n    \"color\": \"#905\"\n  },\n  \"number\": {\n    \"color\": \"#905\"\n  },\n  \"constant\": {\n    \"color\": \"#905\"\n  },\n  \"symbol\": {\n    \"color\": \"#905\"\n  },\n  \"deleted\": {\n    \"color\": \"#905\"\n  },\n  \"selector\": {\n    \"color\": \"#690\"\n  },\n  \"attr-name\": {\n    \"color\": \"#690\"\n  },\n  \"string\": {\n    \"color\": \"#690\"\n  },\n  \"char\": {\n    \"color\": \"#690\"\n  },\n  \"builtin\": {\n    \"color\": \"#690\"\n  },\n  \"inserted\": {\n    \"color\": \"#690\"\n  },\n  \"operator\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"entity\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#07a\"\n  },\n  \"attr-value\": {\n    \"color\": \"#07a\"\n  },\n  \"keyword\": {\n    \"color\": \"#07a\"\n  },\n  \"function\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"class-name\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"#e90\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"#2b2b2b\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#2b2b2b\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#d4d0ab\"\n  },\n  \"prolog\": {\n    \"color\": \"#d4d0ab\"\n  },\n  \"doctype\": {\n    \"color\": \"#d4d0ab\"\n  },\n  \"cdata\": {\n    \"color\": \"#d4d0ab\"\n  },\n  \"punctuation\": {\n    \"color\": \"#fefefe\"\n  },\n  \"property\": {\n    \"color\": \"#ffa07a\"\n  },\n  \"tag\": {\n    \"color\": \"#ffa07a\"\n  },\n  \"constant\": {\n    \"color\": \"#ffa07a\"\n  },\n  \"symbol\": {\n    \"color\": \"#ffa07a\"\n  },\n  \"deleted\": {\n    \"color\": \"#ffa07a\"\n  },\n  \"boolean\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"number\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"selector\": {\n    \"color\": \"#abe338\"\n  },\n  \"attr-name\": {\n    \"color\": \"#abe338\"\n  },\n  \"string\": {\n    \"color\": \"#abe338\"\n  },\n  \"char\": {\n    \"color\": \"#abe338\"\n  },\n  \"builtin\": {\n    \"color\": \"#abe338\"\n  },\n  \"inserted\": {\n    \"color\": \"#abe338\"\n  },\n  \"operator\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"entity\": {\n    \"color\": \"#00e0e0\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#00e0e0\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#00e0e0\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"variable\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"atrule\": {\n    \"color\": \"#ffd700\"\n  },\n  \"attr-value\": {\n    \"color\": \"#ffd700\"\n  },\n  \"function\": {\n    \"color\": \"#ffd700\"\n  },\n  \"keyword\": {\n    \"color\": \"#00e0e0\"\n  },\n  \"regex\": {\n    \"color\": \"#ffd700\"\n  },\n  \"important\": {\n    \"color\": \"#ffd700\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#c5c8c6\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#c5c8c6\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\",\n    \"background\": \"#1d1f21\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#1d1f21\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#7C7C7C\"\n  },\n  \"prolog\": {\n    \"color\": \"#7C7C7C\"\n  },\n  \"doctype\": {\n    \"color\": \"#7C7C7C\"\n  },\n  \"cdata\": {\n    \"color\": \"#7C7C7C\"\n  },\n  \"punctuation\": {\n    \"color\": \"#c5c8c6\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#96CBFE\"\n  },\n  \"keyword\": {\n    \"color\": \"#96CBFE\"\n  },\n  \"tag\": {\n    \"color\": \"#96CBFE\"\n  },\n  \"class-name\": {\n    \"color\": \"#FFFFB6\",\n    \"textDecoration\": \"underline\"\n  },\n  \"boolean\": {\n    \"color\": \"#99CC99\"\n  },\n  \"constant\": {\n    \"color\": \"#99CC99\"\n  },\n  \"symbol\": {\n    \"color\": \"#f92672\"\n  },\n  \"deleted\": {\n    \"color\": \"#f92672\"\n  },\n  \"number\": {\n    \"color\": \"#FF73FD\"\n  },\n  \"selector\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"attr-name\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"string\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"char\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"builtin\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"inserted\": {\n    \"color\": \"#A8FF60\"\n  },\n  \"variable\": {\n    \"color\": \"#C6C5FE\"\n  },\n  \"operator\": {\n    \"color\": \"#EDEDED\"\n  },\n  \"entity\": {\n    \"color\": \"#FFFFB6\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#96CBFE\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#87C38A\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#87C38A\"\n  },\n  \"atrule\": {\n    \"color\": \"#F9EE98\"\n  },\n  \"attr-value\": {\n    \"color\": \"#F9EE98\"\n  },\n  \"function\": {\n    \"color\": \"#DAD085\"\n  },\n  \"regex\": {\n    \"color\": \"#E9C062\"\n  },\n  \"important\": {\n    \"color\": \"#fd971f\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#f5f7ff\",\n    \"color\": \"#5e6687\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#f5f7ff\",\n    \"color\": \"#5e6687\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#dfe2f1\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#898ea4\"\n  },\n  \"prolog\": {\n    \"color\": \"#898ea4\"\n  },\n  \"doctype\": {\n    \"color\": \"#898ea4\"\n  },\n  \"cdata\": {\n    \"color\": \"#898ea4\"\n  },\n  \"punctuation\": {\n    \"color\": \"#5e6687\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"operator\": {\n    \"color\": \"#c76b29\"\n  },\n  \"boolean\": {\n    \"color\": \"#c76b29\"\n  },\n  \"number\": {\n    \"color\": \"#c76b29\"\n  },\n  \"property\": {\n    \"color\": \"#c08b30\"\n  },\n  \"tag\": {\n    \"color\": \"#3d8fd1\"\n  },\n  \"string\": {\n    \"color\": \"#22a2c9\"\n  },\n  \"selector\": {\n    \"color\": \"#6679cc\"\n  },\n  \"attr-name\": {\n    \"color\": \"#c76b29\"\n  },\n  \"entity\": {\n    \"color\": \"#22a2c9\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#22a2c9\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#22a2c9\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#22a2c9\"\n  },\n  \"attr-value\": {\n    \"color\": \"#ac9739\"\n  },\n  \"keyword\": {\n    \"color\": \"#ac9739\"\n  },\n  \"control\": {\n    \"color\": \"#ac9739\"\n  },\n  \"directive\": {\n    \"color\": \"#ac9739\"\n  },\n  \"unit\": {\n    \"color\": \"#ac9739\"\n  },\n  \"statement\": {\n    \"color\": \"#22a2c9\"\n  },\n  \"regex\": {\n    \"color\": \"#22a2c9\"\n  },\n  \"atrule\": {\n    \"color\": \"#22a2c9\"\n  },\n  \"placeholder\": {\n    \"color\": \"#3d8fd1\"\n  },\n  \"variable\": {\n    \"color\": \"#3d8fd1\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #202746\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#c94922\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \"0.4em solid #c94922\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#dfe2f1\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#979db4\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(107, 115, 148, 0.2) 70%, rgba(107, 115, 148, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#fff\",\n    \"textShadow\": \"0 1px 1px #000\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"wordSpacing\": \"normal\",\n    \"whiteSpace\": \"pre\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.4\",\n    \"background\": \"none\",\n    \"border\": \"0\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#fff\",\n    \"textShadow\": \"0 1px 1px #000\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"wordSpacing\": \"normal\",\n    \"whiteSpace\": \"pre\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.4\",\n    \"background\": \"#222\",\n    \"border\": \"0\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"15px\",\n    \"margin\": \"1em 0\",\n    \"overflow\": \"auto\",\n    \"MozBorderRadius\": \"8px\",\n    \"WebkitBorderRadius\": \"8px\",\n    \"borderRadius\": \"8px\"\n  },\n  \"pre[class*=\\\"language-\\\"] code\": {\n    \"float\": \"left\",\n    \"padding\": \"0 15px 0 0\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#222\",\n    \"padding\": \"5px 10px\",\n    \"lineHeight\": \"1\",\n    \"MozBorderRadius\": \"3px\",\n    \"WebkitBorderRadius\": \"3px\",\n    \"borderRadius\": \"3px\"\n  },\n  \"comment\": {\n    \"color\": \"#797979\"\n  },\n  \"prolog\": {\n    \"color\": \"#797979\"\n  },\n  \"doctype\": {\n    \"color\": \"#797979\"\n  },\n  \"cdata\": {\n    \"color\": \"#797979\"\n  },\n  \"selector\": {\n    \"color\": \"#fff\"\n  },\n  \"operator\": {\n    \"color\": \"#fff\"\n  },\n  \"punctuation\": {\n    \"color\": \"#fff\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#ffd893\"\n  },\n  \"boolean\": {\n    \"color\": \"#ffd893\"\n  },\n  \"atrule\": {\n    \"color\": \"#B0C975\"\n  },\n  \"attr-value\": {\n    \"color\": \"#B0C975\"\n  },\n  \"hex\": {\n    \"color\": \"#B0C975\"\n  },\n  \"string\": {\n    \"color\": \"#B0C975\"\n  },\n  \"property\": {\n    \"color\": \"#c27628\"\n  },\n  \"entity\": {\n    \"color\": \"#c27628\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#c27628\"\n  },\n  \"attr-name\": {\n    \"color\": \"#c27628\"\n  },\n  \"keyword\": {\n    \"color\": \"#c27628\"\n  },\n  \"regex\": {\n    \"color\": \"#9B71C6\"\n  },\n  \"function\": {\n    \"color\": \"#e5a638\"\n  },\n  \"constant\": {\n    \"color\": \"#e5a638\"\n  },\n  \"variable\": {\n    \"color\": \"#fdfba8\"\n  },\n  \"number\": {\n    \"color\": \"#8799B0\"\n  },\n  \"important\": {\n    \"color\": \"#E45734\"\n  },\n  \"deliminator\": {\n    \"color\": \"#E45734\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"rgba(255, 255, 255, .2)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"top\": \".3em\",\n    \"backgroundColor\": \"rgba(255, 255, 255, .3)\",\n    \"color\": \"#fff\",\n    \"MozBorderRadius\": \"8px\",\n    \"WebkitBorderRadius\": \"8px\",\n    \"borderRadius\": \"8px\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"top\": \".3em\",\n    \"backgroundColor\": \"rgba(255, 255, 255, .3)\",\n    \"color\": \"#fff\",\n    \"MozBorderRadius\": \"8px\",\n    \"WebkitBorderRadius\": \"8px\",\n    \"borderRadius\": \"8px\"\n  },\n  \".line-numbers .line-numbers-rows > span\": {\n    \"borderRight\": \"3px #d9d336 solid\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#111b27\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#e3eaf2\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#8da1b9\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#e3eaf2\",\n    \"padding\": \"0.1em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#3c526d\"\n  },\n  \"prolog\": {\n    \"color\": \"#3c526d\"\n  },\n  \"doctype\": {\n    \"color\": \"#3c526d\"\n  },\n  \"cdata\": {\n    \"color\": \"#3c526d\"\n  },\n  \"punctuation\": {\n    \"color\": \"#111b27\"\n  },\n  \"delimiter.important\": {\n    \"color\": \"#006d6d\",\n    \"fontWeight\": \"inherit\"\n  },\n  \"selector.parent\": {\n    \"color\": \"#006d6d\"\n  },\n  \"tag\": {\n    \"color\": \"#006d6d\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#006d6d\"\n  },\n  \"attr-name\": {\n    \"color\": \"#755f00\"\n  },\n  \"boolean\": {\n    \"color\": \"#755f00\"\n  },\n  \"boolean.important\": {\n    \"color\": \"#755f00\"\n  },\n  \"number\": {\n    \"color\": \"#755f00\"\n  },\n  \"constant\": {\n    \"color\": \"#755f00\"\n  },\n  \"selector.attribute\": {\n    \"color\": \"#755f00\"\n  },\n  \"class-name\": {\n    \"color\": \"#005a8e\"\n  },\n  \"key\": {\n    \"color\": \"#005a8e\"\n  },\n  \"parameter\": {\n    \"color\": \"#005a8e\"\n  },\n  \"property\": {\n    \"color\": \"#005a8e\"\n  },\n  \"property-access\": {\n    \"color\": \"#005a8e\"\n  },\n  \"variable\": {\n    \"color\": \"#005a8e\"\n  },\n  \"attr-value\": {\n    \"color\": \"#116b00\"\n  },\n  \"inserted\": {\n    \"color\": \"#116b00\"\n  },\n  \"color\": {\n    \"color\": \"#116b00\"\n  },\n  \"selector.value\": {\n    \"color\": \"#116b00\"\n  },\n  \"string\": {\n    \"color\": \"#116b00\"\n  },\n  \"string.url-link\": {\n    \"color\": \"#116b00\"\n  },\n  \"builtin\": {\n    \"color\": \"#af00af\"\n  },\n  \"keyword-array\": {\n    \"color\": \"#af00af\"\n  },\n  \"package\": {\n    \"color\": \"#af00af\"\n  },\n  \"regex\": {\n    \"color\": \"#af00af\"\n  },\n  \"function\": {\n    \"color\": \"#7c00aa\"\n  },\n  \"selector.class\": {\n    \"color\": \"#7c00aa\"\n  },\n  \"selector.id\": {\n    \"color\": \"#7c00aa\"\n  },\n  \"atrule.rule\": {\n    \"color\": \"#a04900\"\n  },\n  \"combinator\": {\n    \"color\": \"#a04900\"\n  },\n  \"keyword\": {\n    \"color\": \"#a04900\"\n  },\n  \"operator\": {\n    \"color\": \"#a04900\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#a04900\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#a04900\"\n  },\n  \"selector\": {\n    \"color\": \"#a04900\"\n  },\n  \"unit\": {\n    \"color\": \"#a04900\"\n  },\n  \"deleted\": {\n    \"color\": \"#c22f2e\"\n  },\n  \"important\": {\n    \"color\": \"#c22f2e\",\n    \"fontWeight\": \"bold\"\n  },\n  \"keyword-this\": {\n    \"color\": \"#005a8e\",\n    \"fontWeight\": \"bold\"\n  },\n  \"this\": {\n    \"color\": \"#005a8e\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"entity\": {\n    \"cursor\": \"help\"\n  },\n  \".language-markdown .token.title\": {\n    \"color\": \"#005a8e\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.title .token.punctuation\": {\n    \"color\": \"#005a8e\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"#af00af\"\n  },\n  \".language-markdown .token.code\": {\n    \"color\": \"#006d6d\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"#005a8e\"\n  },\n  \".language-markdown .token.url > .token.content\": {\n    \"color\": \"#116b00\"\n  },\n  \".language-markdown .token.url-link\": {\n    \"color\": \"#755f00\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"#af00af\"\n  },\n  \".language-markdown .token.table-header\": {\n    \"color\": \"#111b27\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"#111b27\"\n  },\n  \".language-scss .token.variable\": {\n    \"color\": \"#006d6d\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"#3c526d\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"#3c526d\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"#3c526d\"\n  },\n  \"token.space:before\": {\n    \"color\": \"#3c526d\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8e\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8e\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8eda\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8eda\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8eda\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#005a8eda\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#3c526d\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#3c526d\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#3c526d\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, #8da1b92f 70%, #8da1b925)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"backgroundColor\": \"#3c526d\",\n    \"color\": \"#e3eaf2\",\n    \"boxShadow\": \"0 1px #8da1b9\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"backgroundColor\": \"#3c526d\",\n    \"color\": \"#e3eaf2\",\n    \"boxShadow\": \"0 1px #8da1b9\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"#3c526d1f\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRight\": \"1px solid #8da1b97a\",\n    \"background\": \"#d0dae77a\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#3c526dda\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"#755f00\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"#755f00\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"#755f00\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"#af00af\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"#af00af\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"#af00af\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"#005a8e\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"#005a8e\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"#005a8e\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"#7c00aa\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"#7c00aa\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"#7c00aa\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#c22f2e1f\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#c22f2e1f\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#116b001f\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#116b001f\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRight\": \"1px solid #8da1b97a\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"#3c526dda\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#e3eaf2\",\n    \"background\": \"#111b27\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#3c526d\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#111b27\",\n    \"padding\": \"0.1em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"prolog\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"doctype\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"cdata\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"punctuation\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \"delimiter.important\": {\n    \"color\": \"#66cccc\",\n    \"fontWeight\": \"inherit\"\n  },\n  \"selector.parent\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag\": {\n    \"color\": \"#66cccc\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#66cccc\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"boolean.important\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"number\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"constant\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"selector.attribute\": {\n    \"color\": \"#e6d37a\"\n  },\n  \"class-name\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"key\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"parameter\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"property-access\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"variable\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \"attr-value\": {\n    \"color\": \"#91d076\"\n  },\n  \"inserted\": {\n    \"color\": \"#91d076\"\n  },\n  \"color\": {\n    \"color\": \"#91d076\"\n  },\n  \"selector.value\": {\n    \"color\": \"#91d076\"\n  },\n  \"string\": {\n    \"color\": \"#91d076\"\n  },\n  \"string.url-link\": {\n    \"color\": \"#91d076\"\n  },\n  \"builtin\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"keyword-array\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"package\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"regex\": {\n    \"color\": \"#f4adf4\"\n  },\n  \"function\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.class\": {\n    \"color\": \"#c699e3\"\n  },\n  \"selector.id\": {\n    \"color\": \"#c699e3\"\n  },\n  \"atrule.rule\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"combinator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"keyword\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"operator\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"selector\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"unit\": {\n    \"color\": \"#e9ae7e\"\n  },\n  \"deleted\": {\n    \"color\": \"#cd6660\"\n  },\n  \"important\": {\n    \"color\": \"#cd6660\",\n    \"fontWeight\": \"bold\"\n  },\n  \"keyword-this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"this\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"entity\": {\n    \"cursor\": \"help\"\n  },\n  \".language-markdown .token.title\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.title .token.punctuation\": {\n    \"color\": \"#6cb8e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.code\": {\n    \"color\": \"#66cccc\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".language-markdown .token.url .token.content\": {\n    \"color\": \"#91d076\"\n  },\n  \".language-markdown .token.url-link\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".language-markdown .token.table-header\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"#e3eaf2\"\n  },\n  \".language-scss .token.variable\": {\n    \"color\": \"#66cccc\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"token.space:before\": {\n    \"color\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#6cb8e6da\",\n    \"textDecoration\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"color\": \"#111b27\",\n    \"background\": \"#8da1b9\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, #3c526d5f 70%, #3c526d55)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"backgroundColor\": \"#8da1b9\",\n    \"color\": \"#111b27\",\n    \"boxShadow\": \"0 1px #3c526d\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"#8da1b918\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRight\": \"1px solid #0b121b\",\n    \"background\": \"#0b121b7a\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#8da1b9da\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"#e6d37a\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"#f4adf4\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"#6cb8e6\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"#c699e3\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"#c699e3\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"#cd66601f\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"#91d0761f\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRight\": \"1px solid #0b121b\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"#8da1b9da\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"position\": \"relative\",\n    \"borderLeft\": \"10px solid #358ccb\",\n    \"boxShadow\": \"-1px 0 0 0 #358ccb, 0 0 0 1px #dfdfdf\",\n    \"backgroundColor\": \"#fdfdfd\",\n    \"backgroundImage\": \"linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%)\",\n    \"backgroundSize\": \"3em 3em\",\n    \"backgroundOrigin\": \"content-box\",\n    \"backgroundAttachment\": \"local\",\n    \"margin\": \".5em 0\",\n    \"padding\": \"0 1em\"\n  },\n  \"pre[class*=\\\"language-\\\"] > code\": {\n    \"display\": \"block\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"position\": \"relative\",\n    \"padding\": \".2em\",\n    \"borderRadius\": \"0.3em\",\n    \"color\": \"#c92c2c\",\n    \"border\": \"1px solid rgba(0, 0, 0, 0.1)\",\n    \"display\": \"inline\",\n    \"whiteSpace\": \"normal\",\n    \"backgroundColor\": \"#fdfdfd\",\n    \"WebkitBoxSizing\": \"border-box\",\n    \"MozBoxSizing\": \"border-box\",\n    \"boxSizing\": \"border-box\"\n  },\n  \"comment\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"block-comment\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"prolog\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"doctype\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"cdata\": {\n    \"color\": \"#7D8B99\"\n  },\n  \"punctuation\": {\n    \"color\": \"#5F6364\"\n  },\n  \"property\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"tag\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"boolean\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"number\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"function-name\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"constant\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"symbol\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"deleted\": {\n    \"color\": \"#c92c2c\"\n  },\n  \"selector\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"attr-name\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"string\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"char\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"function\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"builtin\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"inserted\": {\n    \"color\": \"#2f9c0a\"\n  },\n  \"operator\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"entity\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"variable\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#1990b8\"\n  },\n  \"attr-value\": {\n    \"color\": \"#1990b8\"\n  },\n  \"keyword\": {\n    \"color\": \"#1990b8\"\n  },\n  \"class-name\": {\n    \"color\": \"#1990b8\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"normal\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#a67f59\",\n    \"background\": \"rgba(255, 255, 255, 0.5)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#a9b7c6\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#a9b7c6\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#2b2b2b\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"rgba(33, 66, 131, .85)\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#2b2b2b\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#808080\"\n  },\n  \"prolog\": {\n    \"color\": \"#808080\"\n  },\n  \"cdata\": {\n    \"color\": \"#808080\"\n  },\n  \"delimiter\": {\n    \"color\": \"#cc7832\"\n  },\n  \"boolean\": {\n    \"color\": \"#cc7832\"\n  },\n  \"keyword\": {\n    \"color\": \"#cc7832\"\n  },\n  \"selector\": {\n    \"color\": \"#cc7832\"\n  },\n  \"important\": {\n    \"color\": \"#cc7832\"\n  },\n  \"atrule\": {\n    \"color\": \"#cc7832\"\n  },\n  \"operator\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"punctuation\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"attr-name\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"tag\": {\n    \"color\": \"#e8bf6a\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#e8bf6a\"\n  },\n  \"doctype\": {\n    \"color\": \"#e8bf6a\"\n  },\n  \"builtin\": {\n    \"color\": \"#e8bf6a\"\n  },\n  \"entity\": {\n    \"color\": \"#6897bb\"\n  },\n  \"number\": {\n    \"color\": \"#6897bb\"\n  },\n  \"symbol\": {\n    \"color\": \"#6897bb\"\n  },\n  \"property\": {\n    \"color\": \"#9876aa\"\n  },\n  \"constant\": {\n    \"color\": \"#9876aa\"\n  },\n  \"variable\": {\n    \"color\": \"#9876aa\"\n  },\n  \"string\": {\n    \"color\": \"#6a8759\"\n  },\n  \"char\": {\n    \"color\": \"#6a8759\"\n  },\n  \"attr-value\": {\n    \"color\": \"#a5c261\"\n  },\n  \"attr-value.punctuation\": {\n    \"color\": \"#a5c261\"\n  },\n  \"attr-value.punctuation:first-child\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"url\": {\n    \"color\": \"#287bde\",\n    \"textDecoration\": \"underline\"\n  },\n  \"function\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"regex\": {\n    \"background\": \"#364135\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"background\": \"#294436\"\n  },\n  \"deleted\": {\n    \"background\": \"#484a4a\"\n  },\n  \"code.language-css .token.property\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"code.language-css .token.property + .token.punctuation\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"code.language-css .token.id\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.class\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.attribute\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.pseudo-class\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.pseudo-element\": {\n    \"color\": \"#ffc66d\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"#282a36\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#282a36\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#6272a4\"\n  },\n  \"prolog\": {\n    \"color\": \"#6272a4\"\n  },\n  \"doctype\": {\n    \"color\": \"#6272a4\"\n  },\n  \"cdata\": {\n    \"color\": \"#6272a4\"\n  },\n  \"punctuation\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#ff79c6\"\n  },\n  \"tag\": {\n    \"color\": \"#ff79c6\"\n  },\n  \"constant\": {\n    \"color\": \"#ff79c6\"\n  },\n  \"symbol\": {\n    \"color\": \"#ff79c6\"\n  },\n  \"deleted\": {\n    \"color\": \"#ff79c6\"\n  },\n  \"boolean\": {\n    \"color\": \"#bd93f9\"\n  },\n  \"number\": {\n    \"color\": \"#bd93f9\"\n  },\n  \"selector\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"attr-name\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"string\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"char\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"builtin\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"inserted\": {\n    \"color\": \"#50fa7b\"\n  },\n  \"operator\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"entity\": {\n    \"color\": \"#f8f8f2\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"variable\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"atrule\": {\n    \"color\": \"#f1fa8c\"\n  },\n  \"attr-value\": {\n    \"color\": \"#f1fa8c\"\n  },\n  \"function\": {\n    \"color\": \"#f1fa8c\"\n  },\n  \"class-name\": {\n    \"color\": \"#f1fa8c\"\n  },\n  \"keyword\": {\n    \"color\": \"#8be9fd\"\n  },\n  \"regex\": {\n    \"color\": \"#ffb86c\"\n  },\n  \"important\": {\n    \"color\": \"#ffb86c\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#2a2734\",\n    \"color\": \"#9a86fd\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#2a2734\",\n    \"color\": \"#9a86fd\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6a51e6\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#6c6783\"\n  },\n  \"prolog\": {\n    \"color\": \"#6c6783\"\n  },\n  \"doctype\": {\n    \"color\": \"#6c6783\"\n  },\n  \"cdata\": {\n    \"color\": \"#6c6783\"\n  },\n  \"punctuation\": {\n    \"color\": \"#6c6783\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#e09142\"\n  },\n  \"operator\": {\n    \"color\": \"#e09142\"\n  },\n  \"number\": {\n    \"color\": \"#e09142\"\n  },\n  \"property\": {\n    \"color\": \"#9a86fd\"\n  },\n  \"function\": {\n    \"color\": \"#9a86fd\"\n  },\n  \"tag-id\": {\n    \"color\": \"#eeebff\"\n  },\n  \"selector\": {\n    \"color\": \"#eeebff\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#eeebff\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#c4b9fe\"\n  },\n  \"attr-name\": {\n    \"color\": \"#c4b9fe\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"boolean\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"string\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"entity\": {\n    \"color\": \"#ffcc99\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#ffcc99\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#ffcc99\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#ffcc99\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"attr-value\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"keyword\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"control\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"directive\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"unit\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"statement\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"regex\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"atrule\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"placeholder\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"variable\": {\n    \"color\": \"#ffcc99\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #eeebff\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#c4b9fe\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #8a75f5\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#2c2937\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#3c3949\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(224, 145, 66, 0.2) 70%, rgba(224, 145, 66, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#322d29\",\n    \"color\": \"#88786d\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#322d29\",\n    \"color\": \"#88786d\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#6f5849\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#6a5f58\"\n  },\n  \"prolog\": {\n    \"color\": \"#6a5f58\"\n  },\n  \"doctype\": {\n    \"color\": \"#6a5f58\"\n  },\n  \"cdata\": {\n    \"color\": \"#6a5f58\"\n  },\n  \"punctuation\": {\n    \"color\": \"#6a5f58\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#bfa05a\"\n  },\n  \"operator\": {\n    \"color\": \"#bfa05a\"\n  },\n  \"number\": {\n    \"color\": \"#bfa05a\"\n  },\n  \"property\": {\n    \"color\": \"#88786d\"\n  },\n  \"function\": {\n    \"color\": \"#88786d\"\n  },\n  \"tag-id\": {\n    \"color\": \"#fff3eb\"\n  },\n  \"selector\": {\n    \"color\": \"#fff3eb\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#fff3eb\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#a48774\"\n  },\n  \"attr-name\": {\n    \"color\": \"#a48774\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#fcc440\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#fcc440\"\n  },\n  \"boolean\": {\n    \"color\": \"#fcc440\"\n  },\n  \"string\": {\n    \"color\": \"#fcc440\"\n  },\n  \"entity\": {\n    \"color\": \"#fcc440\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#fcc440\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#fcc440\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#fcc440\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#fcc440\"\n  },\n  \"attr-value\": {\n    \"color\": \"#fcc440\"\n  },\n  \"keyword\": {\n    \"color\": \"#fcc440\"\n  },\n  \"control\": {\n    \"color\": \"#fcc440\"\n  },\n  \"directive\": {\n    \"color\": \"#fcc440\"\n  },\n  \"unit\": {\n    \"color\": \"#fcc440\"\n  },\n  \"statement\": {\n    \"color\": \"#fcc440\"\n  },\n  \"regex\": {\n    \"color\": \"#fcc440\"\n  },\n  \"atrule\": {\n    \"color\": \"#fcc440\"\n  },\n  \"placeholder\": {\n    \"color\": \"#fcc440\"\n  },\n  \"variable\": {\n    \"color\": \"#fcc440\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #fff3eb\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#a48774\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #816d5f\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#35302b\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#46403d\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(191, 160, 90, 0.2) 70%, rgba(191, 160, 90, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#2a2d2a\",\n    \"color\": \"#687d68\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#2a2d2a\",\n    \"color\": \"#687d68\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#435643\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#535f53\"\n  },\n  \"prolog\": {\n    \"color\": \"#535f53\"\n  },\n  \"doctype\": {\n    \"color\": \"#535f53\"\n  },\n  \"cdata\": {\n    \"color\": \"#535f53\"\n  },\n  \"punctuation\": {\n    \"color\": \"#535f53\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#a2b34d\"\n  },\n  \"operator\": {\n    \"color\": \"#a2b34d\"\n  },\n  \"number\": {\n    \"color\": \"#a2b34d\"\n  },\n  \"property\": {\n    \"color\": \"#687d68\"\n  },\n  \"function\": {\n    \"color\": \"#687d68\"\n  },\n  \"tag-id\": {\n    \"color\": \"#f0fff0\"\n  },\n  \"selector\": {\n    \"color\": \"#f0fff0\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#f0fff0\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#b3d6b3\"\n  },\n  \"attr-name\": {\n    \"color\": \"#b3d6b3\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"boolean\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"string\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"entity\": {\n    \"color\": \"#e5fb79\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#e5fb79\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#e5fb79\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#e5fb79\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"attr-value\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"keyword\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"control\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"directive\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"unit\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"statement\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"regex\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"atrule\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"placeholder\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"variable\": {\n    \"color\": \"#e5fb79\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #f0fff0\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#b3d6b3\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #5c705c\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#2c302c\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#3b423b\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(162, 179, 77, 0.2) 70%, rgba(162, 179, 77, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#faf8f5\",\n    \"color\": \"#728fcb\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#faf8f5\",\n    \"color\": \"#728fcb\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#faf8f5\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#b6ad9a\"\n  },\n  \"prolog\": {\n    \"color\": \"#b6ad9a\"\n  },\n  \"doctype\": {\n    \"color\": \"#b6ad9a\"\n  },\n  \"cdata\": {\n    \"color\": \"#b6ad9a\"\n  },\n  \"punctuation\": {\n    \"color\": \"#b6ad9a\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#063289\"\n  },\n  \"operator\": {\n    \"color\": \"#063289\"\n  },\n  \"number\": {\n    \"color\": \"#063289\"\n  },\n  \"property\": {\n    \"color\": \"#b29762\"\n  },\n  \"function\": {\n    \"color\": \"#b29762\"\n  },\n  \"tag-id\": {\n    \"color\": \"#2d2006\"\n  },\n  \"selector\": {\n    \"color\": \"#2d2006\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#2d2006\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#896724\"\n  },\n  \"attr-name\": {\n    \"color\": \"#896724\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#728fcb\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#728fcb\"\n  },\n  \"boolean\": {\n    \"color\": \"#728fcb\"\n  },\n  \"string\": {\n    \"color\": \"#728fcb\"\n  },\n  \"entity\": {\n    \"color\": \"#728fcb\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#728fcb\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#728fcb\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#728fcb\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#728fcb\"\n  },\n  \"attr-value\": {\n    \"color\": \"#728fcb\"\n  },\n  \"keyword\": {\n    \"color\": \"#728fcb\"\n  },\n  \"control\": {\n    \"color\": \"#728fcb\"\n  },\n  \"directive\": {\n    \"color\": \"#728fcb\"\n  },\n  \"unit\": {\n    \"color\": \"#728fcb\"\n  },\n  \"statement\": {\n    \"color\": \"#728fcb\"\n  },\n  \"regex\": {\n    \"color\": \"#728fcb\"\n  },\n  \"atrule\": {\n    \"color\": \"#728fcb\"\n  },\n  \"placeholder\": {\n    \"color\": \"#93abdc\"\n  },\n  \"variable\": {\n    \"color\": \"#93abdc\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #2d2006\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#896724\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #896724\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#ece8de\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#cdc4b1\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(45, 32, 6, 0.2) 70%, rgba(45, 32, 6, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#1d262f\",\n    \"color\": \"#57718e\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#1d262f\",\n    \"color\": \"#57718e\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#004a9e\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#4a5f78\"\n  },\n  \"prolog\": {\n    \"color\": \"#4a5f78\"\n  },\n  \"doctype\": {\n    \"color\": \"#4a5f78\"\n  },\n  \"cdata\": {\n    \"color\": \"#4a5f78\"\n  },\n  \"punctuation\": {\n    \"color\": \"#4a5f78\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#0aa370\"\n  },\n  \"operator\": {\n    \"color\": \"#0aa370\"\n  },\n  \"number\": {\n    \"color\": \"#0aa370\"\n  },\n  \"property\": {\n    \"color\": \"#57718e\"\n  },\n  \"function\": {\n    \"color\": \"#57718e\"\n  },\n  \"tag-id\": {\n    \"color\": \"#ebf4ff\"\n  },\n  \"selector\": {\n    \"color\": \"#ebf4ff\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#ebf4ff\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#7eb6f6\"\n  },\n  \"attr-name\": {\n    \"color\": \"#7eb6f6\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"boolean\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"string\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"entity\": {\n    \"color\": \"#47ebb4\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#47ebb4\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#47ebb4\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#47ebb4\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"attr-value\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"keyword\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"control\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"directive\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"unit\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"statement\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"regex\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"atrule\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"placeholder\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"variable\": {\n    \"color\": \"#47ebb4\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #ebf4ff\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#7eb6f6\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #34659d\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#1f2932\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#2c3847\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(10, 163, 112, 0.2) 70%, rgba(10, 163, 112, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#24242e\",\n    \"color\": \"#767693\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"Consolas, Menlo, Monaco, \\\"Andale Mono WT\\\", \\\"Andale Mono\\\", \\\"Lucida Console\\\", \\\"Lucida Sans Typewriter\\\", \\\"DejaVu Sans Mono\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Liberation Mono\\\", \\\"Nimbus Mono L\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"14px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"background\": \"#24242e\",\n    \"color\": \"#767693\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#5151e6\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#5b5b76\"\n  },\n  \"prolog\": {\n    \"color\": \"#5b5b76\"\n  },\n  \"doctype\": {\n    \"color\": \"#5b5b76\"\n  },\n  \"cdata\": {\n    \"color\": \"#5b5b76\"\n  },\n  \"punctuation\": {\n    \"color\": \"#5b5b76\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"tag\": {\n    \"color\": \"#dd672c\"\n  },\n  \"operator\": {\n    \"color\": \"#dd672c\"\n  },\n  \"number\": {\n    \"color\": \"#dd672c\"\n  },\n  \"property\": {\n    \"color\": \"#767693\"\n  },\n  \"function\": {\n    \"color\": \"#767693\"\n  },\n  \"tag-id\": {\n    \"color\": \"#ebebff\"\n  },\n  \"selector\": {\n    \"color\": \"#ebebff\"\n  },\n  \"atrule-id\": {\n    \"color\": \"#ebebff\"\n  },\n  \"code.language-javascript\": {\n    \"color\": \"#aaaaca\"\n  },\n  \"attr-name\": {\n    \"color\": \"#aaaaca\"\n  },\n  \"code.language-css\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"code.language-scss\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"boolean\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"string\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"entity\": {\n    \"color\": \"#fe8c52\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#fe8c52\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#fe8c52\"\n  },\n  \".language-scss .token.string\": {\n    \"color\": \"#fe8c52\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"attr-value\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"keyword\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"control\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"directive\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"unit\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"statement\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"regex\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"atrule\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"placeholder\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"variable\": {\n    \"color\": \"#fe8c52\"\n  },\n  \"deleted\": {\n    \"textDecoration\": \"line-through\"\n  },\n  \"inserted\": {\n    \"borderBottom\": \"1px dotted #ebebff\",\n    \"textDecoration\": \"none\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\",\n    \"color\": \"#aaaaca\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid #7676f4\",\n    \"OutlineOffset\": \".4em\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#262631\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#393949\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(221, 103, 44, 0.2) 70%, rgba(221, 103, 44, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#393A34\",\n    \"fontFamily\": \"\\\"Consolas\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"fontSize\": \".9em\",\n    \"lineHeight\": \"1.2em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#393A34\",\n    \"fontFamily\": \"\\\"Consolas\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"fontSize\": \".9em\",\n    \"lineHeight\": \"1.2em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"border\": \"1px solid #dddddd\",\n    \"backgroundColor\": \"white\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#b3d4fc\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".2em\",\n    \"paddingTop\": \"1px\",\n    \"paddingBottom\": \"1px\",\n    \"background\": \"#f8f8f8\",\n    \"border\": \"1px solid #dddddd\"\n  },\n  \"comment\": {\n    \"color\": \"#999988\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"#999988\",\n    \"fontStyle\": \"italic\"\n  },\n  \"doctype\": {\n    \"color\": \"#999988\",\n    \"fontStyle\": \"italic\"\n  },\n  \"cdata\": {\n    \"color\": \"#999988\",\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"string\": {\n    \"color\": \"#e3116c\"\n  },\n  \"attr-value\": {\n    \"color\": \"#e3116c\"\n  },\n  \"punctuation\": {\n    \"color\": \"#393A34\"\n  },\n  \"operator\": {\n    \"color\": \"#393A34\"\n  },\n  \"entity\": {\n    \"color\": \"#36acaa\"\n  },\n  \"url\": {\n    \"color\": \"#36acaa\"\n  },\n  \"symbol\": {\n    \"color\": \"#36acaa\"\n  },\n  \"number\": {\n    \"color\": \"#36acaa\"\n  },\n  \"boolean\": {\n    \"color\": \"#36acaa\"\n  },\n  \"variable\": {\n    \"color\": \"#36acaa\"\n  },\n  \"constant\": {\n    \"color\": \"#36acaa\"\n  },\n  \"property\": {\n    \"color\": \"#36acaa\"\n  },\n  \"regex\": {\n    \"color\": \"#36acaa\"\n  },\n  \"inserted\": {\n    \"color\": \"#36acaa\"\n  },\n  \"atrule\": {\n    \"color\": \"#00a4db\"\n  },\n  \"keyword\": {\n    \"color\": \"#00a4db\"\n  },\n  \"attr-name\": {\n    \"color\": \"#00a4db\"\n  },\n  \".language-autohotkey .token.selector\": {\n    \"color\": \"#00a4db\"\n  },\n  \"function\": {\n    \"color\": \"#9a050f\",\n    \"fontWeight\": \"bold\"\n  },\n  \"deleted\": {\n    \"color\": \"#9a050f\"\n  },\n  \".language-autohotkey .token.tag\": {\n    \"color\": \"#9a050f\"\n  },\n  \"tag\": {\n    \"color\": \"#00009f\"\n  },\n  \"selector\": {\n    \"color\": \"#00009f\"\n  },\n  \".language-autohotkey .token.keyword\": {\n    \"color\": \"#00009f\"\n  },\n  \"important\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#ebdbb2\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#ebdbb2\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#1d2021\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"#fbf1c7\",\n    \"background\": \"#7c6f64\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#1d2021\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"comment\": {\n    \"color\": \"#a89984\"\n  },\n  \"prolog\": {\n    \"color\": \"#a89984\"\n  },\n  \"cdata\": {\n    \"color\": \"#a89984\"\n  },\n  \"delimiter\": {\n    \"color\": \"#fb4934\"\n  },\n  \"boolean\": {\n    \"color\": \"#fb4934\"\n  },\n  \"keyword\": {\n    \"color\": \"#fb4934\"\n  },\n  \"selector\": {\n    \"color\": \"#fb4934\"\n  },\n  \"important\": {\n    \"color\": \"#fb4934\"\n  },\n  \"atrule\": {\n    \"color\": \"#fb4934\"\n  },\n  \"operator\": {\n    \"color\": \"#a89984\"\n  },\n  \"punctuation\": {\n    \"color\": \"#a89984\"\n  },\n  \"attr-name\": {\n    \"color\": \"#a89984\"\n  },\n  \"tag\": {\n    \"color\": \"#fabd2f\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#fabd2f\"\n  },\n  \"doctype\": {\n    \"color\": \"#fabd2f\"\n  },\n  \"builtin\": {\n    \"color\": \"#fabd2f\"\n  },\n  \"entity\": {\n    \"color\": \"#d3869b\"\n  },\n  \"number\": {\n    \"color\": \"#d3869b\"\n  },\n  \"symbol\": {\n    \"color\": \"#d3869b\"\n  },\n  \"property\": {\n    \"color\": \"#fb4934\"\n  },\n  \"constant\": {\n    \"color\": \"#fb4934\"\n  },\n  \"variable\": {\n    \"color\": \"#fb4934\"\n  },\n  \"string\": {\n    \"color\": \"#b8bb26\"\n  },\n  \"char\": {\n    \"color\": \"#b8bb26\"\n  },\n  \"attr-value\": {\n    \"color\": \"#a89984\"\n  },\n  \"attr-value.punctuation\": {\n    \"color\": \"#a89984\"\n  },\n  \"url\": {\n    \"color\": \"#b8bb26\",\n    \"textDecoration\": \"underline\"\n  },\n  \"function\": {\n    \"color\": \"#fabd2f\"\n  },\n  \"regex\": {\n    \"background\": \"#b8bb26\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"background\": \"#a89984\"\n  },\n  \"deleted\": {\n    \"background\": \"#fb4934\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#3c3836\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#3c3836\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#f9f5d7\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"color\": \"#282828\",\n    \"background\": \"#a89984\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#f9f5d7\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"comment\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"prolog\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"cdata\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"delimiter\": {\n    \"color\": \"#9d0006\"\n  },\n  \"boolean\": {\n    \"color\": \"#9d0006\"\n  },\n  \"keyword\": {\n    \"color\": \"#9d0006\"\n  },\n  \"selector\": {\n    \"color\": \"#9d0006\"\n  },\n  \"important\": {\n    \"color\": \"#9d0006\"\n  },\n  \"atrule\": {\n    \"color\": \"#9d0006\"\n  },\n  \"operator\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"punctuation\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"attr-name\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"tag\": {\n    \"color\": \"#b57614\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#b57614\"\n  },\n  \"doctype\": {\n    \"color\": \"#b57614\"\n  },\n  \"builtin\": {\n    \"color\": \"#b57614\"\n  },\n  \"entity\": {\n    \"color\": \"#8f3f71\"\n  },\n  \"number\": {\n    \"color\": \"#8f3f71\"\n  },\n  \"symbol\": {\n    \"color\": \"#8f3f71\"\n  },\n  \"property\": {\n    \"color\": \"#9d0006\"\n  },\n  \"constant\": {\n    \"color\": \"#9d0006\"\n  },\n  \"variable\": {\n    \"color\": \"#9d0006\"\n  },\n  \"string\": {\n    \"color\": \"#797403\"\n  },\n  \"char\": {\n    \"color\": \"#797403\"\n  },\n  \"attr-value\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"attr-value.punctuation\": {\n    \"color\": \"#7c6f64\"\n  },\n  \"url\": {\n    \"color\": \"#797403\",\n    \"textDecoration\": \"underline\"\n  },\n  \"function\": {\n    \"color\": \"#b57614\"\n  },\n  \"regex\": {\n    \"background\": \"#797403\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"background\": \"#7c6f64\"\n  },\n  \"deleted\": {\n    \"background\": \"#9d0006\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*='language-']\": {\n    \"color\": \"#d6e7ff\",\n    \"background\": \"#030314\",\n    \"textShadow\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5\",\n    \"letterSpacing\": \".2px\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"textAlign\": \"left\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*='language-']\": {\n    \"color\": \"#d6e7ff\",\n    \"background\": \"#030314\",\n    \"textShadow\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5\",\n    \"letterSpacing\": \".2px\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"textAlign\": \"left\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"border\": \"1px solid #2a4555\",\n    \"borderRadius\": \"5px\",\n    \"padding\": \"1.5em 1em\",\n    \"margin\": \"1em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*='language-']::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*='language-'] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*='language-']::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*='language-'] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*='language-']::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*='language-'] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*='language-']::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*='language-'] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#1d3b54\",\n    \"textShadow\": \"none\"\n  },\n  \":not(pre) > code[class*='language-']\": {\n    \"color\": \"#f0f6f6\",\n    \"background\": \"#2a4555\",\n    \"padding\": \"0.2em 0.3em\",\n    \"borderRadius\": \"0.2em\",\n    \"boxDecorationBreak\": \"clone\"\n  },\n  \"comment\": {\n    \"color\": \"#446e69\"\n  },\n  \"prolog\": {\n    \"color\": \"#446e69\"\n  },\n  \"doctype\": {\n    \"color\": \"#446e69\"\n  },\n  \"cdata\": {\n    \"color\": \"#446e69\"\n  },\n  \"punctuation\": {\n    \"color\": \"#d6b007\"\n  },\n  \"property\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"tag\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"boolean\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"number\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"constant\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"symbol\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"deleted\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"selector\": {\n    \"color\": \"#e60067\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e60067\"\n  },\n  \"builtin\": {\n    \"color\": \"#e60067\"\n  },\n  \"inserted\": {\n    \"color\": \"#e60067\"\n  },\n  \"string\": {\n    \"color\": \"#49c6ec\"\n  },\n  \"char\": {\n    \"color\": \"#49c6ec\"\n  },\n  \"operator\": {\n    \"color\": \"#ec8e01\",\n    \"background\": \"transparent\"\n  },\n  \"entity\": {\n    \"color\": \"#ec8e01\",\n    \"background\": \"transparent\"\n  },\n  \"url\": {\n    \"color\": \"#ec8e01\",\n    \"background\": \"transparent\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#ec8e01\",\n    \"background\": \"transparent\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#ec8e01\",\n    \"background\": \"transparent\"\n  },\n  \"atrule\": {\n    \"color\": \"#0fe468\"\n  },\n  \"attr-value\": {\n    \"color\": \"#0fe468\"\n  },\n  \"keyword\": {\n    \"color\": \"#0fe468\"\n  },\n  \"function\": {\n    \"color\": \"#78f3e9\"\n  },\n  \"class-name\": {\n    \"color\": \"#78f3e9\"\n  },\n  \"regex\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"important\": {\n    \"color\": \"#d6e7ff\"\n  },\n  \"variable\": {\n    \"color\": \"#d6e7ff\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"\\\"Fira Mono\\\", Menlo, Monaco, \\\"Lucida Console\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"16px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"wordSpacing\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordBreak\": \"break-all\",\n    \"wordWrap\": \"break-word\",\n    \"background\": \"#322931\",\n    \"color\": \"#b9b5b8\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"fontFamily\": \"\\\"Fira Mono\\\", Menlo, Monaco, \\\"Lucida Console\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"fontSize\": \"16px\",\n    \"lineHeight\": \"1.375\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"wordSpacing\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordBreak\": \"break-all\",\n    \"wordWrap\": \"break-word\",\n    \"background\": \"#322931\",\n    \"color\": \"#b9b5b8\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#797379\"\n  },\n  \"prolog\": {\n    \"color\": \"#797379\"\n  },\n  \"doctype\": {\n    \"color\": \"#797379\"\n  },\n  \"cdata\": {\n    \"color\": \"#797379\"\n  },\n  \"punctuation\": {\n    \"color\": \"#b9b5b8\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"null\": {\n    \"color\": \"#fd8b19\"\n  },\n  \"operator\": {\n    \"color\": \"#fd8b19\"\n  },\n  \"boolean\": {\n    \"color\": \"#fd8b19\"\n  },\n  \"number\": {\n    \"color\": \"#fd8b19\"\n  },\n  \"property\": {\n    \"color\": \"#fdcc59\"\n  },\n  \"tag\": {\n    \"color\": \"#1290bf\"\n  },\n  \"string\": {\n    \"color\": \"#149b93\"\n  },\n  \"selector\": {\n    \"color\": \"#c85e7c\"\n  },\n  \"attr-name\": {\n    \"color\": \"#fd8b19\"\n  },\n  \"entity\": {\n    \"color\": \"#149b93\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#149b93\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#149b93\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#149b93\"\n  },\n  \"attr-value\": {\n    \"color\": \"#8fc13e\"\n  },\n  \"keyword\": {\n    \"color\": \"#8fc13e\"\n  },\n  \"control\": {\n    \"color\": \"#8fc13e\"\n  },\n  \"directive\": {\n    \"color\": \"#8fc13e\"\n  },\n  \"unit\": {\n    \"color\": \"#8fc13e\"\n  },\n  \"statement\": {\n    \"color\": \"#149b93\"\n  },\n  \"regex\": {\n    \"color\": \"#149b93\"\n  },\n  \"atrule\": {\n    \"color\": \"#149b93\"\n  },\n  \"placeholder\": {\n    \"color\": \"#1290bf\"\n  },\n  \"variable\": {\n    \"color\": \"#1290bf\"\n  },\n  \"important\": {\n    \"color\": \"#dd464c\",\n    \"fontWeight\": \"bold\"\n  },\n  \"pre > code.highlight\": {\n    \"Outline\": \".4em solid red\",\n    \"OutlineOffset\": \".4em\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Monaco, Consolas, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"#263E52\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Monaco, Consolas, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#263E52\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#5c98cd\"\n  },\n  \"prolog\": {\n    \"color\": \"#5c98cd\"\n  },\n  \"doctype\": {\n    \"color\": \"#5c98cd\"\n  },\n  \"cdata\": {\n    \"color\": \"#5c98cd\"\n  },\n  \"punctuation\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"tag\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"constant\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"symbol\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"deleted\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"boolean\": {\n    \"color\": \"#BC94F9\"\n  },\n  \"number\": {\n    \"color\": \"#BC94F9\"\n  },\n  \"selector\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"attr-name\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"string\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"char\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"builtin\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"inserted\": {\n    \"color\": \"#FCFCD6\"\n  },\n  \"operator\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"entity\": {\n    \"color\": \"#f8f8f2\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"variable\": {\n    \"color\": \"#f8f8f2\"\n  },\n  \"atrule\": {\n    \"color\": \"#66D8EF\"\n  },\n  \"attr-value\": {\n    \"color\": \"#66D8EF\"\n  },\n  \"function\": {\n    \"color\": \"#66D8EF\"\n  },\n  \"class-name\": {\n    \"color\": \"#66D8EF\"\n  },\n  \"keyword\": {\n    \"color\": \"#6EB26E\"\n  },\n  \"regex\": {\n    \"color\": \"#F05E5D\"\n  },\n  \"important\": {\n    \"color\": \"#F05E5D\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#eee\",\n    \"background\": \"#2f2f2f\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#eee\",\n    \"background\": \"#2f2f2f\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"overflow\": \"auto\",\n    \"position\": \"relative\",\n    \"margin\": \"0.5em 0\",\n    \"padding\": \"1.25em 1em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#363636\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"whiteSpace\": \"normal\",\n    \"borderRadius\": \"0.2em\",\n    \"padding\": \"0.1em\"\n  },\n  \".language-css > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \".language-sass > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \".language-scss > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \"[class*=\\\"language-\\\"] .namespace\": {\n    \"Opacity\": \"0.7\"\n  },\n  \"atrule\": {\n    \"color\": \"#c792ea\"\n  },\n  \"attr-name\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"attr-value\": {\n    \"color\": \"#a5e844\"\n  },\n  \"attribute\": {\n    \"color\": \"#a5e844\"\n  },\n  \"boolean\": {\n    \"color\": \"#c792ea\"\n  },\n  \"builtin\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"cdata\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"char\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"class\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"class-name\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"comment\": {\n    \"color\": \"#616161\"\n  },\n  \"constant\": {\n    \"color\": \"#c792ea\"\n  },\n  \"deleted\": {\n    \"color\": \"#ff6666\"\n  },\n  \"doctype\": {\n    \"color\": \"#616161\"\n  },\n  \"entity\": {\n    \"color\": \"#ff6666\"\n  },\n  \"function\": {\n    \"color\": \"#c792ea\"\n  },\n  \"hexcode\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"id\": {\n    \"color\": \"#c792ea\",\n    \"fontWeight\": \"bold\"\n  },\n  \"important\": {\n    \"color\": \"#c792ea\",\n    \"fontWeight\": \"bold\"\n  },\n  \"inserted\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"keyword\": {\n    \"color\": \"#c792ea\"\n  },\n  \"number\": {\n    \"color\": \"#fd9170\"\n  },\n  \"operator\": {\n    \"color\": \"#89ddff\"\n  },\n  \"prolog\": {\n    \"color\": \"#616161\"\n  },\n  \"property\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#a5e844\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#a5e844\"\n  },\n  \"punctuation\": {\n    \"color\": \"#89ddff\"\n  },\n  \"regex\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"selector\": {\n    \"color\": \"#ff6666\"\n  },\n  \"string\": {\n    \"color\": \"#a5e844\"\n  },\n  \"symbol\": {\n    \"color\": \"#c792ea\"\n  },\n  \"tag\": {\n    \"color\": \"#ff6666\"\n  },\n  \"unit\": {\n    \"color\": \"#fd9170\"\n  },\n  \"url\": {\n    \"color\": \"#ff6666\"\n  },\n  \"variable\": {\n    \"color\": \"#ff6666\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#90a4ae\",\n    \"background\": \"#fafafa\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#90a4ae\",\n    \"background\": \"#fafafa\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"overflow\": \"auto\",\n    \"position\": \"relative\",\n    \"margin\": \"0.5em 0\",\n    \"padding\": \"1.25em 1em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#cceae7\",\n    \"color\": \"#263238\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"whiteSpace\": \"normal\",\n    \"borderRadius\": \"0.2em\",\n    \"padding\": \"0.1em\"\n  },\n  \".language-css > code\": {\n    \"color\": \"#f76d47\"\n  },\n  \".language-sass > code\": {\n    \"color\": \"#f76d47\"\n  },\n  \".language-scss > code\": {\n    \"color\": \"#f76d47\"\n  },\n  \"[class*=\\\"language-\\\"] .namespace\": {\n    \"Opacity\": \"0.7\"\n  },\n  \"atrule\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"attr-name\": {\n    \"color\": \"#39adb5\"\n  },\n  \"attr-value\": {\n    \"color\": \"#f6a434\"\n  },\n  \"attribute\": {\n    \"color\": \"#f6a434\"\n  },\n  \"boolean\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"builtin\": {\n    \"color\": \"#39adb5\"\n  },\n  \"cdata\": {\n    \"color\": \"#39adb5\"\n  },\n  \"char\": {\n    \"color\": \"#39adb5\"\n  },\n  \"class\": {\n    \"color\": \"#39adb5\"\n  },\n  \"class-name\": {\n    \"color\": \"#6182b8\"\n  },\n  \"comment\": {\n    \"color\": \"#aabfc9\"\n  },\n  \"constant\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"deleted\": {\n    \"color\": \"#e53935\"\n  },\n  \"doctype\": {\n    \"color\": \"#aabfc9\"\n  },\n  \"entity\": {\n    \"color\": \"#e53935\"\n  },\n  \"function\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"hexcode\": {\n    \"color\": \"#f76d47\"\n  },\n  \"id\": {\n    \"color\": \"#7c4dff\",\n    \"fontWeight\": \"bold\"\n  },\n  \"important\": {\n    \"color\": \"#7c4dff\",\n    \"fontWeight\": \"bold\"\n  },\n  \"inserted\": {\n    \"color\": \"#39adb5\"\n  },\n  \"keyword\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"number\": {\n    \"color\": \"#f76d47\"\n  },\n  \"operator\": {\n    \"color\": \"#39adb5\"\n  },\n  \"prolog\": {\n    \"color\": \"#aabfc9\"\n  },\n  \"property\": {\n    \"color\": \"#39adb5\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#f6a434\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#f6a434\"\n  },\n  \"punctuation\": {\n    \"color\": \"#39adb5\"\n  },\n  \"regex\": {\n    \"color\": \"#6182b8\"\n  },\n  \"selector\": {\n    \"color\": \"#e53935\"\n  },\n  \"string\": {\n    \"color\": \"#f6a434\"\n  },\n  \"symbol\": {\n    \"color\": \"#7c4dff\"\n  },\n  \"tag\": {\n    \"color\": \"#e53935\"\n  },\n  \"unit\": {\n    \"color\": \"#f76d47\"\n  },\n  \"url\": {\n    \"color\": \"#e53935\"\n  },\n  \"variable\": {\n    \"color\": \"#e53935\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#c3cee3\",\n    \"background\": \"#263238\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"color\": \"#c3cee3\",\n    \"background\": \"#263238\",\n    \"fontFamily\": \"Roboto Mono, monospace\",\n    \"fontSize\": \"1em\",\n    \"lineHeight\": \"1.5em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"overflow\": \"auto\",\n    \"position\": \"relative\",\n    \"margin\": \"0.5em 0\",\n    \"padding\": \"1.25em 1em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#363636\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#363636\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"whiteSpace\": \"normal\",\n    \"borderRadius\": \"0.2em\",\n    \"padding\": \"0.1em\"\n  },\n  \".language-css > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \".language-sass > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \".language-scss > code\": {\n    \"color\": \"#fd9170\"\n  },\n  \"[class*=\\\"language-\\\"] .namespace\": {\n    \"Opacity\": \"0.7\"\n  },\n  \"atrule\": {\n    \"color\": \"#c792ea\"\n  },\n  \"attr-name\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"attr-value\": {\n    \"color\": \"#c3e88d\"\n  },\n  \"attribute\": {\n    \"color\": \"#c3e88d\"\n  },\n  \"boolean\": {\n    \"color\": \"#c792ea\"\n  },\n  \"builtin\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"cdata\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"char\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"class\": {\n    \"color\": \"#ffcb6b\"\n  },\n  \"class-name\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"color\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"comment\": {\n    \"color\": \"#546e7a\"\n  },\n  \"constant\": {\n    \"color\": \"#c792ea\"\n  },\n  \"deleted\": {\n    \"color\": \"#f07178\"\n  },\n  \"doctype\": {\n    \"color\": \"#546e7a\"\n  },\n  \"entity\": {\n    \"color\": \"#f07178\"\n  },\n  \"function\": {\n    \"color\": \"#c792ea\"\n  },\n  \"hexcode\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"id\": {\n    \"color\": \"#c792ea\",\n    \"fontWeight\": \"bold\"\n  },\n  \"important\": {\n    \"color\": \"#c792ea\",\n    \"fontWeight\": \"bold\"\n  },\n  \"inserted\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"keyword\": {\n    \"color\": \"#c792ea\",\n    \"fontStyle\": \"italic\"\n  },\n  \"number\": {\n    \"color\": \"#fd9170\"\n  },\n  \"operator\": {\n    \"color\": \"#89ddff\"\n  },\n  \"prolog\": {\n    \"color\": \"#546e7a\"\n  },\n  \"property\": {\n    \"color\": \"#80cbc4\"\n  },\n  \"pseudo-class\": {\n    \"color\": \"#c3e88d\"\n  },\n  \"pseudo-element\": {\n    \"color\": \"#c3e88d\"\n  },\n  \"punctuation\": {\n    \"color\": \"#89ddff\"\n  },\n  \"regex\": {\n    \"color\": \"#f2ff00\"\n  },\n  \"selector\": {\n    \"color\": \"#f07178\"\n  },\n  \"string\": {\n    \"color\": \"#c3e88d\"\n  },\n  \"symbol\": {\n    \"color\": \"#c792ea\"\n  },\n  \"tag\": {\n    \"color\": \"#f07178\"\n  },\n  \"unit\": {\n    \"color\": \"#f07178\"\n  },\n  \"url\": {\n    \"color\": \"#fd9170\"\n  },\n  \"variable\": {\n    \"color\": \"#f07178\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#d6deeb\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"fontSize\": \"1em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"fontSize\": \"1em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#011627\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"#011627\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"cdata\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"punctuation\": {\n    \"color\": \"rgb(199, 146, 234)\"\n  },\n  \".namespace\": {\n    \"color\": \"rgb(178, 204, 214)\"\n  },\n  \"deleted\": {\n    \"color\": \"rgba(239, 83, 80, 0.56)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"symbol\": {\n    \"color\": \"rgb(128, 203, 196)\"\n  },\n  \"property\": {\n    \"color\": \"rgb(128, 203, 196)\"\n  },\n  \"tag\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"operator\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"keyword\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"boolean\": {\n    \"color\": \"rgb(255, 88, 116)\"\n  },\n  \"number\": {\n    \"color\": \"rgb(247, 140, 108)\"\n  },\n  \"constant\": {\n    \"color\": \"rgb(130, 170, 255)\"\n  },\n  \"function\": {\n    \"color\": \"rgb(130, 170, 255)\"\n  },\n  \"builtin\": {\n    \"color\": \"rgb(130, 170, 255)\"\n  },\n  \"char\": {\n    \"color\": \"rgb(130, 170, 255)\"\n  },\n  \"selector\": {\n    \"color\": \"rgb(199, 146, 234)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"doctype\": {\n    \"color\": \"rgb(199, 146, 234)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"attr-name\": {\n    \"color\": \"rgb(173, 219, 103)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"color\": \"rgb(173, 219, 103)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"url\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"entity\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"class-name\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"atrule\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"attr-value\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"regex\": {\n    \"color\": \"rgb(214, 222, 235)\"\n  },\n  \"important\": {\n    \"color\": \"rgb(214, 222, 235)\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"rgb(214, 222, 235)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"none\",\n    \"fontFamily\": \"\\\"Fira Code\\\", Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f8f8f2\",\n    \"background\": \"#2E3440\",\n    \"fontFamily\": \"\\\"Fira Code\\\", Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#2E3440\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#636f88\"\n  },\n  \"prolog\": {\n    \"color\": \"#636f88\"\n  },\n  \"doctype\": {\n    \"color\": \"#636f88\"\n  },\n  \"cdata\": {\n    \"color\": \"#636f88\"\n  },\n  \"punctuation\": {\n    \"color\": \"#81A1C1\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"tag\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"constant\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"symbol\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"deleted\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"number\": {\n    \"color\": \"#B48EAD\"\n  },\n  \"boolean\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"selector\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"attr-name\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"string\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"char\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"builtin\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"inserted\": {\n    \"color\": \"#A3BE8C\"\n  },\n  \"operator\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"entity\": {\n    \"color\": \"#81A1C1\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#81A1C1\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#81A1C1\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"variable\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"atrule\": {\n    \"color\": \"#88C0D0\"\n  },\n  \"attr-value\": {\n    \"color\": \"#88C0D0\"\n  },\n  \"function\": {\n    \"color\": \"#88C0D0\"\n  },\n  \"class-name\": {\n    \"color\": \"#88C0D0\"\n  },\n  \"keyword\": {\n    \"color\": \"#81A1C1\"\n  },\n  \"regex\": {\n    \"color\": \"#EBCB8B\"\n  },\n  \"important\": {\n    \"color\": \"#EBCB8B\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(220, 13%, 18%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(220, 13%, 18%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \"0.2em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(220, 10%, 40%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(220, 10%, 40%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"punctuation\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"cursor\": \"help\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"class-name\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \"property\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"deleted\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"important\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"regex\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"attr-value > .token.punctuation\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"function\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \"attr-value > .token.punctuation.attr-equals\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"special-attr > .token.attr-value > .token.value.css\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-css .token.selector\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-css .token.property\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-css .token.function\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-css .token.url > .token.function\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-css .token.url > .token.string.url\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".language-css .token.important\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-css .token.atrule .token.rule\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-javascript .token.operator\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation\": {\n    \"color\": \"hsl(5, 48%, 51%)\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-json .token.null.keyword\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \".language-markdown .token.url\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url > .token.operator\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url-reference.url > .token.string\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url > .token.content\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".language-markdown .token.url > .token.url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-markdown .token.url-reference.url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.code-snippet\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".language-markdown .token.bold .token.content\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \".language-markdown .token.italic .token.content\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-markdown .token.strike .token.content\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.strike .token.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.title.important > .token.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \"0.8\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.space:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item\": {\n    \"marginRight\": \"0.4em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"hsla(220, 100%, 80%, 0.04)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"hsla(220, 100%, 80%, 0.04)\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"hsl(220, 14%, 45%)\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"hsl(220, 14%, 45%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \".prism-previewer.prism-previewer:before\": {\n    \"borderColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-gradient.prism-previewer-gradient div\": {\n    \"borderColor\": \"hsl(224, 13%, 17%)\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-color.prism-previewer-color:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer.prism-previewer:after\": {\n    \"borderTopColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-flipped.prism-previewer-flipped.after\": {\n    \"borderBottomColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle:before\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-time.prism-previewer-time:before\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-time.prism-previewer-time circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"fill\": \"transparent\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing path\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing line\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(230, 1%, 98%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(230, 1%, 98%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \"0.2em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(230, 4%, 64%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(230, 4%, 64%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"punctuation\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"cursor\": \"help\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"class-name\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \"property\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"deleted\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"important\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"regex\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"attr-value > .token.punctuation\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"function\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \"attr-value > .token.punctuation.attr-equals\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"special-attr > .token.attr-value > .token.value.css\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-css .token.selector\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-css .token.property\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-css .token.function\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-css .token.url > .token.function\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-css .token.url > .token.string.url\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".language-css .token.important\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-css .token.atrule .token.rule\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-javascript .token.operator\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation\": {\n    \"color\": \"hsl(344, 84%, 43%)\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-json .token.null.keyword\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \".language-markdown .token.url\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url > .token.operator\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url-reference.url > .token.string\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url > .token.content\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".language-markdown .token.url > .token.url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-markdown .token.url-reference.url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.code-snippet\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".language-markdown .token.bold .token.content\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \".language-markdown .token.italic .token.content\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-markdown .token.strike .token.content\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.strike .token.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.title.important > .token.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \"0.8\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.space:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item\": {\n    \"marginRight\": \"0.4em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"hsla(230, 8%, 24%, 0.05)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"hsla(230, 8%, 24%, 0.05)\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRightColor\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"hsl(230, 1%, 62%)\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"hsl(230, 1%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \".prism-previewer.prism-previewer:before\": {\n    \"borderColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-gradient.prism-previewer-gradient div\": {\n    \"borderColor\": \"hsl(0, 0, 95%)\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-color.prism-previewer-color:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer.prism-previewer:after\": {\n    \"borderTopColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-flipped.prism-previewer-flipped.after\": {\n    \"borderBottomColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle:before\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-time.prism-previewer-time:before\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-time.prism-previewer-time circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"fill\": \"transparent\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing path\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing line\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordBreak\": \"break-all\",\n    \"wordWrap\": \"break-word\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"fontSize\": \"15px\",\n    \"lineHeight\": \"1.5\",\n    \"color\": \"#dccf8f\",\n    \"textShadow\": \"0\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordBreak\": \"break-all\",\n    \"wordWrap\": \"break-word\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"fontSize\": \"15px\",\n    \"lineHeight\": \"1.5\",\n    \"color\": \"#DCCF8F\",\n    \"textShadow\": \"0\",\n    \"borderRadius\": \"5px\",\n    \"border\": \"1px solid #000\",\n    \"background\": \"#181914 url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAMAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQACQYGBgcGCQcHCQ0IBwgNDwsJCQsPEQ4ODw4OERENDg4ODg0RERQUFhQUERoaHBwaGiYmJiYmKysrKysrKysrKwEJCAgJCgkMCgoMDwwODA8TDg4ODhMVDg4PDg4VGhMRERERExoXGhYWFhoXHR0aGh0dJCQjJCQrKysrKysrKysr/8AAEQgAjACMAwEiAAIRAQMRAf/EAF4AAQEBAAAAAAAAAAAAAAAAAAABBwEBAQAAAAAAAAAAAAAAAAAAAAIQAAEDAwIHAQEAAAAAAAAAAADwAREhYaExkUFRcYGxwdHh8REBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AyGFEjHaBS2fDDs2zkhKmBKktb7km+ZwwCnXPkLVmCTMItj6AXFxRS465/BTnkAJvkLkJe+7AKKoi2AtRS2zuAWsCb5GOlBN8gKfmuGHZ8MFqIth3ALmFoFwbwKWyAlTAp17uKqBvgBD8sM4fTjhvAhkzhaRkBMKBrfs7jGPIpzy7gFrAqnC0C0gB0EWwBDW2cBVQwm+QtPpa3wBO3sVvszCnLAhkzgL5/RLf13cLQd8/AGlu0Cb5HTx9KuAEieGJEdcehS3eRTp2ATdt3CpIm+QtZwAhROXFeb7swp/ahaM3kBE/jSIUBc/AWrgBN8uNFAl+b7sAXFxFn2YLUU5Ns7gFX8C4ib+hN8gFWXwK3bZglxEJm+gKdciLPsFV/TClsgJUwKJ5FVA7tvIFrfZhVfGJDcsCKaYgAqv6YRbE+RWOWBtu7+AL3yRalXLyKqAIIfk+zARbDgFyEsncYwJvlgFRW+GEWntIi2P0BooyFxcNr8Ep3+ANLbMO+QyhvbiqdgC0kVvgUUiLYgBS2QtPbiVI1/sgOmG9uO+Y8DW+7jS2zAOnj6O2BndwuIAUtkdRN8gFoK3wwXMQyZwHVbClsuNLd4E3yAUR6FVDBR+BafQGt93LVMxJTv8ABts4CVLhcfYWsCb5kC9/BHdU8CLYFY5bMAd+eX9MGthhpbA1vu4B7+RKkaW2Yq4AQtVBBFsAJU/AuIXBhN8gGWnstefhiZyWvLAEnbYS1uzSFP6Jvn4Baxx70JKkQojLib5AVTey1jjgkKJGO0AKWyOm7N7cSpgSpAdPH0Tfd/gp1z5C1ZgKqN9J2wFxcUUuAFLZAm+QC0Fb4YUVRFsAOvj4KW2dwtYE3yAWk/wS/PLMKfmuGHZ8MAXF/Ja32Yi5haAKWz4Ydm2cSpgU693Atb7km+Zwwh+WGcPpxw3gAkzCLY+iYUDW/Z3Adc/gpzyFrAqnALkJe+7DoItgAtRS2zuKqGE3yAx0oJvkdvYrfZmALURbDuL5/RLf13cAuDeBS2RpbtAm+QFVA3wR+3fUtFHoBDJnC0jIXH0HWsgMY8inPLuOkd9chp4z20ALQLSA8cI9jYAIa2zjzjBd8gRafS1vgiUho/kAKcsCGTOGWvoOpkAtB3z8Hm8x2Ff5ADp4+lXAlIvcmwH/2Q==') repeat left top\",\n    \"padding\": \"12px\",\n    \"overflow\": \"auto\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"borderRadius\": \"5px\",\n    \"border\": \"1px solid #000\",\n    \"color\": \"#DCCF8F\",\n    \"background\": \"#181914 url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAMAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQACQYGBgcGCQcHCQ0IBwgNDwsJCQsPEQ4ODw4OERENDg4ODg0RERQUFhQUERoaHBwaGiYmJiYmKysrKysrKysrKwEJCAgJCgkMCgoMDwwODA8TDg4ODhMVDg4PDg4VGhMRERERExoXGhYWFhoXHR0aGh0dJCQjJCQrKysrKysrKysr/8AAEQgAjACMAwEiAAIRAQMRAf/EAF4AAQEBAAAAAAAAAAAAAAAAAAABBwEBAQAAAAAAAAAAAAAAAAAAAAIQAAEDAwIHAQEAAAAAAAAAAADwAREhYaExkUFRcYGxwdHh8REBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AyGFEjHaBS2fDDs2zkhKmBKktb7km+ZwwCnXPkLVmCTMItj6AXFxRS465/BTnkAJvkLkJe+7AKKoi2AtRS2zuAWsCb5GOlBN8gKfmuGHZ8MFqIth3ALmFoFwbwKWyAlTAp17uKqBvgBD8sM4fTjhvAhkzhaRkBMKBrfs7jGPIpzy7gFrAqnC0C0gB0EWwBDW2cBVQwm+QtPpa3wBO3sVvszCnLAhkzgL5/RLf13cLQd8/AGlu0Cb5HTx9KuAEieGJEdcehS3eRTp2ATdt3CpIm+QtZwAhROXFeb7swp/ahaM3kBE/jSIUBc/AWrgBN8uNFAl+b7sAXFxFn2YLUU5Ns7gFX8C4ib+hN8gFWXwK3bZglxEJm+gKdciLPsFV/TClsgJUwKJ5FVA7tvIFrfZhVfGJDcsCKaYgAqv6YRbE+RWOWBtu7+AL3yRalXLyKqAIIfk+zARbDgFyEsncYwJvlgFRW+GEWntIi2P0BooyFxcNr8Ep3+ANLbMO+QyhvbiqdgC0kVvgUUiLYgBS2QtPbiVI1/sgOmG9uO+Y8DW+7jS2zAOnj6O2BndwuIAUtkdRN8gFoK3wwXMQyZwHVbClsuNLd4E3yAUR6FVDBR+BafQGt93LVMxJTv8ABts4CVLhcfYWsCb5kC9/BHdU8CLYFY5bMAd+eX9MGthhpbA1vu4B7+RKkaW2Yq4AQtVBBFsAJU/AuIXBhN8gGWnstefhiZyWvLAEnbYS1uzSFP6Jvn4Baxx70JKkQojLib5AVTey1jjgkKJGO0AKWyOm7N7cSpgSpAdPH0Tfd/gp1z5C1ZgKqN9J2wFxcUUuAFLZAm+QC0Fb4YUVRFsAOvj4KW2dwtYE3yAWk/wS/PLMKfmuGHZ8MAXF/Ja32Yi5haAKWz4Ydm2cSpgU693Atb7km+Zwwh+WGcPpxw3gAkzCLY+iYUDW/Z3Adc/gpzyFrAqnALkJe+7DoItgAtRS2zuKqGE3yAx0oJvkdvYrfZmALURbDuL5/RLf13cAuDeBS2RpbtAm+QFVA3wR+3fUtFHoBDJnC0jIXH0HWsgMY8inPLuOkd9chp4z20ALQLSA8cI9jYAIa2zjzjBd8gRafS1vgiUho/kAKcsCGTOGWvoOpkAtB3z8Hm8x2Ff5ADp4+lXAlIvcmwH/2Q==') repeat left top\",\n    \"padding\": \"2px 6px\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"comment\": {\n    \"color\": \"#586e75\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"#586e75\",\n    \"fontStyle\": \"italic\"\n  },\n  \"doctype\": {\n    \"color\": \"#586e75\",\n    \"fontStyle\": \"italic\"\n  },\n  \"cdata\": {\n    \"color\": \"#586e75\",\n    \"fontStyle\": \"italic\"\n  },\n  \"number\": {\n    \"color\": \"#b89859\"\n  },\n  \"string\": {\n    \"color\": \"#468966\"\n  },\n  \"char\": {\n    \"color\": \"#468966\"\n  },\n  \"builtin\": {\n    \"color\": \"#468966\"\n  },\n  \"inserted\": {\n    \"color\": \"#468966\"\n  },\n  \"attr-name\": {\n    \"color\": \"#b89859\"\n  },\n  \"operator\": {\n    \"color\": \"#dccf8f\"\n  },\n  \"entity\": {\n    \"color\": \"#dccf8f\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#dccf8f\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#dccf8f\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#dccf8f\"\n  },\n  \"selector\": {\n    \"color\": \"#859900\"\n  },\n  \"regex\": {\n    \"color\": \"#859900\"\n  },\n  \"atrule\": {\n    \"color\": \"#cb4b16\"\n  },\n  \"keyword\": {\n    \"color\": \"#cb4b16\"\n  },\n  \"attr-value\": {\n    \"color\": \"#468966\"\n  },\n  \"function\": {\n    \"color\": \"#b58900\"\n  },\n  \"variable\": {\n    \"color\": \"#b58900\"\n  },\n  \"placeholder\": {\n    \"color\": \"#b58900\"\n  },\n  \"property\": {\n    \"color\": \"#b89859\"\n  },\n  \"tag\": {\n    \"color\": \"#ffb03b\"\n  },\n  \"boolean\": {\n    \"color\": \"#b89859\"\n  },\n  \"constant\": {\n    \"color\": \"#b89859\"\n  },\n  \"symbol\": {\n    \"color\": \"#b89859\"\n  },\n  \"important\": {\n    \"color\": \"#dc322f\"\n  },\n  \"statement\": {\n    \"color\": \"#dc322f\"\n  },\n  \"deleted\": {\n    \"color\": \"#dc322f\"\n  },\n  \"punctuation\": {\n    \"color\": \"#dccf8f\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*='language-']\": {\n    \"color\": \"#9efeff\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"fontFamily\": \"'Operator Mono', 'Fira Code', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontWeight\": \"400\",\n    \"fontSize\": \"17px\",\n    \"lineHeight\": \"25px\",\n    \"letterSpacing\": \"0.5px\",\n    \"textShadow\": \"0 1px #222245\"\n  },\n  \"pre[class*='language-']\": {\n    \"color\": \"#9efeff\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"fontFamily\": \"'Operator Mono', 'Fira Code', Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontWeight\": \"400\",\n    \"fontSize\": \"17px\",\n    \"lineHeight\": \"25px\",\n    \"letterSpacing\": \"0.5px\",\n    \"textShadow\": \"0 1px #222245\",\n    \"padding\": \"2em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#1e1e3f\"\n  },\n  \"pre[class*='language-']::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"pre[class*='language-'] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"code[class*='language-']::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"code[class*='language-'] ::-moz-selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"pre[class*='language-']::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"pre[class*='language-'] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"code[class*='language-']::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \"code[class*='language-'] ::selection\": {\n    \"color\": \"inherit\",\n    \"background\": \"#a599e9\"\n  },\n  \":not(pre) > code[class*='language-']\": {\n    \"background\": \"#1e1e3f\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"\": {\n    \"fontWeight\": \"400\"\n  },\n  \"comment\": {\n    \"color\": \"#b362ff\"\n  },\n  \"prolog\": {\n    \"color\": \"#b362ff\"\n  },\n  \"cdata\": {\n    \"color\": \"#b362ff\"\n  },\n  \"delimiter\": {\n    \"color\": \"#ff9d00\"\n  },\n  \"keyword\": {\n    \"color\": \"#ff9d00\"\n  },\n  \"selector\": {\n    \"color\": \"#ff9d00\"\n  },\n  \"important\": {\n    \"color\": \"#ff9d00\"\n  },\n  \"atrule\": {\n    \"color\": \"#ff9d00\"\n  },\n  \"operator\": {\n    \"color\": \"rgb(255, 180, 84)\",\n    \"background\": \"none\"\n  },\n  \"attr-name\": {\n    \"color\": \"rgb(255, 180, 84)\"\n  },\n  \"punctuation\": {\n    \"color\": \"#ffffff\"\n  },\n  \"boolean\": {\n    \"color\": \"rgb(255, 98, 140)\"\n  },\n  \"tag\": {\n    \"color\": \"rgb(255, 157, 0)\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"rgb(255, 157, 0)\"\n  },\n  \"doctype\": {\n    \"color\": \"rgb(255, 157, 0)\"\n  },\n  \"builtin\": {\n    \"color\": \"rgb(255, 157, 0)\"\n  },\n  \"entity\": {\n    \"color\": \"#6897bb\",\n    \"background\": \"none\"\n  },\n  \"symbol\": {\n    \"color\": \"#6897bb\"\n  },\n  \"number\": {\n    \"color\": \"#ff628c\"\n  },\n  \"property\": {\n    \"color\": \"#ff628c\"\n  },\n  \"constant\": {\n    \"color\": \"#ff628c\"\n  },\n  \"variable\": {\n    \"color\": \"#ff628c\"\n  },\n  \"string\": {\n    \"color\": \"#a5ff90\"\n  },\n  \"char\": {\n    \"color\": \"#a5ff90\"\n  },\n  \"attr-value\": {\n    \"color\": \"#a5c261\"\n  },\n  \"attr-value.punctuation\": {\n    \"color\": \"#a5c261\"\n  },\n  \"attr-value.punctuation:first-child\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"url\": {\n    \"color\": \"#287bde\",\n    \"textDecoration\": \"underline\",\n    \"background\": \"none\"\n  },\n  \"function\": {\n    \"color\": \"rgb(250, 208, 0)\"\n  },\n  \"regex\": {\n    \"background\": \"#364135\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"background\": \"#00ff00\"\n  },\n  \"deleted\": {\n    \"background\": \"#ff000d\"\n  },\n  \"code.language-css .token.property\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"code.language-css .token.property + .token.punctuation\": {\n    \"color\": \"#a9b7c6\"\n  },\n  \"code.language-css .token.id\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.class\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.attribute\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.pseudo-class\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"code.language-css .token.selector > .token.pseudo-element\": {\n    \"color\": \"#ffc66d\"\n  },\n  \"class-name\": {\n    \"color\": \"#fb94ff\"\n  },\n  \".language-css .token.string\": {\n    \"background\": \"none\"\n  },\n  \".style .token.string\": {\n    \"background\": \"none\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"marginTop\": \"36px\",\n    \"background\": \"linear-gradient(to right, rgba(179, 98, 255, 0.17), transparent)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"content\": \"''\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"content\": \"''\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#839496\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#839496\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"Inconsolata, Monaco, Consolas, 'Courier New', Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\",\n    \"background\": \"#002b36\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#002b36\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\"\n  },\n  \"comment\": {\n    \"color\": \"#586e75\"\n  },\n  \"prolog\": {\n    \"color\": \"#586e75\"\n  },\n  \"doctype\": {\n    \"color\": \"#586e75\"\n  },\n  \"cdata\": {\n    \"color\": \"#586e75\"\n  },\n  \"punctuation\": {\n    \"color\": \"#93a1a1\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#268bd2\"\n  },\n  \"keyword\": {\n    \"color\": \"#268bd2\"\n  },\n  \"tag\": {\n    \"color\": \"#268bd2\"\n  },\n  \"class-name\": {\n    \"color\": \"#FFFFB6\",\n    \"textDecoration\": \"underline\"\n  },\n  \"boolean\": {\n    \"color\": \"#b58900\"\n  },\n  \"constant\": {\n    \"color\": \"#b58900\"\n  },\n  \"symbol\": {\n    \"color\": \"#dc322f\"\n  },\n  \"deleted\": {\n    \"color\": \"#dc322f\"\n  },\n  \"number\": {\n    \"color\": \"#859900\"\n  },\n  \"selector\": {\n    \"color\": \"#859900\"\n  },\n  \"attr-name\": {\n    \"color\": \"#859900\"\n  },\n  \"string\": {\n    \"color\": \"#859900\"\n  },\n  \"char\": {\n    \"color\": \"#859900\"\n  },\n  \"builtin\": {\n    \"color\": \"#859900\"\n  },\n  \"inserted\": {\n    \"color\": \"#859900\"\n  },\n  \"variable\": {\n    \"color\": \"#268bd2\"\n  },\n  \"operator\": {\n    \"color\": \"#EDEDED\"\n  },\n  \"function\": {\n    \"color\": \"#268bd2\"\n  },\n  \"regex\": {\n    \"color\": \"#E9C062\"\n  },\n  \"important\": {\n    \"color\": \"#fd971f\",\n    \"fontWeight\": \"bold\"\n  },\n  \"entity\": {\n    \"color\": \"#FFFFB6\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#96CBFE\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#87C38A\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#87C38A\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"atrule\": {\n    \"color\": \"#F9EE98\"\n  },\n  \"attr-value\": {\n    \"color\": \"#F9EE98\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f92aad\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#f92aad\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\",\n    \"background\": \"none\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"backgroundColor\": \"transparent !important\",\n    \"backgroundImage\": \"linear-gradient(to bottom, #2a2139 75%, #34294f)\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"backgroundColor\": \"transparent !important\",\n    \"backgroundImage\": \"linear-gradient(to bottom, #2a2139 75%, #34294f)\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"#8e8e8e\"\n  },\n  \"block-comment\": {\n    \"color\": \"#8e8e8e\"\n  },\n  \"prolog\": {\n    \"color\": \"#8e8e8e\"\n  },\n  \"doctype\": {\n    \"color\": \"#8e8e8e\"\n  },\n  \"cdata\": {\n    \"color\": \"#8e8e8e\"\n  },\n  \"punctuation\": {\n    \"color\": \"#ccc\"\n  },\n  \"tag\": {\n    \"color\": \"#e2777a\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e2777a\"\n  },\n  \"namespace\": {\n    \"color\": \"#e2777a\"\n  },\n  \"number\": {\n    \"color\": \"#e2777a\"\n  },\n  \"unit\": {\n    \"color\": \"#e2777a\"\n  },\n  \"hexcode\": {\n    \"color\": \"#e2777a\"\n  },\n  \"deleted\": {\n    \"color\": \"#e2777a\"\n  },\n  \"property\": {\n    \"color\": \"#72f1b8\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n  },\n  \"selector\": {\n    \"color\": \"#72f1b8\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475\"\n  },\n  \"function-name\": {\n    \"color\": \"#6196cc\"\n  },\n  \"boolean\": {\n    \"color\": \"#fdfdfd\",\n    \"textShadow\": \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n  },\n  \"selector.id\": {\n    \"color\": \"#fdfdfd\",\n    \"textShadow\": \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n  },\n  \"function\": {\n    \"color\": \"#fdfdfd\",\n    \"textShadow\": \"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975\"\n  },\n  \"class-name\": {\n    \"color\": \"#fff5f6\",\n    \"textShadow\": \"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75\"\n  },\n  \"constant\": {\n    \"color\": \"#f92aad\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n  },\n  \"symbol\": {\n    \"color\": \"#f92aad\",\n    \"textShadow\": \"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3\"\n  },\n  \"important\": {\n    \"color\": \"#f4eee4\",\n    \"textShadow\": \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\",\n    \"fontWeight\": \"bold\"\n  },\n  \"atrule\": {\n    \"color\": \"#f4eee4\",\n    \"textShadow\": \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n  },\n  \"keyword\": {\n    \"color\": \"#f4eee4\",\n    \"textShadow\": \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n  },\n  \"selector.class\": {\n    \"color\": \"#f4eee4\",\n    \"textShadow\": \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n  },\n  \"builtin\": {\n    \"color\": \"#f4eee4\",\n    \"textShadow\": \"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575\"\n  },\n  \"string\": {\n    \"color\": \"#f87c32\"\n  },\n  \"char\": {\n    \"color\": \"#f87c32\"\n  },\n  \"attr-value\": {\n    \"color\": \"#f87c32\"\n  },\n  \"regex\": {\n    \"color\": \"#f87c32\"\n  },\n  \"variable\": {\n    \"color\": \"#f87c32\"\n  },\n  \"operator\": {\n    \"color\": \"#67cdcc\"\n  },\n  \"entity\": {\n    \"color\": \"#67cdcc\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#67cdcc\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"color\": \"green\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#393A34\",\n    \"fontFamily\": \"\\\"Consolas\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"fontSize\": \".9em\",\n    \"lineHeight\": \"1.2em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#393A34\",\n    \"fontFamily\": \"\\\"Consolas\\\", \\\"Bitstream Vera Sans Mono\\\", \\\"Courier New\\\", Courier, monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"fontSize\": \".9em\",\n    \"lineHeight\": \"1.2em\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"border\": \"1px solid #dddddd\",\n    \"backgroundColor\": \"white\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"background\": \"#C1DEF1\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".2em\",\n    \"paddingTop\": \"1px\",\n    \"paddingBottom\": \"1px\",\n    \"background\": \"#f8f8f8\",\n    \"border\": \"1px solid #dddddd\"\n  },\n  \"comment\": {\n    \"color\": \"#008000\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"#008000\",\n    \"fontStyle\": \"italic\"\n  },\n  \"doctype\": {\n    \"color\": \"#008000\",\n    \"fontStyle\": \"italic\"\n  },\n  \"cdata\": {\n    \"color\": \"#008000\",\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"string\": {\n    \"color\": \"#A31515\"\n  },\n  \"punctuation\": {\n    \"color\": \"#393A34\"\n  },\n  \"operator\": {\n    \"color\": \"#393A34\"\n  },\n  \"url\": {\n    \"color\": \"#36acaa\"\n  },\n  \"symbol\": {\n    \"color\": \"#36acaa\"\n  },\n  \"number\": {\n    \"color\": \"#36acaa\"\n  },\n  \"boolean\": {\n    \"color\": \"#36acaa\"\n  },\n  \"variable\": {\n    \"color\": \"#36acaa\"\n  },\n  \"constant\": {\n    \"color\": \"#36acaa\"\n  },\n  \"inserted\": {\n    \"color\": \"#36acaa\"\n  },\n  \"atrule\": {\n    \"color\": \"#0000ff\"\n  },\n  \"keyword\": {\n    \"color\": \"#0000ff\"\n  },\n  \"attr-value\": {\n    \"color\": \"#0000ff\"\n  },\n  \".language-autohotkey .token.selector\": {\n    \"color\": \"#0000ff\"\n  },\n  \".language-json .token.boolean\": {\n    \"color\": \"#0000ff\"\n  },\n  \".language-json .token.number\": {\n    \"color\": \"#0000ff\"\n  },\n  \"code[class*=\\\"language-css\\\"]\": {\n    \"color\": \"#0000ff\"\n  },\n  \"function\": {\n    \"color\": \"#393A34\"\n  },\n  \"deleted\": {\n    \"color\": \"#9a050f\"\n  },\n  \".language-autohotkey .token.tag\": {\n    \"color\": \"#9a050f\"\n  },\n  \"selector\": {\n    \"color\": \"#800000\"\n  },\n  \".language-autohotkey .token.keyword\": {\n    \"color\": \"#00009f\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"class-name\": {\n    \"color\": \"#2B91AF\"\n  },\n  \".language-json .token.property\": {\n    \"color\": \"#2B91AF\"\n  },\n  \"tag\": {\n    \"color\": \"#800000\"\n  },\n  \"attr-name\": {\n    \"color\": \"#ff0000\"\n  },\n  \"property\": {\n    \"color\": \"#ff0000\"\n  },\n  \"regex\": {\n    \"color\": \"#ff0000\"\n  },\n  \"entity\": {\n    \"color\": \"#ff0000\"\n  },\n  \"directive.tag.tag\": {\n    \"background\": \"#ffff00\",\n    \"color\": \"#393A34\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"#a5a5a5\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"#2B91AF\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"linear-gradient(to right, rgba(193, 222, 241, 0.2) 70%, rgba(221, 222, 241, 0))\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"#d4d4d4\",\n    \"fontSize\": \"13px\",\n    \"textShadow\": \"none\",\n    \"fontFamily\": \"Menlo, Monaco, Consolas, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", \\\"Courier New\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\",\n    \"background\": \"#1e1e1e\"\n  },\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#d4d4d4\",\n    \"fontSize\": \"13px\",\n    \"textShadow\": \"none\",\n    \"fontFamily\": \"Menlo, Monaco, Consolas, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", \\\"Courier New\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#264F78\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#264F78\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#264F78\"\n  },\n  \"code[class*=\\\"language-\\\"] *::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#264F78\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \".1em .3em\",\n    \"borderRadius\": \".3em\",\n    \"color\": \"#db4c69\",\n    \"background\": \"#1e1e1e\"\n  },\n  \".namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"doctype.doctype-tag\": {\n    \"color\": \"#569CD6\"\n  },\n  \"doctype.name\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"comment\": {\n    \"color\": \"#6a9955\"\n  },\n  \"prolog\": {\n    \"color\": \"#6a9955\"\n  },\n  \"punctuation\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \".language-html .language-css .token.punctuation\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \".language-html .language-javascript .token.punctuation\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \"property\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"tag\": {\n    \"color\": \"#569cd6\"\n  },\n  \"boolean\": {\n    \"color\": \"#569cd6\"\n  },\n  \"number\": {\n    \"color\": \"#b5cea8\"\n  },\n  \"constant\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"symbol\": {\n    \"color\": \"#b5cea8\"\n  },\n  \"inserted\": {\n    \"color\": \"#b5cea8\"\n  },\n  \"unit\": {\n    \"color\": \"#b5cea8\"\n  },\n  \"selector\": {\n    \"color\": \"#d7ba7d\"\n  },\n  \"attr-name\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"string\": {\n    \"color\": \"#ce9178\"\n  },\n  \"char\": {\n    \"color\": \"#ce9178\"\n  },\n  \"builtin\": {\n    \"color\": \"#ce9178\"\n  },\n  \"deleted\": {\n    \"color\": \"#ce9178\"\n  },\n  \".language-css .token.string.url\": {\n    \"textDecoration\": \"underline\"\n  },\n  \"operator\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \"entity\": {\n    \"color\": \"#569cd6\"\n  },\n  \"operator.arrow\": {\n    \"color\": \"#569CD6\"\n  },\n  \"atrule\": {\n    \"color\": \"#ce9178\"\n  },\n  \"atrule.rule\": {\n    \"color\": \"#c586c0\"\n  },\n  \"atrule.url\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"atrule.url.function\": {\n    \"color\": \"#dcdcaa\"\n  },\n  \"atrule.url.punctuation\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \"keyword\": {\n    \"color\": \"#569CD6\"\n  },\n  \"keyword.module\": {\n    \"color\": \"#c586c0\"\n  },\n  \"keyword.control-flow\": {\n    \"color\": \"#c586c0\"\n  },\n  \"function\": {\n    \"color\": \"#dcdcaa\"\n  },\n  \"function.maybe-class-name\": {\n    \"color\": \"#dcdcaa\"\n  },\n  \"regex\": {\n    \"color\": \"#d16969\"\n  },\n  \"important\": {\n    \"color\": \"#569cd6\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"class-name\": {\n    \"color\": \"#4ec9b0\"\n  },\n  \"maybe-class-name\": {\n    \"color\": \"#4ec9b0\"\n  },\n  \"console\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"parameter\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"interpolation\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"punctuation.interpolation-punctuation\": {\n    \"color\": \"#569cd6\"\n  },\n  \"variable\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"imports.maybe-class-name\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"exports.maybe-class-name\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"escape\": {\n    \"color\": \"#d7ba7d\"\n  },\n  \"tag.punctuation\": {\n    \"color\": \"#808080\"\n  },\n  \"cdata\": {\n    \"color\": \"#808080\"\n  },\n  \"attr-value\": {\n    \"color\": \"#ce9178\"\n  },\n  \"attr-value.punctuation\": {\n    \"color\": \"#ce9178\"\n  },\n  \"attr-value.punctuation.attr-equals\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \"namespace\": {\n    \"color\": \"#4ec9b0\"\n  },\n  \"pre[class*=\\\"language-javascript\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"code[class*=\\\"language-javascript\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"pre[class*=\\\"language-jsx\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"code[class*=\\\"language-jsx\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"pre[class*=\\\"language-typescript\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"code[class*=\\\"language-typescript\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"pre[class*=\\\"language-tsx\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"code[class*=\\\"language-tsx\\\"]\": {\n    \"color\": \"#9cdcfe\"\n  },\n  \"pre[class*=\\\"language-css\\\"]\": {\n    \"color\": \"#ce9178\"\n  },\n  \"code[class*=\\\"language-css\\\"]\": {\n    \"color\": \"#ce9178\"\n  },\n  \"pre[class*=\\\"language-html\\\"]\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \"code[class*=\\\"language-html\\\"]\": {\n    \"color\": \"#d4d4d4\"\n  },\n  \".language-regex .token.anchor\": {\n    \"color\": \"#dcdcaa\"\n  },\n  \".language-html .token.punctuation\": {\n    \"color\": \"#808080\"\n  },\n  \"pre[class*=\\\"language-\\\"] > code[class*=\\\"language-\\\"]\": {\n    \"position\": \"relative\",\n    \"zIndex\": \"1\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"#f7ebc6\",\n    \"boxShadow\": \"inset 5px 0 0 #f7d87c\",\n    \"zIndex\": \"0\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordWrap\": \"normal\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"fontSize\": \"14px\",\n    \"color\": \"#76d9e6\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"whiteSpace\": \"pre-wrap\",\n    \"wordWrap\": \"normal\",\n    \"fontFamily\": \"Menlo, Monaco, \\\"Courier New\\\", monospace\",\n    \"fontSize\": \"14px\",\n    \"color\": \"#76d9e6\",\n    \"textShadow\": \"none\",\n    \"background\": \"#2a2a2a\",\n    \"padding\": \"15px\",\n    \"borderRadius\": \"4px\",\n    \"border\": \"1px solid #e1e1e8\",\n    \"overflow\": \"auto\",\n    \"position\": \"relative\"\n  },\n  \"pre > code[class*=\\\"language-\\\"]\": {\n    \"fontSize\": \"1em\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#2a2a2a\",\n    \"padding\": \"0.15em 0.2em 0.05em\",\n    \"borderRadius\": \".3em\",\n    \"border\": \"0.13em solid #7a6652\",\n    \"boxShadow\": \"1px 1px 0.3em -0.1em #000 inset\"\n  },\n  \"pre[class*=\\\"language-\\\"] code\": {\n    \"whiteSpace\": \"pre\",\n    \"display\": \"block\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"comment\": {\n    \"color\": \"#6f705e\"\n  },\n  \"prolog\": {\n    \"color\": \"#6f705e\"\n  },\n  \"doctype\": {\n    \"color\": \"#6f705e\"\n  },\n  \"cdata\": {\n    \"color\": \"#6f705e\"\n  },\n  \"operator\": {\n    \"color\": \"#a77afe\"\n  },\n  \"boolean\": {\n    \"color\": \"#a77afe\"\n  },\n  \"number\": {\n    \"color\": \"#a77afe\"\n  },\n  \"attr-name\": {\n    \"color\": \"#e6d06c\"\n  },\n  \"string\": {\n    \"color\": \"#e6d06c\"\n  },\n  \"entity\": {\n    \"color\": \"#e6d06c\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#e6d06c\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#e6d06c\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#e6d06c\"\n  },\n  \"selector\": {\n    \"color\": \"#a6e22d\"\n  },\n  \"inserted\": {\n    \"color\": \"#a6e22d\"\n  },\n  \"atrule\": {\n    \"color\": \"#ef3b7d\"\n  },\n  \"attr-value\": {\n    \"color\": \"#ef3b7d\"\n  },\n  \"keyword\": {\n    \"color\": \"#ef3b7d\"\n  },\n  \"important\": {\n    \"color\": \"#ef3b7d\",\n    \"fontWeight\": \"bold\"\n  },\n  \"deleted\": {\n    \"color\": \"#ef3b7d\"\n  },\n  \"regex\": {\n    \"color\": \"#76d9e6\"\n  },\n  \"statement\": {\n    \"color\": \"#76d9e6\",\n    \"fontWeight\": \"bold\"\n  },\n  \"placeholder\": {\n    \"color\": \"#fff\"\n  },\n  \"variable\": {\n    \"color\": \"#fff\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"punctuation\": {\n    \"color\": \"#bebec5\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"code.language-markup\": {\n    \"color\": \"#f9f9f9\"\n  },\n  \"code.language-markup .token.tag\": {\n    \"color\": \"#ef3b7d\"\n  },\n  \"code.language-markup .token.attr-name\": {\n    \"color\": \"#a6e22d\"\n  },\n  \"code.language-markup .token.attr-value\": {\n    \"color\": \"#e6d06c\"\n  },\n  \"code.language-markup .token.style\": {\n    \"color\": \"#76d9e6\"\n  },\n  \"code.language-markup .token.script\": {\n    \"color\": \"#76d9e6\"\n  },\n  \"code.language-markup .token.script .token.keyword\": {\n    \"color\": \"#76d9e6\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"padding\": \"0\",\n    \"background\": \"rgba(255, 255, 255, 0.08)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"padding\": \"0.2em 0.5em\",\n    \"backgroundColor\": \"rgba(255, 255, 255, 0.4)\",\n    \"color\": \"black\",\n    \"height\": \"1em\",\n    \"lineHeight\": \"1em\",\n    \"boxShadow\": \"0 1px 1px rgba(255, 255, 255, 0.7)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"padding\": \"0.2em 0.5em\",\n    \"backgroundColor\": \"rgba(255, 255, 255, 0.4)\",\n    \"color\": \"black\",\n    \"height\": \"1em\",\n    \"lineHeight\": \"1em\",\n    \"boxShadow\": \"0 1px 1px rgba(255, 255, 255, 0.7)\"\n  }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _default = exports[\"default\"] = {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"#22da17\",\n    \"fontFamily\": \"monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"lineHeight\": \"25px\",\n    \"fontSize\": \"18px\",\n    \"margin\": \"5px 0\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"fontFamily\": \"monospace\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"lineHeight\": \"25px\",\n    \"fontSize\": \"18px\",\n    \"margin\": \"0.5em 0\",\n    \"background\": \"#0a143c\",\n    \"padding\": \"1em\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"] *\": {\n    \"fontFamily\": \"monospace\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"color\": \"white\",\n    \"background\": \"#0a143c\",\n    \"padding\": \"0.1em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"rgba(29, 59, 83, 0.99)\"\n  },\n  \"comment\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"cdata\": {\n    \"color\": \"rgb(99, 119, 119)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"punctuation\": {\n    \"color\": \"rgb(199, 146, 234)\"\n  },\n  \".namespace\": {\n    \"color\": \"rgb(178, 204, 214)\"\n  },\n  \"deleted\": {\n    \"color\": \"rgba(239, 83, 80, 0.56)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"symbol\": {\n    \"color\": \"rgb(128, 203, 196)\"\n  },\n  \"property\": {\n    \"color\": \"rgb(128, 203, 196)\"\n  },\n  \"tag\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"operator\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"keyword\": {\n    \"color\": \"rgb(127, 219, 202)\"\n  },\n  \"boolean\": {\n    \"color\": \"rgb(255, 88, 116)\"\n  },\n  \"number\": {\n    \"color\": \"rgb(247, 140, 108)\"\n  },\n  \"constant\": {\n    \"color\": \"rgb(34 183 199)\"\n  },\n  \"function\": {\n    \"color\": \"rgb(34 183 199)\"\n  },\n  \"builtin\": {\n    \"color\": \"rgb(34 183 199)\"\n  },\n  \"char\": {\n    \"color\": \"rgb(34 183 199)\"\n  },\n  \"selector\": {\n    \"color\": \"rgb(199, 146, 234)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"doctype\": {\n    \"color\": \"rgb(199, 146, 234)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"attr-name\": {\n    \"color\": \"rgb(173, 219, 103)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"inserted\": {\n    \"color\": \"rgb(173, 219, 103)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"url\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"entity\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"rgb(173, 219, 103)\"\n  },\n  \"class-name\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"atrule\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"attr-value\": {\n    \"color\": \"rgb(255, 203, 139)\"\n  },\n  \"regex\": {\n    \"color\": \"rgb(214, 222, 235)\"\n  },\n  \"important\": {\n    \"color\": \"rgb(214, 222, 235)\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"rgb(214, 222, 235)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"a11yDark\", {\n  enumerable: true,\n  get: function get() {\n    return _a11yDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"atomDark\", {\n  enumerable: true,\n  get: function get() {\n    return _atomDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"base16AteliersulphurpoolLight\", {\n  enumerable: true,\n  get: function get() {\n    return _base16Ateliersulphurpool[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"cb\", {\n  enumerable: true,\n  get: function get() {\n    return _cb[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"coldarkCold\", {\n  enumerable: true,\n  get: function get() {\n    return _coldarkCold[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"coldarkDark\", {\n  enumerable: true,\n  get: function get() {\n    return _coldarkDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"coy\", {\n  enumerable: true,\n  get: function get() {\n    return _coy[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"coyWithoutShadows\", {\n  enumerable: true,\n  get: function get() {\n    return _coyWithoutShadows[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"darcula\", {\n  enumerable: true,\n  get: function get() {\n    return _darcula[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"dark\", {\n  enumerable: true,\n  get: function get() {\n    return _dark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"dracula\", {\n  enumerable: true,\n  get: function get() {\n    return _dracula[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneDark\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneEarth\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneEarth[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneForest\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneForest[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneLight\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneLight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneSea\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneSea[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"duotoneSpace\", {\n  enumerable: true,\n  get: function get() {\n    return _duotoneSpace[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"funky\", {\n  enumerable: true,\n  get: function get() {\n    return _funky[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"ghcolors\", {\n  enumerable: true,\n  get: function get() {\n    return _ghcolors[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"gruvboxDark\", {\n  enumerable: true,\n  get: function get() {\n    return _gruvboxDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"gruvboxLight\", {\n  enumerable: true,\n  get: function get() {\n    return _gruvboxLight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"holiTheme\", {\n  enumerable: true,\n  get: function get() {\n    return _holiTheme[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"hopscotch\", {\n  enumerable: true,\n  get: function get() {\n    return _hopscotch[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"lucario\", {\n  enumerable: true,\n  get: function get() {\n    return _lucario[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"materialDark\", {\n  enumerable: true,\n  get: function get() {\n    return _materialDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"materialLight\", {\n  enumerable: true,\n  get: function get() {\n    return _materialLight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"materialOceanic\", {\n  enumerable: true,\n  get: function get() {\n    return _materialOceanic[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"nightOwl\", {\n  enumerable: true,\n  get: function get() {\n    return _nightOwl[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"nord\", {\n  enumerable: true,\n  get: function get() {\n    return _nord[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"okaidia\", {\n  enumerable: true,\n  get: function get() {\n    return _okaidia[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"oneDark\", {\n  enumerable: true,\n  get: function get() {\n    return _oneDark[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"oneLight\", {\n  enumerable: true,\n  get: function get() {\n    return _oneLight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"pojoaque\", {\n  enumerable: true,\n  get: function get() {\n    return _pojoaque[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"prism\", {\n  enumerable: true,\n  get: function get() {\n    return _prism[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"shadesOfPurple\", {\n  enumerable: true,\n  get: function get() {\n    return _shadesOfPurple[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"solarizedDarkAtom\", {\n  enumerable: true,\n  get: function get() {\n    return _solarizedDarkAtom[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"solarizedlight\", {\n  enumerable: true,\n  get: function get() {\n    return _solarizedlight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"synthwave84\", {\n  enumerable: true,\n  get: function get() {\n    return _synthwave[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"tomorrow\", {\n  enumerable: true,\n  get: function get() {\n    return _tomorrow[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"twilight\", {\n  enumerable: true,\n  get: function get() {\n    return _twilight[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"vs\", {\n  enumerable: true,\n  get: function get() {\n    return _vs[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"vscDarkPlus\", {\n  enumerable: true,\n  get: function get() {\n    return _vscDarkPlus[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"xonokai\", {\n  enumerable: true,\n  get: function get() {\n    return _xonokai[\"default\"];\n  }\n});\nObject.defineProperty(exports, \"zTouch\", {\n  enumerable: true,\n  get: function get() {\n    return _zTouch[\"default\"];\n  }\n});\nvar _coy = _interopRequireDefault(require(\"./coy\"));\nvar _dark = _interopRequireDefault(require(\"./dark\"));\nvar _funky = _interopRequireDefault(require(\"./funky\"));\nvar _okaidia = _interopRequireDefault(require(\"./okaidia\"));\nvar _solarizedlight = _interopRequireDefault(require(\"./solarizedlight\"));\nvar _tomorrow = _interopRequireDefault(require(\"./tomorrow\"));\nvar _twilight = _interopRequireDefault(require(\"./twilight\"));\nvar _prism = _interopRequireDefault(require(\"./prism\"));\nvar _a11yDark = _interopRequireDefault(require(\"./a11y-dark\"));\nvar _atomDark = _interopRequireDefault(require(\"./atom-dark\"));\nvar _base16Ateliersulphurpool = _interopRequireDefault(require(\"./base16-ateliersulphurpool.light\"));\nvar _cb = _interopRequireDefault(require(\"./cb\"));\nvar _coldarkCold = _interopRequireDefault(require(\"./coldark-cold\"));\nvar _coldarkDark = _interopRequireDefault(require(\"./coldark-dark\"));\nvar _coyWithoutShadows = _interopRequireDefault(require(\"./coy-without-shadows\"));\nvar _darcula = _interopRequireDefault(require(\"./darcula\"));\nvar _dracula = _interopRequireDefault(require(\"./dracula\"));\nvar _duotoneDark = _interopRequireDefault(require(\"./duotone-dark\"));\nvar _duotoneEarth = _interopRequireDefault(require(\"./duotone-earth\"));\nvar _duotoneForest = _interopRequireDefault(require(\"./duotone-forest\"));\nvar _duotoneLight = _interopRequireDefault(require(\"./duotone-light\"));\nvar _duotoneSea = _interopRequireDefault(require(\"./duotone-sea\"));\nvar _duotoneSpace = _interopRequireDefault(require(\"./duotone-space\"));\nvar _ghcolors = _interopRequireDefault(require(\"./ghcolors\"));\nvar _gruvboxDark = _interopRequireDefault(require(\"./gruvbox-dark\"));\nvar _gruvboxLight = _interopRequireDefault(require(\"./gruvbox-light\"));\nvar _holiTheme = _interopRequireDefault(require(\"./holi-theme\"));\nvar _hopscotch = _interopRequireDefault(require(\"./hopscotch\"));\nvar _lucario = _interopRequireDefault(require(\"./lucario\"));\nvar _materialDark = _interopRequireDefault(require(\"./material-dark\"));\nvar _materialLight = _interopRequireDefault(require(\"./material-light\"));\nvar _materialOceanic = _interopRequireDefault(require(\"./material-oceanic\"));\nvar _nightOwl = _interopRequireDefault(require(\"./night-owl\"));\nvar _nord = _interopRequireDefault(require(\"./nord\"));\nvar _oneDark = _interopRequireDefault(require(\"./one-dark\"));\nvar _oneLight = _interopRequireDefault(require(\"./one-light\"));\nvar _pojoaque = _interopRequireDefault(require(\"./pojoaque\"));\nvar _shadesOfPurple = _interopRequireDefault(require(\"./shades-of-purple\"));\nvar _solarizedDarkAtom = _interopRequireDefault(require(\"./solarized-dark-atom\"));\nvar _synthwave = _interopRequireDefault(require(\"./synthwave84\"));\nvar _vs = _interopRequireDefault(require(\"./vs\"));\nvar _vscDarkPlus = _interopRequireDefault(require(\"./vsc-dark-plus\"));\nvar _xonokai = _interopRequireDefault(require(\"./xonokai\"));\nvar _zTouch = _interopRequireDefault(require(\"./z-touch\"));","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Utility function to merge Tailwind CSS classes with proper precedence\n * Uses clsx for conditional classes and tailwind-merge to resolve conflicts\n */\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst alertVariants = cva(\n  \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-background text-foreground\",\n        destructive:\n          \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  }\n)\n\nconst Alert = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n  <div\n    ref={ref}\n    role=\"alert\"\n    className={cn(alertVariants({ variant }), className)}\n    {...props}\n  />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n  <h5\n    ref={ref}\n    className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n    {...props}\n  />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n    {...props}\n  />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst badgeVariants = cva(\n  \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n        secondary:\n          \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n        destructive:\n          \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n        outline: \"text-foreground hover:bg-accent hover:text-accent-foreground\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  }\n)\n\nexport interface BadgeProps\n  extends React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n  return (\n    <div className={cn(badgeVariants({ variant }), className)} {...props} />\n  )\n}\n\nexport { Badge, badgeVariants }","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst buttonVariants = cva(\n  \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n        destructive:\n          \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n        outline:\n          \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n        secondary:\n          \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n        ghost: \"hover:bg-accent hover:text-accent-foreground\",\n        link: \"text-primary underline-offset-4 hover:underline\",\n      },\n      size: {\n        default: \"h-10 px-4 py-2\",\n        sm: \"h-9 rounded-md px-3\",\n        lg: \"h-11 rounded-md px-8\",\n        icon: \"h-10 w-10\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      size: \"default\",\n    },\n  }\n);\n\nexport interface ButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Comp = asChild ? Slot : \"button\";\n    return (\n      <Comp\n        className={cn(buttonVariants({ variant, size, className }))}\n        ref={ref}\n        {...props}\n      />\n    );\n  }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };","/**\n * Simple Card Component\n */\n\n\nimport { cn } from '../../src/utils/cn';\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n  children: React.ReactNode;\n}\n\nexport function Card({ children, className, ...props }: CardProps) {\n  return (\n    <div \n      className={cn(\n        \"bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function CardHeader({ children, className, ...props }: CardProps) {\n  return (\n    <div \n      className={cn(\"px-6 py-4 border-b border-gray-200 dark:border-gray-700\", className)}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function CardContent({ children, className, ...props }: CardProps) {\n  return (\n    <div className={cn(\"px-6 py-4\", className)} {...props}>\n      {children}\n    </div>\n  );\n}\n\nexport function CardTitle({ children, className, ...props }: CardProps) {\n  return (\n    <h3 className={cn(\"text-lg font-semibold\", className)} {...props}>\n      {children}\n    </h3>\n  );\n}","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst Checkbox = React.forwardRef<\n  React.ElementRef<typeof CheckboxPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <CheckboxPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n      className\n    )}\n    {...props}\n  >\n    <CheckboxPrimitive.Indicator\n      className={cn(\"flex items-center justify-center text-current\")}\n    >\n      <Check className=\"h-4 w-4\" />\n    </CheckboxPrimitive.Indicator>\n  </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Overlay\n    ref={ref}\n    className={cn(\n      \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n      className\n    )}\n    {...props}\n  />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n  hideCloseButton?: boolean;\n}\n\nconst DialogContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  DialogContentProps\n>(({ className, children, hideCloseButton = false, ...props }, ref) => (\n  <DialogPortal>\n    <DialogOverlay />\n    <DialogPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n      {!hideCloseButton && (\n        <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n          <X className=\"h-4 w-4\" />\n          <span className=\"sr-only\">Close</span>\n        </DialogPrimitive.Close>\n      )}\n    </DialogPrimitive.Content>\n  </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\n      \"flex flex-col space-y-1.5 text-center sm:text-left\",\n      className\n    )}\n    {...props}\n  />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\n      \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n      className\n    )}\n    {...props}\n  />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Title\n    ref={ref}\n    className={cn(\n      \"text-lg font-semibold leading-none tracking-tight\",\n      className\n    )}\n    {...props}\n  />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Description\n    ref={ref}\n    className={cn(\"text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n  Dialog,\n  DialogPortal,\n  DialogOverlay,\n  DialogClose,\n  DialogTrigger,\n  DialogContent,\n  DialogHeader,\n  DialogFooter,\n  DialogTitle,\n  DialogDescription,\n}","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n    inset?: boolean;\n  }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger\n    ref={ref}\n    className={cn(\n      \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n      inset && \"pl-8\",\n      className\n    )}\n    {...props}\n  >\n    {children}\n    <ChevronRight className=\"ml-auto h-4 w-4\" />\n  </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubContent\n    ref={ref}\n    className={cn(\n      \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n      className\n    )}\n    {...props}\n  />\n));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <DropdownMenuPrimitive.Portal>\n    <DropdownMenuPrimitive.Content\n      ref={ref}\n      sideOffset={sideOffset}\n      className={cn(\n        \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n        className\n      )}\n      {...props}\n    />\n  </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Item\n    ref={ref}\n    className={cn(\n      \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n      inset && \"pl-8\",\n      className\n    )}\n    {...props}\n  />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n  <DropdownMenuPrimitive.CheckboxItem\n    ref={ref}\n    className={cn(\n      \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n      className\n    )}\n    checked={checked}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <Check className=\"h-4 w-4\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.RadioItem\n    ref={ref}\n    className={cn(\n      \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n      className\n    )}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n      <DropdownMenuPrimitive.ItemIndicator>\n        <Circle className=\"h-2 w-2 fill-current\" />\n      </DropdownMenuPrimitive.ItemIndicator>\n    </span>\n    {children}\n  </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n    inset?: boolean;\n  }\n>(({ className, inset, ...props }, ref) => (\n  <DropdownMenuPrimitive.Label\n    ref={ref}\n    className={cn(\n      \"px-2 py-1.5 text-sm font-semibold\",\n      inset && \"pl-8\",\n      className\n    )}\n    {...props}\n  />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <DropdownMenuPrimitive.Separator\n    ref={ref}\n    className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n    {...props}\n  />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n  className,\n  ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n  return (\n    <span\n      className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n      {...props}\n    />\n  );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n  DropdownMenu,\n  DropdownMenuTrigger,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuCheckboxItem,\n  DropdownMenuRadioItem,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n  DropdownMenuShortcut,\n  DropdownMenuGroup,\n  DropdownMenuPortal,\n  DropdownMenuSub,\n  DropdownMenuSubContent,\n  DropdownMenuSubTrigger,\n  DropdownMenuRadioGroup,\n};","import * as React from \"react\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nexport interface InputProps\n  extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n  ({ className, type, ...props }, ref) => {\n    return (\n      <input\n        type={type}\n        className={cn(\n          \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n          className\n        )}\n        ref={ref}\n        {...props}\n      />\n    )\n  }\n)\nInput.displayName = \"Input\"\n\nexport { Input }","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst labelVariants = cva(\n  \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n    VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n  <LabelPrimitive.Root\n    ref={ref}\n    className={cn(labelVariants(), className)}\n    {...props}\n  />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n  React.ElementRef<typeof PopoverPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n  <PopoverPrimitive.Portal>\n    <PopoverPrimitive.Content\n      ref={ref}\n      align={align}\n      sideOffset={sideOffset}\n      className={cn(\n        \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n        className\n      )}\n      {...props}\n    />\n  </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }","import * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Progress = React.forwardRef<\n  React.ElementRef<typeof ProgressPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n  <ProgressPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"relative h-4 w-full overflow-hidden rounded-full bg-secondary\",\n      className\n    )}\n    {...props}\n  >\n    <ProgressPrimitive.Indicator\n      className=\"h-full w-full flex-1 bg-primary transition-all\"\n      style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n    />\n  </ProgressPrimitive.Root>\n))\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst ScrollArea = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n  <ScrollAreaPrimitive.Root\n    ref={ref}\n    className={cn(\"relative overflow-hidden\", className)}\n    {...props}\n  >\n    <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n      {children}\n    </ScrollAreaPrimitive.Viewport>\n    <ScrollBar />\n    <ScrollAreaPrimitive.Corner />\n  </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n  <ScrollAreaPrimitive.ScrollAreaScrollbar\n    ref={ref}\n    orientation={orientation}\n    className={cn(\n      \"flex touch-none select-none transition-colors\",\n      orientation === \"vertical\" &&\n        \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n      orientation === \"horizontal\" &&\n        \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n      className\n    )}\n    {...props}\n  >\n    <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n  </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n      className\n    )}\n    {...props}\n  >\n    {children}\n    <SelectPrimitive.Icon asChild>\n      <ChevronDown className=\"h-4 w-4 opacity-50\" />\n    </SelectPrimitive.Icon>\n  </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollUpButton\n    ref={ref}\n    className={cn(\n      \"flex cursor-default items-center justify-center py-1\",\n      className\n    )}\n    {...props}\n  >\n    <ChevronUp className=\"h-4 w-4\" />\n  </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollDownButton\n    ref={ref}\n    className={cn(\n      \"flex cursor-default items-center justify-center py-1\",\n      className\n    )}\n    {...props}\n  >\n    <ChevronDown className=\"h-4 w-4\" />\n  </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n  SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n  <SelectPrimitive.Portal>\n    <SelectPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n        position === \"popper\" &&\n          \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n        className\n      )}\n      position={position}\n      {...props}\n    >\n      <SelectScrollUpButton />\n      <SelectPrimitive.Viewport\n        className={cn(\n          \"p-1\",\n          position === \"popper\" &&\n            \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n        )}\n      >\n        {children}\n      </SelectPrimitive.Viewport>\n      <SelectScrollDownButton />\n    </SelectPrimitive.Content>\n  </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Label\n    ref={ref}\n    className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n    {...props}\n  />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Item\n    ref={ref}\n    className={cn(\n      \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n      className\n    )}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n      <SelectPrimitive.ItemIndicator>\n        <Check className=\"h-4 w-4\" />\n      </SelectPrimitive.ItemIndicator>\n    </span>\n\n    <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n  </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Separator\n    ref={ref}\n    className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n    {...props}\n  />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n  Select,\n  SelectGroup,\n  SelectValue,\n  SelectTrigger,\n  SelectContent,\n  SelectLabel,\n  SelectItem,\n  SelectSeparator,\n  SelectScrollUpButton,\n  SelectScrollDownButton,\n}","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst Separator = React.forwardRef<\n  React.ElementRef<typeof SeparatorPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n  (\n    { className, orientation = \"horizontal\", decorative = true, ...props },\n    ref\n  ) => (\n    <SeparatorPrimitive.Root\n      ref={ref}\n      decorative={decorative}\n      orientation={orientation}\n      className={cn(\n        \"shrink-0 bg-border\",\n        orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n        className\n      )}\n      {...props}\n    />\n  )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst Slider = React.forwardRef<\n  React.ElementRef<typeof SliderPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <SliderPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"relative flex w-full touch-none select-none items-center\",\n      className\n    )}\n    {...props}\n  >\n    <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n      <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n    </SliderPrimitive.Track>\n    <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n  </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Switch = React.forwardRef<\n  React.ElementRef<typeof SwitchPrimitives.Root>,\n  React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n  <SwitchPrimitives.Root\n    className={cn(\n      \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n      className\n    )}\n    {...props}\n    ref={ref}\n  >\n    <SwitchPrimitives.Thumb\n      className={cn(\n        \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n      )}\n    />\n  </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n\n","import * as React from \"react\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Table = React.forwardRef<\n  HTMLTableElement,\n  React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n  <div className=\"relative w-full overflow-auto\">\n    <table\n      ref={ref}\n      className={cn(\"w-full caption-bottom text-sm\", className)}\n      {...props}\n    />\n  </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tbody\n    ref={ref}\n    className={cn(\"[&_tr:last-child]:border-0\", className)}\n    {...props}\n  />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n  HTMLTableSectionElement,\n  React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n  <tfoot\n    ref={ref}\n    className={cn(\n      \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n      className\n    )}\n    {...props}\n  />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n  HTMLTableRowElement,\n  React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n  <tr\n    ref={ref}\n    className={cn(\n      \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n      className\n    )}\n    {...props}\n  />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n  HTMLTableCellElement,\n  React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <th\n    ref={ref}\n    className={cn(\n      \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n      className\n    )}\n    {...props}\n  />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n  HTMLTableCellElement,\n  React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n  <td\n    ref={ref}\n    className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n    {...props}\n  />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n  HTMLTableCaptionElement,\n  React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n  <caption\n    ref={ref}\n    className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n    {...props}\n  />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n  Table,\n  TableHeader,\n  TableBody,\n  TableFooter,\n  TableHead,\n  TableRow,\n  TableCell,\n  TableCaption,\n}","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nconst Tabs = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.List>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.List\n    ref={ref}\n    className={cn(\n      \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n      className\n    )}\n    {...props}\n  />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n      className\n    )}\n    {...props}\n  />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Content\n    ref={ref}\n    className={cn(\n      \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n      className\n    )}\n    {...props}\n  />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }","import * as React from \"react\"\n\nimport { cn } from \"../../src/utils/cn\"\n\nexport interface TextareaProps\n  extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n  ({ className, ...props }, ref) => {\n    return (\n      <textarea\n        className={cn(\n          \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n          className\n        )}\n        ref={ref}\n        {...props}\n      />\n    )\n  }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../src/utils/cn\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n  React.ElementRef<typeof TooltipPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n  <TooltipPrimitive.Content\n    ref={ref}\n    sideOffset={sideOffset}\n    className={cn(\n      \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n      className\n    )}\n    {...props}\n  />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };","import React from 'react';\n\ninterface ImageWithFallbackProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n  src: string;\n  fallbackSrc?: string;\n  hideOnError?: boolean;\n}\n\n/**\n * Image component with fallback support\n * Handles image loading errors gracefully by either showing a fallback image or hiding the element\n */\nexport function ImageWithFallback({ \n  src, \n  fallbackSrc, \n  hideOnError = false,\n  onError,\n  ...props \n}: ImageWithFallbackProps) {\n  const handleError = (e: React.SyntheticEvent<HTMLImageElement, Event>) => {\n    const target = e.target as HTMLImageElement;\n    \n    if (hideOnError) {\n      target.style.display = 'none';\n    } else if (fallbackSrc && target.src !== fallbackSrc) {\n      target.src = fallbackSrc;\n    }\n    \n    // Call original onError if provided\n    if (onError) {\n      onError(e);\n    }\n  };\n\n  return (\n    <img \n      src={src} \n      onError={handleError}\n      {...props}\n    />\n  );\n}\n\nexport default ImageWithFallback;","import React, { useState } from 'react';\nimport { Button } from '../base/button';\nimport { Input } from '../base/input';\nimport { ImageWithFallback } from '../base/ImageWithFallback';\nimport { AlertCircle, Globe } from 'lucide-react';\n\nexport interface LoginPageConfig {\n  apiEndpoint?: string;\n  logoSrc?: string;\n  fallbackLogoSrc?: string;\n  appTitle?: string;\n  subtitle?: string;\n  showLanguageSelector?: boolean;\n  showPoweredBy?: boolean;\n  poweredByLogo?: string;\n  poweredByText?: string;\n  onLoginSuccess?: () => void;\n  onLoginError?: (error: string) => void;\n  customStyles?: {\n    container?: string;\n    card?: string;\n    logo?: string;\n    title?: string;\n    subtitle?: string;\n    errorMessage?: string;\n    input?: string;\n    button?: string;\n  };\n}\n\nexport interface LoginPageProps extends LoginPageConfig {\n  navigate: (path: string) => void;\n}\n\nexport function LoginPage({\n  apiEndpoint = '/api/login',\n  logoSrc = '/assets/logo.png',\n  fallbackLogoSrc = '/assets/logo-fallback.svg',\n  appTitle = 'Application',\n  subtitle = 'Sign in to continue',\n  showLanguageSelector = false,\n  showPoweredBy = false,\n  poweredByLogo = '/assets/powered-by-logo.svg',\n  poweredByText = 'Powered by',\n  onLoginSuccess,\n  onLoginError,\n  customStyles = {},\n  navigate\n}: LoginPageProps) {\n  const [username, setUsername] = useState('');\n  const [password, setPassword] = useState('');\n  const [loading, setLoading] = useState(false);\n  const [error, setError] = useState('');\n\n  const handleSubmit = async (e: React.FormEvent) => {\n    e.preventDefault();\n    setError('');\n    \n    if (!username || !password) {\n      setError('Please enter both username and password');\n      return;\n    }\n    \n    setLoading(true);\n\n    try {\n      const response = await fetch(apiEndpoint, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        credentials: 'include',\n        body: JSON.stringify({ username, password }),\n      });\n\n      const data = await response.json();\n\n      if (response.ok && data.success) {\n        // Store auth state\n        localStorage.setItem('authenticated', 'true');\n        if (onLoginSuccess) {\n          onLoginSuccess();\n        }\n        navigate('/');\n      } else {\n        const errorMsg = data.error || 'Invalid credentials';\n        setError(errorMsg);\n        if (onLoginError) {\n          onLoginError(errorMsg);\n        }\n      }\n    } catch (error) {\n      const errorMsg = 'Login failed. Please try again.';\n      setError(errorMsg);\n      // Error is already captured in state and shown to user\n      if (onLoginError) {\n        onLoginError(errorMsg);\n      }\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  return (\n    <div className={customStyles.container || \"min-h-screen flex items-center justify-center bg-gray-50\"}>\n      <div className={customStyles.card || \"max-w-md w-full space-y-8 p-8 bg-white rounded-xl shadow-sm border border-gray-200\"}>\n        <div className=\"flex flex-col items-center\">\n          <ImageWithFallback\n            src={logoSrc} \n            fallbackSrc={fallbackLogoSrc}\n            alt=\"Logo\" \n            className={customStyles.logo || \"h-12 mb-6\"}\n          />\n          <h1 className={customStyles.title || \"text-2xl font-semibold text-gray-900\"}>{appTitle}</h1>\n          <p className={customStyles.subtitle || \"text-sm text-gray-500 mt-2\"}>{subtitle}</p>\n        </div>\n        \n        <form className=\"space-y-6\" onSubmit={handleSubmit}>\n          {error && (\n            <div className={customStyles.errorMessage || \"flex items-center gap-2 p-3 bg-red-50 border border-red-200 rounded-lg text-red-700 text-sm\"}>\n              <AlertCircle className=\"h-4 w-4 flex-shrink-0\" />\n              <span>{error}</span>\n            </div>\n          )}\n\n          <div className=\"space-y-4\">\n            <div>\n              <label htmlFor=\"username\" className=\"block text-sm font-medium text-gray-700 mb-1\">\n                Username\n              </label>\n              <Input\n                id=\"username\"\n                name=\"username\"\n                type=\"text\"\n                value={username}\n                onChange={(e) => setUsername(e.target.value)}\n                placeholder=\"Enter username\"\n                className={customStyles.input || \"w-full\"}\n                disabled={loading}\n                autoFocus\n              />\n            </div>\n            \n            <div>\n              <label htmlFor=\"password\" className=\"block text-sm font-medium text-gray-700 mb-1\">\n                Password\n              </label>\n              <Input\n                id=\"password\"\n                name=\"password\"\n                type=\"password\"\n                value={password}\n                onChange={(e) => setPassword(e.target.value)}\n                placeholder=\"Enter password\"\n                className={customStyles.input || \"w-full\"}\n                disabled={loading}\n              />\n            </div>\n\n            {showLanguageSelector && (\n              <div className=\"flex items-center justify-end\">\n                <button\n                  type=\"button\"\n                  className=\"flex items-center gap-2 text-sm text-gray-600 hover:text-gray-900\"\n                  onClick={() => {\n                    // Language selector functionality to be implemented\n                  }}\n                >\n                  <Globe className=\"h-4 w-4\" />\n                  <span>English</span>\n                </button>\n              </div>\n            )}\n          </div>\n\n          <Button\n            type=\"submit\"\n            className={customStyles.button || \"w-full\"}\n            disabled={loading}\n          >\n            {loading ? 'Signing in...' : 'Sign In'}\n          </Button>\n        </form>\n\n        {showPoweredBy && (\n          <div className=\"flex items-center justify-center pt-6 border-t border-gray-200\">\n            <div className=\"flex items-center gap-2 text-sm text-gray-500\">\n              <span>{poweredByText}</span>\n              <ImageWithFallback\n                src={poweredByLogo} \n                alt=\"Powered by\" \n                className=\"h-5\"\n                hideOnError={true}\n              />\n            </div>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n}","/**\n * Authentication utilities for framework applications\n */\n\ninterface AuthCheckResult {\n  authenticated: boolean;\n  username?: string;\n  error?: string;\n}\n\n/**\n * Check if the user is authenticated\n * @param authEndpoint - The endpoint to check authentication status\n * @returns Promise with authentication status\n */\nexport async function checkAuth(\n  authEndpoint: string = '/api/auth/check'\n): Promise<AuthCheckResult> {\n  try {\n    const response = await fetch(authEndpoint, {\n      credentials: 'include',\n      headers: {\n        'Accept': 'application/json'\n      }\n    });\n    \n    if (response.ok) {\n      const data = await response.json();\n      return {\n        authenticated: data.authenticated,\n        username: data.username\n      };\n    } else if (response.status === 401) {\n      return {\n        authenticated: false\n      };\n    } else {\n      return {\n        authenticated: false,\n        error: `Server returned ${response.status}`\n      };\n    }\n  } catch (error: any) {\n    return {\n      authenticated: false,\n      error: error.message || 'Failed to check authentication'\n    };\n  }\n}\n\n/**\n * Log out the current user\n * @param logoutEndpoint - The endpoint to log out\n * @returns Promise with logout result\n */\nexport async function logout(\n  logoutEndpoint: string = '/api/logout'\n): Promise<boolean> {\n  try {\n    const response = await fetch(logoutEndpoint, {\n      method: 'POST',\n      credentials: 'include',\n      headers: {\n        'Content-Type': 'application/json'\n      }\n    });\n    \n    if (response.ok) {\n      // Clear local storage\n      localStorage.removeItem('authenticated');\n      localStorage.removeItem('username');\n      return true;\n    }\n    return false;\n  } catch (error) {\n    console.error('Logout failed:', error);\n    return false;\n  }\n}\n\n/**\n * Store authentication state in localStorage\n * @param authenticated - Whether the user is authenticated\n * @param username - The username of the authenticated user\n */\nexport function storeAuthState(authenticated: boolean, username?: string): void {\n  if (authenticated) {\n    localStorage.setItem('authenticated', 'true');\n    if (username) {\n      localStorage.setItem('username', username);\n    }\n  } else {\n    localStorage.removeItem('authenticated');\n    localStorage.removeItem('username');\n  }\n}\n\n/**\n * Get stored authentication state\n * @returns The stored authentication state\n */\nexport function getStoredAuthState(): { authenticated: boolean; username?: string } {\n  const authenticated = localStorage.getItem('authenticated') === 'true';\n  const username = localStorage.getItem('username') || undefined;\n  return { authenticated, username };\n}\n\n/**\n * Make an authenticated API request\n * @param url - The URL to request\n * @param options - Fetch options\n * @returns Promise with the response\n */\nexport async function authenticatedFetch(\n  url: string,\n  options: RequestInit = {}\n): Promise<Response> {\n  return fetch(url, {\n    ...options,\n    credentials: 'include',\n    headers: {\n      'Content-Type': 'application/json',\n      ...options.headers\n    }\n  });\n}\n\n/**\n * Make an authenticated API request and parse JSON\n * @param url - The URL to request\n * @param options - Fetch options\n * @returns Promise with the parsed JSON data\n */\nexport async function authenticatedRequest<T = any>(\n  url: string,\n  options: RequestInit = {}\n): Promise<T> {\n  const response = await authenticatedFetch(url, options);\n  \n  if (!response.ok) {\n    throw new Error(`API request failed: ${response.status} ${response.statusText}`);\n  }\n  \n  return response.json();\n}","import React, { useState, useEffect } from 'react';\nimport { Navigate } from 'react-router-dom';\nimport { checkAuth, storeAuthState } from '../../src/utils/auth';\n\ninterface ProtectedRouteProps {\n  children: React.ReactNode;\n  loginPath?: string;\n  authEndpoint?: string;\n  loadingComponent?: React.ReactNode;\n}\n\n/**\n * Protected route component that checks authentication before rendering children\n * Redirects to login page if not authenticated\n */\nexport function ProtectedRoute({ \n  children, \n  loginPath = '/login',\n  authEndpoint = '/api/auth/check',\n  loadingComponent\n}: ProtectedRouteProps) {\n  const [isAuthenticated, setIsAuthenticated] = useState<boolean | null>(null);\n  const [checkComplete, setCheckComplete] = useState(false);\n\n  useEffect(() => {\n    const performAuthCheck = async () => {\n      try {\n        const result = await checkAuth(authEndpoint);\n        setIsAuthenticated(result.authenticated);\n        storeAuthState(result.authenticated, result.username);\n      } catch (error) {\n        console.error('Auth check failed:', error);\n        setIsAuthenticated(false);\n        storeAuthState(false);\n      } finally {\n        setCheckComplete(true);\n      }\n    };\n\n    performAuthCheck();\n  }, [authEndpoint]);\n\n  // Show loading state while checking authentication\n  if (!checkComplete) {\n    return loadingComponent || (\n      <div className=\"min-h-screen flex items-center justify-center bg-gray-50\">\n        <div className=\"text-center\">\n          <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-primary mx-auto\"></div>\n          <p className=\"mt-4 text-sm text-gray-600\">Checking authentication...</p>\n        </div>\n      </div>\n    );\n  }\n\n  // Redirect to login if not authenticated\n  if (!isAuthenticated) {\n    return <Navigate to={loginPath} replace />;\n  }\n\n  // Render protected content\n  return <>{children}</>;\n}\n\nexport default ProtectedRoute;","/**\n * Confirm Dialog Component\n *\n * A styled confirmation dialog to replace browser's native confirm().\n * Supports customizable title, message, and button labels.\n */\n\nimport { useState } from 'react';\nimport {\n  Dialog,\n  DialogContent,\n  DialogHeader,\n  DialogTitle,\n  DialogDescription,\n} from './dialog';\nimport { Info, Play, Pause, Trash2, type LucideIcon } from 'lucide-react';\nimport { cn } from '../../src/utils/cn';\n\nexport type ConfirmDialogVariant = 'default' | 'destructive' | 'warning' | 'success';\n\ninterface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description: string;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: ConfirmDialogVariant;\n icon?: LucideIcon;\n onConfirm: () => void;\n onCancel?: () => void;\n loading?: boolean;\n}\n\nconst variantConfig = {\n default: {\n icon: Info,\n iconColor: 'text-blue-600',\n iconBg: 'bg-blue-50 border-blue-100',\n },\n success: {\n icon: Play,\n iconColor: 'text-emerald-600',\n iconBg: 'bg-emerald-50 border-emerald-100',\n },\n warning: {\n icon: Pause,\n iconColor: 'text-amber-600',\n iconBg: 'bg-amber-50 border-amber-100',\n },\n destructive: {\n icon: Trash2,\n iconColor: 'text-red-600',\n iconBg: 'bg-red-50 border-red-100',\n },\n};\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n variant = 'default',\n icon,\n onConfirm,\n onCancel,\n loading = false,\n}: ConfirmDialogProps) {\n const config = variantConfig[variant];\n const Icon = icon || config.icon;\n\n const handleCancel = () => {\n onCancel?.();\n onOpenChange(false);\n };\n\n const handleConfirm = () => {\n onConfirm();\n if (!loading) {\n onOpenChange(false);\n }\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-[380px] p-0 gap-0 overflow-hidden\">\n {/* Content */}\n <div className=\"px-5 pt-5 pb-4\">\n <DialogHeader className=\"space-y-2\">\n  <div className=\"flex items-center gap-3\">\n  <Icon className={cn('h-5 w-5 flex-shrink-0', config.iconColor)} />\n  <DialogTitle className=\"text-base font-semibold\">{title}</DialogTitle>\n  </div>\n  <DialogDescription className=\"text-sm text-muted-foreground leading-relaxed pl-8\">\n  {description}\n  </DialogDescription>\n </DialogHeader>\n </div>\n\n {/* Actions */}\n <div className=\"flex border-t border-border\">\n <button\n  type=\"button\"\n  onClick={handleCancel}\n  disabled={loading}\n  className=\"flex-1 px-4 py-2.5 text-sm font-medium text-muted-foreground hover:bg-muted/50 transition-colors disabled:opacity-50 border-r border-border\"\n >\n  {cancelLabel}\n </button>\n <button\n  type=\"button\"\n  onClick={handleConfirm}\n  disabled={loading}\n  className={cn(\n  'flex-1 px-4 py-2.5 text-sm font-medium transition-colors disabled:opacity-50',\n  variant === 'destructive'\n   ? 'text-red-600 hover:bg-red-50'\n   : variant === 'success'\n   ? 'text-emerald-600 hover:bg-emerald-50'\n   : variant === 'warning'\n   ? 'text-amber-600 hover:bg-amber-50'\n   : 'text-primary hover:bg-muted/50'\n  )}\n >\n  {loading ? 'Processing...' : confirmLabel}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\n/**\n * Hook to manage confirm dialog state\n */\nexport function useConfirmDialog() {\n const [state, setState] = useState<{\n open: boolean;\n title: string;\n description: string;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: ConfirmDialogVariant;\n onConfirm: () => void;\n }>({\n open: false,\n title: '',\n description: '',\n onConfirm: () => {},\n });\n\n const confirm = (options: {\n title: string;\n description: string;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: ConfirmDialogVariant;\n }): Promise<boolean> => {\n return new Promise((resolve) => {\n setState({\n ...options,\n open: true,\n onConfirm: () => {\n  resolve(true);\n  setState((prev) => ({ ...prev, open: false }));\n },\n });\n });\n };\n\n const dialogProps = {\n ...state,\n onOpenChange: (open: boolean) => {\n if (!open) {\n setState((prev) => ({ ...prev, open: false }));\n }\n },\n onCancel: () => {\n setState((prev) => ({ ...prev, open: false }));\n },\n };\n\n return { confirm, dialogProps, ConfirmDialog };\n}\n","import { useState, useEffect, useRef } from 'react';\nimport { Virtuoso, type VirtuosoHandle } from 'react-virtuoso';\nimport { Card } from '../base/card';\nimport { Button } from '../base/button';\nimport { Badge } from '../base/badge';\nimport { Alert, AlertDescription } from '../base/alert';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../base/select';\nimport { Switch } from '../base/switch';\nimport { Label } from '../base/label';\nimport { ConfirmDialog } from '../base/ConfirmDialog';\nimport {\n  Terminal, Archive, Download, Trash2, Search, Copy as CopyIcon,\n  AlertCircle, RefreshCw, ArrowUpDown, ArrowUp, ArrowDown\n} from 'lucide-react';\nimport { cn } from '../../src/utils/cn';\nimport { format } from 'date-fns';\nimport { toast } from 'sonner';\n\nexport interface LogEntry {\n  id: string;\n  timestamp: string;\n  level: 'error' | 'warn' | 'info' | 'debug' | 'verbose' | string;\n  category?: string;\n  source?: string;\n  message: string;\n  metadata?: Record<string, any>;\n}\n\ninterface PartialLogEntry {\n  id?: string;\n  timestamp?: string;\n  level?: 'error' | 'warn' | 'info' | 'debug' | 'verbose' | string;\n  category?: string;\n  source?: string;\n  message?: string;\n  metadata?: Record<string, any>;\n}\n\nexport interface LogFile {\n  filename?: string;\n  name?: string;\n  size: number;\n  modified: string;\n}\n\nexport interface LogCategory {\n  id: string;\n  label: string;\n  icon: React.ElementType;\n  description: string;\n}\n\nexport interface LogViewerProps {\n  // Data\n  logs?: LogEntry[];\n  logFiles?: LogFile[];\n\n\n  // Callbacks\n  onFetchLogs?: () => Promise<LogEntry[]>;\n  onFetchArchives?: () => Promise<LogFile[]>;\n  onClearLogs?: () => Promise<void>;\n  onExportLogs?: () => Promise<void>;\n  onDownloadArchive?: (filename: string) => void;\n  onDeleteArchive?: (filename: string) => Promise<void>;\n\n  // WebSocket handlers\n  onLogReceived?: (handler: (log: LogEntry) => void) => () => void;\n\n  // Behavior\n  autoRefreshMs?: number;\n  maxEntries?: number;\n  defaultCategory?: 'current' | 'archives' | string;\n  enableLiveUpdates?: boolean;\n  enableAutoScroll?: boolean;\n  autoScrollDefault?: boolean;\n  newestFirst?: boolean;\n\n  // Configuration\n  categories?: LogCategory[];\n  levelBadgeColors?: Record<string, string>;\n  currentLogLevel?: string;\n\n  // UI Options\n  /** Display mode: 'full' shows sidebar, 'logs' shows only live logs, 'archives' shows only archives */\n  mode?: 'full' | 'logs' | 'archives';\n  /** Show the header with title. Set to false when embedded in settings. */\n  showHeader?: boolean;\n  showCategories?: boolean;\n  showArchives?: boolean;\n  height?: string;\n  enableSearch?: boolean;\n  enableFilter?: boolean;\n  enableExport?: boolean;\n  enableClear?: boolean;\n  enableCopy?: boolean;\n\n  // Styling\n  className?: string;\n}\n\nconst defaultCategories: LogCategory[] = [\n  {\n    id: 'current',\n    label: 'Current',\n    icon: Terminal,\n    description: 'View live system logs',\n  },\n  {\n    id: 'archives',\n    label: 'Archives',\n    icon: Archive,\n    description: 'Download archived log files',\n  }\n];\n\nconst defaultLevelBadgeColors: Record<string, string> = {\n  error: 'bg-red-500 text-white',\n  warn: 'bg-amber-500 text-white',\n  info: 'bg-blue-500 text-white',\n  debug: 'bg-gray-500 text-white',\n  verbose: 'bg-gray-400 text-white'\n};\n\nconst EMPTY_LOGS: LogEntry[] = [];\nconst EMPTY_LOG_FILES: LogFile[] = [];\n\nexport function LogViewer({\n  logs: externalLogs = EMPTY_LOGS,\n  logFiles: externalLogFiles = EMPTY_LOG_FILES,\n  onFetchLogs,\n  onFetchArchives,\n  onClearLogs,\n  onExportLogs,\n  onDownloadArchive,\n  onDeleteArchive,\n  onLogReceived,\n  autoRefreshMs = 0,\n  maxEntries = 1000,\n  defaultCategory = 'current',\n  enableLiveUpdates = true,\n  enableAutoScroll = false,\n  autoScrollDefault = false,\n  newestFirst = true,\n  enableSearch = true,\n  enableFilter = true,\n  enableExport = true,\n  enableClear = true,\n  enableCopy = true,\n  categories = defaultCategories,\n  levelBadgeColors = defaultLevelBadgeColors,\n  currentLogLevel = 'info',\n  mode = 'full',\n  showHeader = true,\n  showCategories = true,\n  showArchives = true,\n  height = 'calc(100vh - 320px)',\n  className,\n}: LogViewerProps) {\n  const [logs, setLogs] = useState<LogEntry[]>(externalLogs);\n  const [filteredLogs, setFilteredLogs] = useState<LogEntry[]>([]);\n  const [logFiles, setLogFiles] = useState<LogFile[]>(externalLogFiles);\n  const [loading, setLoading] = useState(false);\n  // In 'logs' or 'archives' mode, force the category\n  const effectiveCategory = mode === 'logs' ? 'current' : mode === 'archives' ? 'archives' : defaultCategory;\n  const [activeCategory, setActiveCategory] = useState(effectiveCategory);\n  const [searchTerm, setSearchTerm] = useState('');\n  const [levelFilter, setLevelFilter] = useState<string>('all');\n  const [categoryFilter, setCategoryFilter] = useState<string>('all');\n  const [availableCategories, setAvailableCategories] = useState<string[]>([]);\n  const autoRefreshRef = useRef<NodeJS.Timeout | null>(null);\n  const [autoRefreshOn, setAutoRefreshOn] = useState(autoRefreshMs > 0);\n  const [autoScroll, setAutoScroll] = useState<boolean>(autoScrollDefault ?? false);\n  const virtuosoRef = useRef<VirtuosoHandle | null>(null);\n  const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n  const [archiveToDelete, setArchiveToDelete] = useState<string | null>(null);\n  const [archiveSortField, setArchiveSortField] = useState<'filename' | 'size' | 'modified'>('modified');\n  const [archiveSortOrder, setArchiveSortOrder] = useState<'asc' | 'desc'>('desc');\n\n  const LevelChip = ({ level }: { level: string }) => {\n    return (\n      <span className={cn(\n        'inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-semibold',\n        levelBadgeColors[level] || levelBadgeColors.info\n      )}>\n        {level.toUpperCase()}\n      </span>\n    );\n  };\n\n  // Normalize log entries\n  const normalizeLog = (log: PartialLogEntry | LogEntry): LogEntry => {\n    let { timestamp, level, message, category, source, metadata } = log;\n    const embedded = message ? message.match(/^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\s+(\\w+)\\s+\\[([^\\]]+)\\]\\s+(.*)$/) : null;\n    if (embedded) {\n      const [, tsMatch, levelMatch, sourceMatch, msgMatch] = embedded;\n      timestamp = tsMatch || timestamp;\n      level = (levelMatch || level || 'info').toLowerCase();\n      source = sourceMatch || source;\n      category = category || source;\n      message = msgMatch || message;\n    }\n    if (message && (/^\\s*Error[:\\s]/i.test(message) || /uncaught exception/i.test(message))) {\n      level = 'error';\n    }\n    const finalTimestamp = timestamp || new Date().toISOString();\n    return {\n      ...log,\n      id: log.id || `${finalTimestamp}-${Math.random().toString(36).slice(2)}`,\n      timestamp: finalTimestamp,\n      level: level || 'info',\n      message: message || '',\n      category: category || source,\n      source,\n      metadata\n    };\n  };\n\n  const enforceMax = (entries: LogEntry[]) => {\n    if (!maxEntries || entries.length <= maxEntries) return entries;\n    return entries.slice(-maxEntries);\n  };\n\n  // Coalesce stack traces\n  const coalesceStackTraces = (entries: Array<PartialLogEntry | LogEntry>): LogEntry[] => {\n    const out: LogEntry[] = [];\n    for (const e of entries) {\n      const normalized = normalizeLog(e);\n      if (/^\\s*at\\s/.test(normalized.message) && out.length > 0) {\n        const prev = out[out.length - 1];\n        if (prev) {\n          const stack = prev.metadata?.stack ? `${prev.metadata.stack}\\n${normalized.message}` : normalized.message;\n          prev.metadata = { ...(prev.metadata || {}), stack };\n        } else {\n          out.push(normalized);\n        }\n      } else {\n        out.push(normalized);\n      }\n    }\n    return out;\n  };\n\n  // Update logs from external source\n  useEffect(() => {\n    if (externalLogs.length === 0) return;\n    const normalized = coalesceStackTraces(externalLogs);\n    const sorted = normalized.sort((a, b) => {\n      const diff = new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();\n      return newestFirst ? -diff : diff;\n    });\n    setLogs(enforceMax(sorted));\n    const cats = Array.from(new Set(sorted.map(l => l.category || l.source || '').filter(Boolean))).sort();\n    setAvailableCategories(cats);\n  }, [externalLogs, maxEntries, newestFirst]);\n\n  useEffect(() => {\n    setLogFiles(externalLogFiles);\n  }, [externalLogFiles]);\n\n  // Update available categories when logs change\n  useEffect(() => {\n    const cats = Array.from(new Set(logs.map(l => (l.category || l.source || '')).filter(Boolean))).sort();\n    setAvailableCategories(cats);\n  }, [logs]);\n\n  // Filter logs\n  useEffect(() => {\n    let filtered = [...logs];\n\n    if (levelFilter !== 'all') {\n      filtered = filtered.filter(log => log.level === levelFilter);\n    }\n\n    if (categoryFilter !== 'all') {\n      filtered = filtered.filter(log => {\n        const logCategory = log.category || log.source || '';\n        return logCategory === categoryFilter;\n      });\n    }\n\n    if (searchTerm) {\n      filtered = filtered.filter(log =>\n        log.message?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n        log.category?.toLowerCase().includes(searchTerm.toLowerCase()) ||\n        JSON.stringify(log.metadata)?.toLowerCase().includes(searchTerm.toLowerCase())\n      );\n    }\n\n    setFilteredLogs(filtered);\n  }, [logs, levelFilter, categoryFilter, searchTerm]);\n\n  // Auto-scroll when enabled\n  useEffect(() => {\n    if (!autoScroll || !virtuosoRef.current || filteredLogs.length === 0) return;\n    virtuosoRef.current.scrollToIndex({ index: filteredLogs.length - 1, align: 'end' });\n  }, [filteredLogs, autoScroll]);\n\n  // Auto-refresh polling\n  useEffect(() => {\n    if (autoRefreshRef.current && (!autoRefreshOn || autoRefreshMs <= 0 || !onFetchLogs)) {\n      clearInterval(autoRefreshRef.current);\n      autoRefreshRef.current = null;\n    }\n    if (!autoRefreshOn || autoRefreshMs <= 0 || !onFetchLogs) return;\n    if (autoRefreshRef.current) clearInterval(autoRefreshRef.current);\n\n    autoRefreshRef.current = setInterval(() => {\n      onFetchLogs()\n        .then((fetched) => {\n          if (!fetched) return;\n          const normalized = coalesceStackTraces(fetched);\n          const sorted = normalized.sort((a, b) => {\n            const diff = new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();\n            return newestFirst ? -diff : diff;\n          });\n          setLogs(enforceMax(sorted));\n        })\n        .catch((err) => {\n          console.error('Auto-refresh failed:', err);\n        });\n    }, autoRefreshMs);\n\n    return () => {\n      if (autoRefreshRef.current) {\n        clearInterval(autoRefreshRef.current);\n        autoRefreshRef.current = null;\n      }\n    };\n  }, [autoRefreshOn, autoRefreshMs, onFetchLogs, maxEntries, newestFirst]);\n\n  const archivesFetchedRef = useRef(false);\n\n  // Fetch data on category changes; guard against infinite loops\n  useEffect(() => {\n    let cancelled = false;\n\n    const run = async () => {\n      if (activeCategory === 'current' && onFetchLogs) {\n        setLoading(true);\n        try {\n          const fetchedLogs = await onFetchLogs();\n          if (cancelled || !fetchedLogs) return;\n          const normalized = coalesceStackTraces(fetchedLogs);\n          const sorted = normalized.sort((a, b) => {\n            const diff = new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();\n            return newestFirst ? -diff : diff;\n          });\n          setLogs(enforceMax(sorted));\n        } catch (error) {\n          console.error('Failed to fetch logs:', error);\n        } finally {\n          if (!cancelled) setLoading(false);\n        }\n      } else if (\n        activeCategory === 'archives' &&\n        onFetchArchives &&\n        !archivesFetchedRef.current\n      ) {\n        setLoading(true);\n        try {\n          const archives = await onFetchArchives();\n          if (cancelled || !archives) return;\n          setLogFiles(archives);\n          archivesFetchedRef.current = true;\n        } catch (error) {\n          console.error('Failed to fetch archives:', error);\n        } finally {\n          if (!cancelled) setLoading(false);\n        }\n      }\n    };\n\n    run();\n    return () => {\n      cancelled = true;\n    };\n  }, [activeCategory, onFetchLogs, onFetchArchives, maxEntries, newestFirst]);\n\n  // Subscribe to log updates\n  useEffect(() => {\n    if (!onLogReceived || !enableLiveUpdates) return;\n\n    const handleLog = (raw: PartialLogEntry | LogEntry) => {\n      const log = normalizeLog(raw);\n      setLogs(prev => {\n        const currentLogs = prev || [];\n        if (/^\\s*at\\s/.test(log.message) && currentLogs.length > 0) {\n          const last = currentLogs[currentLogs.length - 1];\n          if (!last) return currentLogs;\n          const stack = last.metadata?.stack ? `${last.metadata.stack}\\n${log.message}` : log.message;\n          const merged: LogEntry = {\n            ...last,\n            metadata: { ...(last.metadata || {}), stack }\n          };\n          const next = [...currentLogs.slice(0, -1), merged];\n          return enforceMax(next);\n        }\n        const entry = { ...log, id: `${Date.now()}-${Math.random()}` };\n        const next = [...currentLogs, entry];\n        return enforceMax(next);\n      });\n    };\n\n    return onLogReceived(handleLog);\n  }, [onLogReceived, enableLiveUpdates, maxEntries]);\n\n  // Remove fetchLogs and fetchArchives functions as they cause infinite loops\n  // We'll call onFetchLogs/onFetchArchives directly in the useEffect\n\n  const handleDeleteLogs = async () => {\n    if (!onClearLogs) return;\n    try {\n      await onClearLogs();\n      setLogs([]);\n      toast.success('Logs deleted successfully');\n    } catch (error) {\n      toast.error('Failed to delete logs');\n    }\n    setDeleteDialogOpen(false);\n  };\n\n  const handleExportLogs = async () => {\n    try {\n      if (onExportLogs) {\n        await onExportLogs();\n      } else {\n        // Default export implementation\n        const text = filteredLogs.map(l => {\n          const ts = formatTimestamp(l.timestamp);\n          const src = l.category || l.source ? ` [${l.category || l.source}]` : '';\n          const head = `${ts} ${l.level.toUpperCase()}${src} ${l.message}`;\n          const stack = l.metadata?.stack ? `\\n${l.metadata.stack}` : '';\n          return head + stack;\n        }).join('\\n');\n\n        const blob = new Blob([text], { type: 'text/plain' });\n        const url = URL.createObjectURL(blob);\n        const a = document.createElement('a');\n        a.href = url;\n        a.download = `logs-${new Date().toISOString()}.txt`;\n        a.click();\n        URL.revokeObjectURL(url);\n      }\n      toast.success('Logs exported successfully');\n    } catch (error) {\n      toast.error('Failed to export logs');\n    }\n  };\n\n  const handleCopyLogs = async () => {\n    try {\n      const text = filteredLogs.map(l => {\n        const ts = formatTimestamp(l.timestamp);\n        const src = l.category || l.source ? ` [${l.category || l.source}]` : '';\n        const head = `${ts} ${l.level.toUpperCase()}${src} ${l.message}`;\n        const stack = l.metadata?.stack ? `\\n${l.metadata.stack}` : '';\n        return head + stack;\n      }).join('\\n');\n      await navigator.clipboard.writeText(text);\n      toast.success('Logs copied to clipboard');\n    } catch (error) {\n      toast.error('Failed to copy logs');\n    }\n  };\n\n  const formatTimestamp = (timestamp: string) => {\n    try {\n      const date = new Date(timestamp);\n      return format(date, 'yyyy-MM-dd HH:mm:ss.SSS');\n    } catch {\n      return timestamp;\n    }\n  };\n\n  const formatFileSize = (bytes: number) => {\n    if (bytes < 1024) return `${bytes} B`;\n    if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n    return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n  };\n\n  // Strip ANSI color codes from log messages\n  const stripAnsiCodes = (str: string): string => {\n    if (!str) return '';\n    // Remove all ANSI escape sequences\n    return str\n      .replace(/\\x1b\\[[0-9;]*m/g, '')     // Standard ANSI escape sequences\n      .replace(/\\u001b\\[[0-9;]*m/g, '')   // Unicode escape sequences\n      .replace(/\\x1b\\[[0-9;]*m/g, '')     // Octal escape sequences expressed in hex\n      .replace(/\\[[0-9;]+m/g, '')         // Bracket notation without escape\n      .replace(/\\[[\\d;]*m/g, '');         // Any remaining bracket patterns\n  };\n\n  const renderLogEntry = (log: LogEntry) => (\n    <div\n      key={log.id}\n      className=\"px-3 py-2 font-mono text-xs border-b border-gray-100 dark:border-gray-800 text-gray-800 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-900\"\n    >\n      <div className=\"flex items-start gap-2\">\n        <span className=\"text-gray-500 dark:text-gray-400 whitespace-nowrap\">\n          {formatTimestamp(log.timestamp)}\n        </span>\n        <span className=\"flex-shrink-0\"><LevelChip level={log.level} /></span>\n        {(log.category || log.source) && (\n          <span className=\"text-gray-600 dark:text-gray-400 whitespace-nowrap\">\n            [{log.category || log.source}]\n          </span>\n        )}\n        <span className=\"whitespace-pre-wrap break-all\">{stripAnsiCodes(log.message)}</span>\n      </div>\n      {log.metadata?.stack && (\n        <pre className=\"ml-[180px] whitespace-pre overflow-x-auto text-[10px] leading-snug mt-1 text-gray-500 dark:text-gray-400\">\n          {stripAnsiCodes(log.metadata.stack)}\n        </pre>\n      )}\n      {log.metadata && !log.metadata.stack && Object.keys(log.metadata).length > 0 && (\n        <div className=\"ml-[180px] mt-1 text-gray-500 dark:text-gray-400\">\n          {Object.entries(log.metadata).map(([key, value]) => (\n            <span key={key} className=\"mr-4\">\n              <span className=\"font-medium\">{key}:</span>{' '}\n              {typeof value === 'object' ? JSON.stringify(value) : String(value)}\n            </span>\n          ))}\n        </div>\n      )}\n    </div>\n  );\n\n  // Sort archives\n  const sortedArchives = [...logFiles].sort((a, b) => {\n    const aFilename = a.filename || a.name || '';\n    const bFilename = b.filename || b.name || '';\n\n    let comparison = 0;\n    switch (archiveSortField) {\n      case 'filename':\n        comparison = aFilename.localeCompare(bFilename);\n        break;\n      case 'size':\n        comparison = a.size - b.size;\n        break;\n      case 'modified':\n        comparison = new Date(a.modified).getTime() - new Date(b.modified).getTime();\n        break;\n    }\n    return archiveSortOrder === 'asc' ? comparison : -comparison;\n  });\n\n  const handleArchiveSort = (field: 'filename' | 'size' | 'modified') => {\n    if (archiveSortField === field) {\n      setArchiveSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');\n    } else {\n      setArchiveSortField(field);\n      setArchiveSortOrder('desc');\n    }\n  };\n\n  const SortIcon = ({ field }: { field: 'filename' | 'size' | 'modified' }) => {\n    if (archiveSortField !== field) {\n      return <ArrowUpDown className=\"h-3 w-3 ml-1 opacity-50\" />;\n    }\n    return archiveSortOrder === 'asc'\n      ? <ArrowUp className=\"h-3 w-3 ml-1\" />\n      : <ArrowDown className=\"h-3 w-3 ml-1\" />;\n  };\n\n  const handleDeleteArchive = async () => {\n    if (!archiveToDelete || !onDeleteArchive) return;\n    try {\n      await onDeleteArchive(archiveToDelete);\n      setLogFiles(prev => prev.filter(f => (f.filename || f.name) !== archiveToDelete));\n      toast.success('Archive deleted successfully');\n    } catch (error) {\n      toast.error('Failed to delete archive');\n    }\n    setArchiveToDelete(null);\n  };\n\n  const filteredCategories = showArchives ? categories : categories.filter(c => c.id !== 'archives');\n  const shouldShowSidebar = mode === 'full' && showCategories;\n\n  return (\n    <div className={cn('flex flex-col h-full', className)}>\n      {/* Header - only shown when showHeader is true */}\n      {showHeader && (\n        <div className=\"flex items-center justify-between mb-4 shrink-0\">\n          <div>\n            <h1 className=\"text-3xl font-bold\">Logs</h1>\n            <div className=\"text-muted-foreground flex items-center\">\n              View system logs and diagnostic information • Current level:{' '}\n              <Badge className={cn('ml-1 text-xs px-2 py-0', levelBadgeColors[currentLogLevel] || levelBadgeColors.info)}>\n                {currentLogLevel.toUpperCase()}\n              </Badge>\n            </div>\n          </div>\n          {activeCategory === 'current' && (\n            <div className=\"flex items-center gap-4\">\n              {/* Toggle switches */}\n              {autoRefreshMs > 0 && (\n                <div className=\"flex items-center gap-2\">\n                  <Switch\n                    id=\"auto-refresh\"\n                    checked={autoRefreshOn}\n                    onCheckedChange={setAutoRefreshOn}\n                  />\n                  <Label htmlFor=\"auto-refresh\" className=\"text-sm cursor-pointer\">\n                    Auto-refresh\n                  </Label>\n                </div>\n              )}\n              {enableAutoScroll && (\n                <div className=\"flex items-center gap-2\">\n                  <Switch\n                    id=\"auto-scroll\"\n                    checked={autoScroll}\n                    onCheckedChange={setAutoScroll}\n                  />\n                  <Label htmlFor=\"auto-scroll\" className=\"text-sm cursor-pointer\">\n                    Auto-scroll\n                  </Label>\n                </div>\n              )}\n\n              {/* Divider */}\n              <div className=\"h-6 w-px bg-border\" />\n\n              {/* Action buttons */}\n              {onFetchLogs && (\n                <Button variant=\"outline\" size=\"sm\" onClick={() => onFetchLogs().then((l) => l && setLogs(enforceMax(coalesceStackTraces(l))))}>\n                  <RefreshCw className=\"h-4 w-4 mr-2\" />\n                  Refresh\n                </Button>\n              )}\n              {enableCopy && (\n                <Button variant=\"outline\" size=\"sm\" onClick={handleCopyLogs}>\n                  <CopyIcon className=\"h-4 w-4 mr-2\" />\n                  Copy\n                </Button>\n              )}\n              {enableExport && (\n                <Button variant=\"outline\" size=\"sm\" onClick={handleExportLogs}>\n                  <Download className=\"h-4 w-4 mr-2\" />\n                  Export\n                </Button>\n              )}\n              {onClearLogs && enableClear && (\n                <Button variant=\"destructive\" size=\"sm\" onClick={() => setDeleteDialogOpen(true)}>\n                  <Trash2 className=\"h-4 w-4 mr-2\" />\n                  Delete\n                </Button>\n              )}\n            </div>\n          )}\n        </div>\n      )}\n\n      {/* Toolbar for embedded mode (no header) */}\n      {!showHeader && activeCategory === 'current' && (\n        <div className=\"flex items-center justify-between mb-4 shrink-0\">\n          <div className=\"flex items-center gap-4\">\n            {autoRefreshMs > 0 && (\n              <div className=\"flex items-center gap-2\">\n                <Switch\n                  id=\"auto-refresh-embedded\"\n                  checked={autoRefreshOn}\n                  onCheckedChange={setAutoRefreshOn}\n                />\n                <Label htmlFor=\"auto-refresh-embedded\" className=\"text-sm cursor-pointer\">\n                  Auto-refresh\n                </Label>\n              </div>\n            )}\n            {enableAutoScroll && (\n              <div className=\"flex items-center gap-2\">\n                <Switch\n                  id=\"auto-scroll-embedded\"\n                  checked={autoScroll}\n                  onCheckedChange={setAutoScroll}\n                />\n                <Label htmlFor=\"auto-scroll-embedded\" className=\"text-sm cursor-pointer\">\n                  Auto-scroll\n                </Label>\n              </div>\n            )}\n          </div>\n          <div className=\"flex items-center gap-2\">\n            {onFetchLogs && (\n              <Button variant=\"outline\" size=\"sm\" onClick={() => onFetchLogs().then((l) => l && setLogs(enforceMax(coalesceStackTraces(l))))}>\n                <RefreshCw className=\"h-4 w-4 mr-2\" />\n                Refresh\n              </Button>\n            )}\n            {enableCopy && (\n              <Button variant=\"outline\" size=\"sm\" onClick={handleCopyLogs}>\n                <CopyIcon className=\"h-4 w-4 mr-2\" />\n                Copy\n              </Button>\n            )}\n            {enableExport && (\n              <Button variant=\"outline\" size=\"sm\" onClick={handleExportLogs}>\n                <Download className=\"h-4 w-4 mr-2\" />\n                Export\n              </Button>\n            )}\n            {onClearLogs && enableClear && (\n              <Button variant=\"destructive\" size=\"sm\" onClick={() => setDeleteDialogOpen(true)}>\n                <Trash2 className=\"h-4 w-4 mr-2\" />\n                Delete\n              </Button>\n            )}\n          </div>\n        </div>\n      )}\n\n      <div className=\"flex gap-6 flex-1 min-h-0\">\n        {shouldShowSidebar && (\n          <Card className=\"w-64 h-fit\">\n            <div className=\"p-4\">\n              <h3 className=\"font-semibold mb-4\">Categories</h3>\n              <div className=\"space-y-1\">\n                {filteredCategories.map((category) => {\n                  const Icon = category.icon;\n                  return (\n                    <button\n                      key={category.id}\n                      onClick={() => setActiveCategory(category.id)}\n                      className={cn(\n                        \"w-full flex items-center gap-3 px-3 py-2 rounded-md text-sm transition-colors\",\n                        activeCategory === category.id\n                          ? \"bg-primary text-primary-foreground\"\n                          : \"hover:bg-muted\"\n                      )}\n                    >\n                      <Icon className=\"h-4 w-4\" />\n                      <span className=\"text-left\">{category.label}</span>\n                    </button>\n                  );\n                })}\n              </div>\n            </div>\n          </Card>\n        )}\n\n        <div className=\"flex-1 min-h-0 flex flex-col\">\n          {activeCategory === 'archives' ? (\n            <Card className=\"p-0 overflow-hidden flex-1 flex flex-col min-h-0\">\n              {/* Only show header in full mode */}\n              {mode === 'full' && (\n                <div className=\"px-6 py-4 border-b shrink-0\">\n                  <h2 className=\"text-xl font-semibold\">Log Archives</h2>\n                  <p className=\"text-sm text-muted-foreground mt-1\">\n                    Download or manage archived log files • {sortedArchives.length} file{sortedArchives.length !== 1 ? 's' : ''}\n                  </p>\n                </div>\n              )}\n              {/* File count for embedded mode */}\n              {mode !== 'full' && (\n                <div className=\"px-4 py-2 border-b shrink-0 text-sm text-muted-foreground\">\n                  {sortedArchives.length} archive{sortedArchives.length !== 1 ? 's' : ''} available\n                </div>\n              )}\n              {sortedArchives.length === 0 ? (\n                <div className=\"p-6\">\n                  <Alert>\n                    <AlertCircle className=\"h-4 w-4\" />\n                    <AlertDescription>\n                      No archived log files available\n                    </AlertDescription>\n                  </Alert>\n                </div>\n              ) : (\n                <div className=\"overflow-auto\" style={{ maxHeight: height }}>\n                  <table className=\"w-full\">\n                    <thead className=\"bg-background sticky top-0 z-10 border-b\">\n                      <tr>\n                        <th className=\"text-left px-4 py-2 font-medium text-sm\">\n                          <button\n                            className=\"flex items-center hover:text-foreground\"\n                            onClick={() => handleArchiveSort('filename')}\n                          >\n                            Name\n                            <SortIcon field=\"filename\" />\n                          </button>\n                        </th>\n                        <th className=\"text-right px-4 py-2 font-medium text-sm w-28\">\n                          <button\n                            className=\"flex items-center justify-end hover:text-foreground ml-auto\"\n                            onClick={() => handleArchiveSort('size')}\n                          >\n                            Size\n                            <SortIcon field=\"size\" />\n                          </button>\n                        </th>\n                        <th className=\"text-right px-4 py-2 font-medium text-sm w-36\">\n                          <button\n                            className=\"flex items-center justify-end hover:text-foreground ml-auto\"\n                            onClick={() => handleArchiveSort('modified')}\n                          >\n                            Modified\n                            <SortIcon field=\"modified\" />\n                          </button>\n                        </th>\n                        <th className=\"text-right px-4 py-2 font-medium text-sm w-24\">Actions</th>\n                      </tr>\n                    </thead>\n                    <tbody>\n                      {sortedArchives.map((file) => {\n                        const filename = file.filename || file.name || 'unknown';\n                        return (\n                          <tr key={filename} className=\"border-t hover:bg-muted/30\">\n                            <td className=\"px-4 py-2\">\n                              <div className=\"flex items-center gap-2\">\n                                <Archive className=\"h-4 w-4 text-muted-foreground flex-shrink-0\" />\n                                <span className=\"font-mono text-sm truncate\">{filename}</span>\n                              </div>\n                            </td>\n                            <td className=\"px-4 py-2 text-right text-sm text-muted-foreground font-mono\">\n                              {formatFileSize(file.size)}\n                            </td>\n                            <td className=\"px-4 py-2 text-right text-sm text-muted-foreground\">\n                              {format(new Date(file.modified), 'MMM d, yyyy HH:mm')}\n                            </td>\n                            <td className=\"px-4 py-2 text-right\">\n                              <div className=\"flex items-center justify-end gap-1\">\n                                {onDownloadArchive && (\n                                  <Button\n                                    size=\"sm\"\n                                    variant=\"ghost\"\n                                    className=\"h-7 w-7 p-0\"\n                                    onClick={() => onDownloadArchive(filename)}\n                                    title=\"Download\"\n                                  >\n                                    <Download className=\"h-4 w-4\" />\n                                  </Button>\n                                )}\n                                {onDeleteArchive && (\n                                  <Button\n                                    size=\"sm\"\n                                    variant=\"ghost\"\n                                    className=\"h-7 w-7 p-0 text-destructive hover:text-destructive\"\n                                    onClick={() => setArchiveToDelete(filename)}\n                                    title=\"Delete\"\n                                  >\n                                    <Trash2 className=\"h-4 w-4\" />\n                                  </Button>\n                                )}\n                              </div>\n                            </td>\n                          </tr>\n                        );\n                      })}\n                    </tbody>\n                  </table>\n                </div>\n              )}\n            </Card>\n          ) : (\n            <Card className=\"p-0 overflow-hidden flex-1 flex flex-col min-h-0\">\n              <div className=\"px-4 py-3 border-b bg-gray-50 dark:bg-gray-900 flex items-center justify-between shrink-0\">\n                <div className=\"flex items-center gap-3\">\n                  {enableFilter && (\n                    <div className=\"flex items-center gap-2\">\n                      <span className=\"text-sm text-gray-600 dark:text-gray-400\">Level:</span>\n                      <Select value={levelFilter} onValueChange={setLevelFilter}>\n                        <SelectTrigger className=\"w-36 h-8\">\n                          <SelectValue>\n                            {levelFilter === 'all' ? (\n                              <span>All Levels</span>\n                            ) : (\n                              <LevelChip level={levelFilter} />\n                            )}\n                          </SelectValue>\n                        </SelectTrigger>\n                        <SelectContent>\n                          <SelectItem value=\"all\">All Levels</SelectItem>\n                          <SelectItem value=\"error\">\n                            <LevelChip level=\"error\" />\n                          </SelectItem>\n                          <SelectItem value=\"warn\">\n                            <LevelChip level=\"warn\" />\n                          </SelectItem>\n                          <SelectItem value=\"info\">\n                            <LevelChip level=\"info\" />\n                          </SelectItem>\n                          <SelectItem value=\"debug\">\n                            <LevelChip level=\"debug\" />\n                          </SelectItem>\n                          <SelectItem value=\"verbose\">\n                            <LevelChip level=\"verbose\" />\n                          </SelectItem>\n                        </SelectContent>\n                      </Select>\n                    </div>\n                  )}\n\n                  {enableFilter && availableCategories.length > 0 && (\n                    <Select value={categoryFilter} onValueChange={setCategoryFilter}>\n                      <SelectTrigger className=\"w-44 h-8\">\n                        <SelectValue />\n                      </SelectTrigger>\n                      <SelectContent>\n                        <SelectItem value=\"all\">All Categories</SelectItem>\n                        {availableCategories.map(cat => (\n                          <SelectItem key={cat} value={cat}>{cat}</SelectItem>\n                        ))}\n                      </SelectContent>\n                    </Select>\n                  )}\n\n                  {enableSearch && (\n                    <div className=\"relative\">\n                      <Search className=\"absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\n                      <input\n                        type=\"text\"\n                        placeholder=\"Search logs...\"\n                        value={searchTerm}\n                        onChange={(e) => setSearchTerm(e.target.value)}\n                        className=\"pl-8 pr-3 py-1.5 text-sm border rounded-md w-64 focus:outline-none focus:ring-2 focus:ring-primary\"\n                      />\n                    </div>\n                  )}\n                </div>\n              </div>\n\n              <div className={cn('bg-white dark:bg-gray-900 flex-1 min-h-0')} style={{ height: height !== '100%' ? height : undefined }}>\n                {loading ? (\n                  <div className=\"flex items-center justify-center h-full\">\n                    <div className=\"h-8 w-8 rounded-full border-2 border-gray-300 border-t-transparent animate-spin\" />\n                  </div>\n                ) : filteredLogs.length === 0 ? (\n                  <div className=\"flex items-center justify-center h-full text-gray-400\">\n                    <div className=\"text-center\">\n                      <Terminal className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n                      <p>No logs to display</p>\n                      <p className=\"text-xs mt-1\">Logs will appear here as they are generated</p>\n                    </div>\n                  </div>\n                ) : (\n                  <Virtuoso\n                    ref={virtuosoRef}\n                    data={filteredLogs}\n                    followOutput={autoScroll ? 'smooth' : false}\n                    overscan={200}\n                    itemContent={(_, log) => renderLogEntry(log)}\n                    style={{ height: '100%' }}\n                  />\n                )}\n              </div>\n\n              <div className=\"border-t bg-muted/50 px-4 py-2 flex justify-between items-center shrink-0\">\n                <div className=\"text-sm text-muted-foreground\">\n                  {filteredLogs.length} {filteredLogs.length === 1 ? 'line' : 'lines'}\n                </div>\n              </div>\n            </Card>\n          )}\n        </div>\n      </div>\n\n      {/* Delete logs confirmation dialog */}\n      <ConfirmDialog\n        open={deleteDialogOpen}\n        onOpenChange={setDeleteDialogOpen}\n        title=\"Delete Logs\"\n        description=\"Are you sure you want to delete all logs? This action cannot be undone.\"\n        confirmLabel=\"Delete\"\n        variant=\"destructive\"\n        onConfirm={handleDeleteLogs}\n      />\n\n      {/* Delete archive confirmation dialog */}\n      <ConfirmDialog\n        open={!!archiveToDelete}\n        onOpenChange={(open) => !open && setArchiveToDelete(null)}\n        title=\"Delete Archive\"\n        description={`Are you sure you want to delete \"${archiveToDelete}\"? This action cannot be undone.`}\n        confirmLabel=\"Delete\"\n        variant=\"destructive\"\n        onConfirm={handleDeleteArchive}\n      />\n    </div>\n  );\n}\n","/**\n * API Request Utility\n * Standardized fetch wrapper with error handling and type safety\n */\n\nexport interface ApiResponse<T = any> {\n  success: boolean;\n  data?: T;\n  error?: string;\n  message?: string;\n  details?: string[];\n}\n\nexport interface ApiRequestOptions extends RequestInit {\n  timeout?: number;\n  retries?: number;\n  retryDelay?: number;\n}\n\nexport class ApiError extends Error {\n  public status: number;\n  public details?: string[];\n  \n  constructor(message: string, status: number, details?: string[]) {\n    super(message);\n    this.name = 'ApiError';\n    this.status = status;\n    this.details = details;\n  }\n}\n\n/**\n * Get the API base URL based on environment\n */\nfunction getApiBaseUrl(): string {\n  // Check for environment variable\n  const env = (import.meta as unknown as { env?: Record<string, string> }).env;\n  if (env?.VITE_API_URL) {\n    return env.VITE_API_URL;\n  }\n  \n  // Default to relative URL for same-origin requests\n  return '';\n}\n\n/**\n * Make an API request with standardized error handling\n */\nexport async function apiRequest<T = any>(\n  endpoint: string,\n  options: ApiRequestOptions = {}\n): Promise<T> {\n  const {\n    timeout = 30000,\n    retries = 0,\n    retryDelay = 1000,\n    ...fetchOptions\n  } = options;\n  \n  const baseUrl = getApiBaseUrl();\n  const url = `${baseUrl}${endpoint}`;\n  \n  // Default headers\n  const headers = new Headers(fetchOptions.headers);\n  if (!headers.has('Content-Type') && fetchOptions.body && typeof fetchOptions.body === 'string') {\n    headers.set('Content-Type', 'application/json');\n  }\n  \n  // Create abort controller for timeout\n  const controller = new AbortController();\n  const timeoutId = setTimeout(() => controller.abort(), timeout);\n  \n  let lastError: Error | null = null;\n  \n  // Attempt request with retries\n  for (let attempt = 0; attempt <= retries; attempt++) {\n    try {\n      const response = await fetch(url, {\n        ...fetchOptions,\n        headers,\n        signal: controller.signal\n      });\n      \n      clearTimeout(timeoutId);\n      \n      // Parse response\n      const contentType = response.headers.get('content-type');\n      let data: any;\n      \n      if (contentType?.includes('application/json')) {\n        data = await response.json();\n      } else {\n        data = await response.text();\n      }\n      \n      // Check for API response format\n      if (typeof data === 'object' && 'success' in data) {\n        const apiResponse = data as ApiResponse<T> & Record<string, any>;\n        \n        if (!apiResponse.success) {\n          throw new ApiError(\n            apiResponse.error || apiResponse.message || 'Request failed',\n            response.status,\n            apiResponse.details\n          );\n        }\n\n        const inferred =\n          apiResponse.data ??\n          apiResponse.logs ??\n          apiResponse.files ??\n          apiResponse.entries ??\n          apiResponse.items ??\n          apiResponse;\n        \n        return inferred as T;\n      }\n      \n      // Handle non-standard responses\n      if (!response.ok) {\n        throw new ApiError(\n          data.message || data.error || `HTTP ${response.status}`,\n          response.status\n        );\n      }\n      \n      return data as T;\n      \n    } catch (error) {\n      lastError = error as Error;\n      \n      // Don't retry on certain errors\n      if (error instanceof ApiError && error.status < 500) {\n        throw error;\n      }\n      \n      if (error instanceof Error && error.name === 'AbortError') {\n        throw new ApiError('Request timeout', 408);\n      }\n      \n      // Wait before retry\n      if (attempt < retries) {\n        await new Promise(resolve => setTimeout(resolve, retryDelay * (attempt + 1)));\n      }\n    }\n  }\n  \n  clearTimeout(timeoutId);\n  \n  // All retries failed\n  throw lastError || new ApiError('Request failed', 500);\n}\n\n/**\n * Convenience methods for common HTTP verbs\n */\nexport const api = {\n  get<T = any>(endpoint: string, options?: ApiRequestOptions): Promise<T> {\n    return apiRequest<T>(endpoint, { ...options, method: 'GET' });\n  },\n  \n  post<T = any>(endpoint: string, body?: any, options?: ApiRequestOptions): Promise<T> {\n    return apiRequest<T>(endpoint, {\n      ...options,\n      method: 'POST',\n      body: typeof body === 'string' ? body : JSON.stringify(body)\n    });\n  },\n  \n  put<T = any>(endpoint: string, body?: any, options?: ApiRequestOptions): Promise<T> {\n    return apiRequest<T>(endpoint, {\n      ...options,\n      method: 'PUT',\n      body: typeof body === 'string' ? body : JSON.stringify(body)\n    });\n  },\n  \n  patch<T = any>(endpoint: string, body?: any, options?: ApiRequestOptions): Promise<T> {\n    return apiRequest<T>(endpoint, {\n      ...options,\n      method: 'PATCH',\n      body: typeof body === 'string' ? body : JSON.stringify(body)\n    });\n  },\n  \n  delete<T = any>(endpoint: string, options?: ApiRequestOptions): Promise<T> {\n    return apiRequest<T>(endpoint, { ...options, method: 'DELETE' });\n  }\n};\n\n/**\n * Hook for API requests with loading and error states (for React)\n */\nexport function useApiRequest<T = any>() {\n  const [loading, setLoading] = React.useState(false);\n  const [error, setError] = React.useState<ApiError | null>(null);\n  const [data, setData] = React.useState<T | null>(null);\n  \n  const execute = React.useCallback(async (\n    endpoint: string,\n    options?: ApiRequestOptions\n  ): Promise<T | null> => {\n    setLoading(true);\n    setError(null);\n    \n    try {\n      const result = await apiRequest<T>(endpoint, options);\n      setData(result);\n      return result;\n    } catch (err) {\n      const apiError = err instanceof ApiError ? err : new ApiError(\n        (err as Error).message,\n        500\n      );\n      setError(apiError);\n      return null;\n    } finally {\n      setLoading(false);\n    }\n  }, []);\n  \n  return { execute, loading, error, data };\n}\n\n// Add React import for hook\nimport * as React from 'react';\n\nexport default api;\n","import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Archive, Database, RefreshCw, TerminalSquare } from 'lucide-react';\nimport { LogViewer, LogEntry, LogFile } from './LogViewer';\nimport { Badge } from '../base/badge';\nimport { Button } from '../base/button';\nimport { Card, CardContent, CardHeader, CardTitle } from '../base/card';\nimport { cn } from '../../src/utils/cn';\nimport { apiRequest } from '../../src/utils/apiRequest';\nimport { toast } from 'sonner';\n\nexport interface LogsPageStats {\n  totalSize: number;\n  totalSizeFormatted?: string;\n  fileCount: number;\n}\n\nexport interface LogsPageProps {\n  apiUrl?: string;\n  eyebrow?: string;\n  title?: string;\n  description?: string;\n  compactAfterDays?: number;\n  autoRefreshMs?: number;\n  className?: string;\n  viewerClassName?: string;\n}\n\n/**\n * Opinionated logs page for active apps.\n * Uses the shared logs router contract and wraps LogViewer with support stats\n * and maintenance actions rather than leaving each app to rebuild the shell.\n */\nexport function LogsPage({\n  apiUrl = '/api/logs',\n  eyebrow = 'Support',\n  title = 'Logs',\n  description = 'Operational logs, archive management, and release-support diagnostics.',\n  compactAfterDays = 7,\n  autoRefreshMs = 3000,\n  className,\n  viewerClassName,\n}: LogsPageProps) {\n  const [logs, setLogs] = useState<LogEntry[]>([]);\n  const [archives, setArchives] = useState<LogFile[]>([]);\n  const [stats, setStats] = useState<LogsPageStats | null>(null);\n  const [maintenanceAction, setMaintenanceAction] = useState<'compact' | 'cleanup' | null>(null);\n\n  const fetchLogs = useCallback(async (): Promise<LogEntry[]> => {\n    try {\n      const entries = await apiRequest<LogEntry[]>(`${apiUrl}/entries`);\n      setLogs(entries);\n      return entries;\n    } catch (error) {\n      console.warn('Failed to fetch logs:', error);\n      setLogs([]);\n      return [];\n    }\n  }, [apiUrl]);\n\n  const fetchArchives = useCallback(async (): Promise<LogFile[]> => {\n    try {\n      const files = await apiRequest<LogFile[]>(`${apiUrl}/files`);\n      const normalizedFiles = files.map((file) => ({\n        ...file,\n        filename: file.filename || file.name,\n        name: file.name || file.filename,\n      }));\n      setArchives(normalizedFiles);\n      return normalizedFiles;\n    } catch (error) {\n      console.warn('Failed to fetch archives:', error);\n      setArchives([]);\n      return [];\n    }\n  }, [apiUrl]);\n\n  const fetchStats = useCallback(async (): Promise<LogsPageStats | null> => {\n    try {\n      const response = await apiRequest<{ stats?: LogsPageStats }>(`${apiUrl}/stats`);\n      const nextStats = response?.stats || null;\n      setStats(nextStats);\n      return nextStats;\n    } catch (error) {\n      console.warn('Failed to fetch log stats:', error);\n      setStats(null);\n      return null;\n    }\n  }, [apiUrl]);\n\n  const refreshSupportData = useCallback(async () => {\n    await Promise.all([fetchLogs(), fetchArchives(), fetchStats()]);\n  }, [fetchArchives, fetchLogs, fetchStats]);\n\n  useEffect(() => {\n    void refreshSupportData();\n  }, [refreshSupportData]);\n\n  const runMaintenanceAction = useCallback(\n    async (\n      action: 'compact' | 'cleanup',\n      endpoint: string,\n      body: Record<string, unknown> | undefined,\n      successFallback: string,\n    ) => {\n      setMaintenanceAction(action);\n      try {\n        const response = await apiRequest<{ message?: string }>(endpoint, {\n          method: 'POST',\n          ...(body ? { body: JSON.stringify(body) } : {}),\n        });\n        toast.success(response.message || successFallback);\n        await refreshSupportData();\n      } catch (error) {\n        toast.error(error instanceof Error ? error.message : 'Failed to update log maintenance state');\n      } finally {\n        setMaintenanceAction(null);\n      }\n    },\n    [refreshSupportData],\n  );\n\n  const newestArchiveLabel = useMemo(() => {\n    if (!archives.length) {\n      return 'No archived files yet';\n    }\n    return archives[0]?.modified || 'Unknown';\n  }, [archives]);\n\n  return (\n    <div className={cn('space-y-6', className)}>\n      <div className=\"space-y-2\">\n        <p className=\"text-xs font-semibold uppercase tracking-[0.24em] text-muted-foreground\">{eyebrow}</p>\n        <div className=\"flex flex-col gap-3 md:flex-row md:items-end md:justify-between\">\n          <div className=\"space-y-1\">\n            <h1 className=\"text-3xl font-bold tracking-tight\">{title}</h1>\n            <p className=\"max-w-3xl text-sm text-muted-foreground\">{description}</p>\n          </div>\n          <Badge variant=\"secondary\">{`${stats?.fileCount ?? archives.length} files`}</Badge>\n        </div>\n      </div>\n\n      <div className=\"grid gap-4 lg:grid-cols-3\">\n        <Card className=\"border-border/60 bg-card/80 shadow-sm\">\n          <CardHeader className=\"space-y-3\">\n            <div className=\"flex items-center justify-between\">\n              <CardTitle className=\"text-base\">Live Stream</CardTitle>\n              <div className=\"rounded-xl border border-border/70 bg-background/70 p-3 shadow-sm\">\n                <TerminalSquare className=\"h-4 w-4 text-muted-foreground\" />\n              </div>\n            </div>\n            <Badge variant=\"outline\" className=\"w-fit\">\n              {autoRefreshMs > 0 ? 'Auto-refreshing' : 'Manual refresh'}\n            </Badge>\n          </CardHeader>\n          <CardContent className=\"space-y-2 text-sm text-muted-foreground\">\n            <p className=\"text-2xl font-semibold text-foreground\" data-testid=\"logs-live-count\">\n              {logs.length}\n            </p>\n            <p>Recent entries visible in the in-app viewer.</p>\n          </CardContent>\n        </Card>\n\n        <Card className=\"border-border/60 bg-card/80 shadow-sm\">\n          <CardHeader className=\"space-y-3\">\n            <div className=\"flex items-center justify-between\">\n              <CardTitle className=\"text-base\">Archive Footprint</CardTitle>\n              <div className=\"rounded-xl border border-border/70 bg-background/70 p-3 shadow-sm\">\n                <Database className=\"h-4 w-4 text-muted-foreground\" />\n              </div>\n            </div>\n            <Badge variant=\"secondary\" className=\"w-fit\" data-testid=\"logs-file-count\">\n              {stats?.fileCount ?? archives.length} files\n            </Badge>\n          </CardHeader>\n          <CardContent className=\"space-y-2 text-sm text-muted-foreground\">\n            <p className=\"text-2xl font-semibold text-foreground\" data-testid=\"logs-total-size\">\n              {stats?.totalSizeFormatted ?? '0 B'}\n            </p>\n            <p>Most recent archive update: {newestArchiveLabel}</p>\n          </CardContent>\n        </Card>\n\n        <Card className=\"border-border/60 bg-card/80 shadow-sm\">\n          <CardHeader className=\"space-y-3\">\n            <div className=\"flex items-center justify-between\">\n              <CardTitle className=\"text-base\">Maintenance</CardTitle>\n              <div className=\"rounded-xl border border-border/70 bg-background/70 p-3 shadow-sm\">\n                <Archive className=\"h-4 w-4 text-muted-foreground\" />\n              </div>\n            </div>\n            <Badge variant=\"outline\" className=\"w-fit\">\n              Support Actions\n            </Badge>\n          </CardHeader>\n          <CardContent className=\"flex flex-wrap gap-2\">\n            <Button\n              type=\"button\"\n              variant=\"outline\"\n              onClick={() => {\n                void refreshSupportData();\n              }}\n            >\n              <RefreshCw className=\"mr-2 h-4 w-4\" />\n              Refresh\n            </Button>\n            <Button\n              type=\"button\"\n              variant=\"outline\"\n              onClick={() => {\n                void runMaintenanceAction(\n                  'compact',\n                  `${apiUrl}/compact`,\n                  { days: compactAfterDays },\n                  `Archived logs older than ${compactAfterDays} days`,\n                );\n              }}\n              disabled={maintenanceAction !== null}\n            >\n              {maintenanceAction === 'compact' ? 'Archiving…' : 'Archive older logs'}\n            </Button>\n            <Button\n              type=\"button\"\n              variant=\"outline\"\n              onClick={() => {\n                void runMaintenanceAction(\n                  'cleanup',\n                  `${apiUrl}/cleanup-zero`,\n                  undefined,\n                  'Cleaned up zero-length log files',\n                );\n              }}\n              disabled={maintenanceAction !== null}\n            >\n              {maintenanceAction === 'cleanup' ? 'Cleaning…' : 'Cleanup zero-length'}\n            </Button>\n          </CardContent>\n        </Card>\n      </div>\n\n      <div className=\"min-h-[34rem] rounded-xl border border-border/60 bg-card/80 p-4 shadow-sm\">\n        <LogViewer\n          logs={logs}\n          logFiles={archives}\n          showHeader={false}\n          enableSearch\n          enableFilter\n          enableExport\n          enableClear\n          enableAutoScroll\n          autoRefreshMs={autoRefreshMs}\n          onFetchLogs={fetchLogs}\n          onFetchArchives={fetchArchives}\n          onClearLogs={async () => {\n            await apiRequest(`${apiUrl}/clear`, { method: 'POST' });\n            setLogs([]);\n            toast.success('Logs cleared');\n          }}\n          onExportLogs={async () => {\n            const text = await apiRequest<string>(`${apiUrl}/export?level=all`);\n            const blob = new Blob([text], { type: 'text/plain' });\n            const url = URL.createObjectURL(blob);\n            const anchor = document.createElement('a');\n            anchor.href = url;\n            anchor.download = `logs-${new Date().toISOString()}.txt`;\n            anchor.click();\n            URL.revokeObjectURL(url);\n          }}\n          onDownloadArchive={(filename) => {\n            window.open(`${apiUrl}/download/${encodeURIComponent(filename)}`, '_blank', 'noopener,noreferrer');\n          }}\n          onDeleteArchive={async (filename) => {\n            await apiRequest(`${apiUrl}/archive/${encodeURIComponent(filename)}`, { method: 'DELETE' });\n            toast.success(`Deleted ${filename}`);\n            await refreshSupportData();\n          }}\n          height=\"100%\"\n          className={cn('h-full', viewerClassName)}\n        />\n      </div>\n    </div>\n  );\n}\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Utility for merging Tailwind CSS classes\n */\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n","import { useEffect, useState } from 'react';\nimport { Alert, AlertDescription } from '../../components/base/alert';\nimport { Button } from '../../components/base/button';\nimport { AlertCircle, RefreshCw, X } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\ninterface RestartBannerProps {\n  show: boolean;\n  onRestart?: () => void;\n  onDismiss?: () => void;\n  className?: string;\n}\n\nexport function RestartBanner({ \n  show, \n  onRestart, \n  onDismiss,\n  className \n}: RestartBannerProps) {\n  const [isVisible, setIsVisible] = useState(show);\n  const [isAnimating, setIsAnimating] = useState(false);\n\n  useEffect(() => {\n    if (show) {\n      setIsVisible(true);\n      setTimeout(() => setIsAnimating(true), 10);\n    } else {\n      setIsAnimating(false);\n      setTimeout(() => setIsVisible(false), 300);\n    }\n  }, [show]);\n\n  if (!isVisible) return null;\n\n  return (\n    <div \n      className={cn(\n        \"fixed top-0 left-0 right-0 z-50 transition-all duration-300 ease-in-out\",\n        isAnimating ? \"translate-y-0 opacity-100\" : \"-translate-y-full opacity-0\",\n        className\n      )}\n    >\n      <Alert className=\"rounded-none border-x-0 border-t-0 bg-amber-50 dark:bg-amber-950/50\">\n        <AlertCircle className=\"h-4 w-4 text-amber-600 dark:text-amber-400\" />\n        <AlertDescription className=\"flex items-center justify-between\">\n          <span className=\"text-amber-800 dark:text-amber-200\">\n            Configuration changes require a restart to take effect\n          </span>\n          <div className=\"flex items-center gap-2\">\n            {onRestart && (\n              <Button\n                size=\"sm\"\n                variant=\"default\"\n                onClick={onRestart}\n                className=\"bg-amber-600 hover:bg-amber-700 text-white\"\n              >\n                <RefreshCw className=\"h-3 w-3 mr-1\" />\n                Restart Now\n              </Button>\n            )}\n            {onDismiss && (\n              <Button\n                size=\"sm\"\n                variant=\"ghost\"\n                onClick={onDismiss}\n                className=\"text-amber-700 hover:text-amber-800 dark:text-amber-300 dark:hover:text-amber-200\"\n              >\n                <X className=\"h-3 w-3\" />\n              </Button>\n            )}\n          </div>\n        </AlertDescription>\n      </Alert>\n    </div>\n  );\n}\n","import { useState, ReactNode } from 'react';\nimport { Card } from '../../components/base/card';\nimport { Button } from '../../components/base/button';\nimport { Input } from '../../components/base/input';\nimport { Label } from '../../components/base/label';\nimport { Switch } from '../../components/base/switch';\nimport { \n  Select, \n  SelectContent, \n  SelectItem, \n  SelectTrigger, \n  SelectValue \n} from '../../components/base/select';\nimport { Alert, AlertDescription } from '../../components/base/alert';\nimport { RestartBanner } from '../../components/base/RestartBanner';\nimport { \n  Save, \n  RotateCcw, \n  AlertCircle, \n  Eye, \n  EyeOff\n} from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\nexport interface SettingDefinition {\n  key: string;\n  label: string;\n  description?: string;\n  type: 'text' | 'password' | 'number' | 'boolean' | 'select' | 'custom';\n  options?: Array<{ value: string; label: string }>;\n  defaultValue?: any;\n  validation?: (value: any) => string | null;\n  requiresRestart?: boolean;\n  customComponent?: ReactNode;\n  placeholder?: string;\n  min?: number;\n  max?: number;\n}\n\nexport interface SettingsCategory {\n  id: string;\n  label: string;\n  description?: string;\n  icon?: ReactNode;\n  settings: SettingDefinition[];\n}\n\nexport interface SettingsPageProps {\n  categories: SettingsCategory[];\n  values: Record<string, any>;\n  loading?: boolean;\n  saving?: boolean;\n  onSave: (values: Record<string, any>) => Promise<void>;\n  onReset?: () => void;\n  onRestart?: () => void;\n  showRestartBanner?: boolean;\n  className?: string;\n  title?: string;\n}\n\nexport function SettingsPage({\n  categories,\n  values: initialValues,\n  loading = false,\n  saving = false,\n  onSave,\n  onReset,\n  onRestart,\n  showRestartBanner = false,\n  className,\n  title = 'Settings'\n}: SettingsPageProps) {\n  const [values, setValues] = useState<Record<string, any>>(initialValues);\n  const [errors, setErrors] = useState<Record<string, string>>({});\n  const [activeCategory, setActiveCategory] = useState(categories[0]?.id || '');\n  const [showPasswords, setShowPasswords] = useState<Record<string, boolean>>({});\n  const [isDirty, setIsDirty] = useState(false);\n\n  const handleChange = (key: string, value: any) => {\n    setValues(prev => ({ ...prev, [key]: value }));\n    setIsDirty(true);\n    \n    // Validate on change\n    const setting = categories\n      .flatMap(c => c.settings)\n      .find(s => s.key === key);\n    \n    if (setting?.validation) {\n      const error = setting.validation(value);\n      setErrors(prev => ({\n        ...prev,\n        [key]: error || ''\n      }));\n    }\n  };\n\n  const handleSave = async () => {\n    // Validate all fields\n    const newErrors: Record<string, string> = {};\n    let hasErrors = false;\n    \n    categories.forEach(category => {\n      category.settings.forEach(setting => {\n        if (setting.validation) {\n          const error = setting.validation(values[setting.key]);\n          if (error) {\n            newErrors[setting.key] = error;\n            hasErrors = true;\n          }\n        }\n      });\n    });\n    \n    if (hasErrors) {\n      setErrors(newErrors);\n      return;\n    }\n    \n    await onSave(values);\n    setIsDirty(false);\n  };\n\n  const handleReset = () => {\n    setValues(initialValues);\n    setErrors({});\n    setIsDirty(false);\n    if (onReset) onReset();\n  };\n\n  const activeSettings = categories.find(c => c.id === activeCategory)?.settings || [];\n\n  const renderSettingInput = (setting: SettingDefinition) => {\n    const value = values[setting.key] ?? setting.defaultValue;\n    const error = errors[setting.key];\n    \n    switch (setting.type) {\n      case 'text':\n        return (\n          <Input\n            value={value || ''}\n            onChange={(e) => handleChange(setting.key, e.target.value)}\n            placeholder={setting.placeholder}\n            className={error ? 'border-red-500' : ''}\n          />\n        );\n        \n      case 'password':\n        return (\n          <div className=\"relative\">\n            <Input\n              type={showPasswords[setting.key] ? 'text' : 'password'}\n              value={value || ''}\n              onChange={(e) => handleChange(setting.key, e.target.value)}\n              placeholder={setting.placeholder}\n              className={cn('pr-10', error ? 'border-red-500' : '')}\n            />\n            <button\n              type=\"button\"\n              onClick={() => setShowPasswords(prev => ({\n                ...prev,\n                [setting.key]: !prev[setting.key]\n              }))}\n              className=\"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-700\"\n            >\n              {showPasswords[setting.key] ? \n                <EyeOff className=\"h-4 w-4\" /> : \n                <Eye className=\"h-4 w-4\" />\n              }\n            </button>\n          </div>\n        );\n        \n      case 'number':\n        return (\n          <Input\n            type=\"number\"\n            value={value || ''}\n            onChange={(e) => handleChange(setting.key, parseFloat(e.target.value))}\n            min={setting.min}\n            max={setting.max}\n            placeholder={setting.placeholder}\n            className={error ? 'border-red-500' : ''}\n          />\n        );\n        \n      case 'boolean':\n        return (\n          <Switch\n            checked={value || false}\n            onCheckedChange={(checked) => handleChange(setting.key, checked)}\n          />\n        );\n        \n      case 'select':\n        return (\n          <Select \n            value={String(value || '')} \n            onValueChange={(val) => handleChange(setting.key, val)}\n          >\n            <SelectTrigger className={error ? 'border-red-500' : ''}>\n              <SelectValue placeholder=\"Select an option\" />\n            </SelectTrigger>\n            <SelectContent>\n              {setting.options?.map(option => (\n                <SelectItem key={option.value} value={option.value}>\n                  {option.label}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        );\n        \n      case 'custom':\n        return setting.customComponent;\n        \n      default:\n        return null;\n    }\n  };\n\n  if (loading) {\n    return (\n      <div className=\"flex items-center justify-center py-8\">\n        <div className=\"text-center\">\n          <div className=\"animate-spin rounded-full h-8 w-8 border-b-2 border-primary mx-auto mb-4\" />\n          <p className=\"text-sm text-muted-foreground\">Loading settings...</p>\n        </div>\n      </div>\n    );\n  }\n\n  return (\n    <>\n      {showRestartBanner && (\n        <RestartBanner\n          show={true}\n          onRestart={onRestart}\n          onDismiss={() => {}}\n        />\n      )}\n      \n      <div className={cn(\"space-y-6\", className)}>\n        <div className=\"flex justify-between items-center\">\n          <h1 className=\"text-2xl font-bold\">{title}</h1>\n          <div className=\"flex items-center gap-2\">\n            <Button\n              variant=\"outline\"\n              size=\"sm\"\n              onClick={handleReset}\n              disabled={!isDirty || saving}\n            >\n              <RotateCcw className=\"h-4 w-4\" />\n              Reset\n            </Button>\n            <Button\n              size=\"sm\"\n              onClick={handleSave}\n              disabled={!isDirty || saving || Object.keys(errors).some(k => errors[k])}\n            >\n              {saving ? (\n                <>\n                  <div className=\"animate-spin rounded-full h-4 w-4 border-b-2 border-white\" />\n                  Saving...\n                </>\n              ) : (\n                <>\n                  <Save className=\"h-4 w-4\" />\n                  Save Changes\n                </>\n              )}\n            </Button>\n          </div>\n        </div>\n\n        <div className=\"grid grid-cols-12 gap-6\">\n          {/* Categories sidebar */}\n          <div className=\"col-span-3\">\n            <Card className=\"p-2\">\n              {categories.map(category => (\n                <button\n                  key={category.id}\n                  onClick={() => setActiveCategory(category.id)}\n                  className={cn(\n                    \"w-full text-left px-3 py-2 rounded-md transition-colors flex items-center gap-2\",\n                    activeCategory === category.id\n                      ? \"bg-primary text-primary-foreground\"\n                      : \"hover:bg-gray-100 dark:hover:bg-gray-800\"\n                  )}\n                >\n                  {category.icon}\n                  <div>\n                    <div className=\"font-medium\">{category.label}</div>\n                    {category.description && (\n                      <div className=\"text-xs opacity-70\">{category.description}</div>\n                    )}\n                  </div>\n                </button>\n              ))}\n            </Card>\n          </div>\n\n          {/* Settings form */}\n          <div className=\"col-span-9\">\n            <Card className=\"p-6\">\n              <div className=\"space-y-6\">\n                {activeSettings.map(setting => (\n                  <div key={setting.key} className=\"space-y-2\">\n                    <div className=\"flex items-center justify-between\">\n                      <Label htmlFor={setting.key}>\n                        {setting.label}\n                        {setting.requiresRestart && (\n                          <span className=\"ml-2 text-xs text-amber-600\">\n                            (Requires restart)\n                          </span>\n                        )}\n                      </Label>\n                    </div>\n                    \n                    {setting.description && (\n                      <p className=\"text-sm text-muted-foreground\">\n                        {setting.description}\n                      </p>\n                    )}\n                    \n                    {renderSettingInput(setting)}\n                    \n                    {errors[setting.key] && (\n                      <Alert variant=\"destructive\" className=\"py-2\">\n                        <AlertCircle className=\"h-4 w-4\" />\n                        <AlertDescription>{errors[setting.key]}</AlertDescription>\n                      </Alert>\n                    )}\n                  </div>\n                ))}\n              </div>\n            </Card>\n          </div>\n        </div>\n      </div>\n    </>\n  );\n}\n","import { useState, useEffect, useRef } from 'react';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components/base/tooltip';\nimport { cn } from '../../lib/utils';\n\ninterface ConnectionStatusProps {\n  url?: string;\n  className?: string;\n  checkInterval?: number;\n}\n\n/**\n * Connection status indicator with a calm, pulsing LED beacon\n * Shows WebSocket connection status between frontend and backend\n */\nexport function ConnectionStatus({ \n  url, \n  className,\n  checkInterval = 5000 \n}: ConnectionStatusProps) {\n  const [connected, setConnected] = useState(false);\n  const [checking, setChecking] = useState(true);\n  const hasInitialized = useRef(false);\n\n  useEffect(() => {\n    // Prevent double initialization in React StrictMode\n    if (hasInitialized.current) return;\n    hasInitialized.current = true;\n\n    let mounted = true;\n    \n    // Determine the API URL - use empty string for relative URLs in dev\n    const apiUrl = (url || '').replace(/\\/api\\/health\\/?$/, '');\n    \n    // Check connection by testing the API health endpoint\n    const checkConnection = async () => {\n      if (!mounted) return;\n      \n      try {\n        const response = await fetch(`${apiUrl}/api/health`, {\n          credentials: 'include'\n        });\n        if (mounted) {\n          setConnected(response.ok);\n          setChecking(false);\n        }\n      } catch (error) {\n        if (mounted) {\n          setConnected(false);\n          setChecking(false);\n        }\n      }\n    };\n\n    // Initial check\n    checkConnection();\n\n    // Set up polling\n    const interval = setInterval(checkConnection, checkInterval);\n\n    return () => {\n      mounted = false;\n      clearInterval(interval);\n      hasInitialized.current = false;\n    };\n  }, []); // Empty dependency array - set up only once\n\n  const statusColor = checking \n    ? 'bg-gray-400' \n    : connected \n      ? 'bg-green-500' \n      : 'bg-red-500';\n\n  const statusText = checking \n    ? 'Checking...' \n    : connected \n      ? 'Connected' \n      : 'Disconnected';\n\n  const tooltipContent = checking\n    ? 'Checking connection to backend API...'\n    : connected\n      ? 'Frontend is connected to the backend API via WebSockets. Real-time updates are enabled.'\n      : 'Cannot connect to the backend API. Please check if the backend server is running.';\n\n  return (\n    <TooltipProvider>\n      <Tooltip>\n        <TooltipTrigger asChild>\n          <button \n            className={cn(\n              \"inline-flex items-center gap-2 px-3 py-1 rounded-full\",\n              \"bg-foreground/5 backdrop-blur-sm\",\n              \"hover:bg-foreground/10 transition-all duration-200\",\n              \"cursor-default select-none\",\n              className\n            )}\n            type=\"button\"\n            aria-label={`Connection status: ${statusText}`}\n          >\n            <div className=\"relative flex items-center justify-center w-2 h-2\">\n              {/* Main LED */}\n              <div \n                className={cn(\n                  \"absolute w-2 h-2 rounded-full transition-all duration-300\",\n                  statusColor,\n                  connected && \"shadow-lg shadow-green-500/50\"\n                )}\n              />\n              {/* Calm ripple effect when connected */}\n              {connected && (\n                <>\n                  <div \n                    className=\"absolute w-2 h-2 rounded-full bg-green-500 opacity-75\"\n                    style={{\n                      animation: 'calm-ping 3s cubic-bezier(0, 0, 0.2, 1) infinite'\n                    }}\n                  />\n                  <div \n                    className=\"absolute w-2 h-2 rounded-full bg-green-500 opacity-50\"\n                    style={{\n                      animation: 'calm-ping 3s cubic-bezier(0, 0, 0.2, 1) infinite 1s'\n                    }}\n                  />\n                </>\n              )}\n            </div>\n            <span className=\"text-xs font-medium\">\n              {statusText}\n            </span>\n          </button>\n        </TooltipTrigger>\n        <TooltipContent side=\"bottom\" className=\"max-w-xs\">\n          <p className=\"text-sm\">{tooltipContent}</p>\n        </TooltipContent>\n      </Tooltip>\n    </TooltipProvider>\n  );\n}\n\n// Add CSS animation for the calm beacon effect\nif (typeof document !== 'undefined') {\n  const style = document.createElement('style');\n  style.textContent = `\n    @keyframes calm-ping {\n      0% {\n        transform: scale(1);\n        opacity: 0.75;\n      }\n      75%, 100% {\n        transform: scale(2.5);\n        opacity: 0;\n      }\n    }\n  `;\n  document.head.appendChild(style);\n}\n","import { useEffect, useRef, useState, useCallback } from 'react';\nimport { io, Socket, ManagerOptions, SocketOptions } from 'socket.io-client';\n\nexport interface SocketIOConfig extends Partial<ManagerOptions & SocketOptions> {\n  url?: string;\n  autoConnect?: boolean;\n  reconnection?: boolean;\n  reconnectionAttempts?: number;\n  reconnectionDelay?: number;\n  reconnectionDelayMax?: number;\n  timeout?: number;\n  transports?: string[];\n  auth?: Record<string, any>;\n  query?: Record<string, any>;\n}\n\nexport interface SocketIOState {\n  connected: boolean;\n  connecting: boolean;\n  error: Error | null;\n  retryCount: number;\n  transport: 'websocket' | 'polling' | null;\n}\n\nexport interface SocketIOActions {\n  socket: Socket | null;\n  emit: (event: string, data?: any) => void;\n  on: (event: string, handler: (data: any) => void) => void;\n  off: (event: string, handler: (data: any) => void) => void;\n  once: (event: string, handler: (data: any) => void) => void;\n  connect: () => void;\n  disconnect: () => void;\n  reconnect: () => void;\n}\n\n// Singleton manager for Socket.IO connections\nclass SocketManager {\n  private sockets: Map<string, Socket> = new Map();\n\n  getSocket(url: string, options: SocketIOConfig = {}): Socket {\n    const key = url || '/';\n    \n    if (!this.sockets.has(key)) {\n      const socket = io(url, {\n        autoConnect: false,\n        ...options\n      });\n      this.sockets.set(key, socket);\n    }\n    \n    return this.sockets.get(key)!;\n  }\n\n  removeSocket(url: string): void {\n    const key = url || '/';\n    const socket = this.sockets.get(key);\n    if (socket) {\n      socket.disconnect();\n      this.sockets.delete(key);\n    }\n  }\n}\n\nconst socketManager = new SocketManager();\n\nexport function useSocketIO(config: SocketIOConfig = {}): [SocketIOState, SocketIOActions] {\n  const {\n    url = typeof window !== 'undefined' ? window.location.origin : 'http://localhost:3001',\n    autoConnect = true,\n    reconnection = true,\n    reconnectionAttempts = Infinity,\n    reconnectionDelay = 1000,\n    reconnectionDelayMax = 5000,\n    timeout = 20000,\n    transports = ['websocket', 'polling'],\n    auth,\n    query,\n    ...otherOptions\n  } = config;\n\n  const socketRef = useRef<Socket | null>(null);\n  const eventHandlers = useRef<Map<string, Set<Function>>>(new Map());\n  const reconnectCountRef = useRef(0);\n\n  const [state, setState] = useState<SocketIOState>({\n    connected: false,\n    connecting: false,\n    error: null,\n    retryCount: 0,\n    transport: null\n  });\n\n  // Initialize socket\n  useEffect(() => {\n    const socket = socketManager.getSocket(url, {\n      reconnection,\n      reconnectionAttempts,\n      reconnectionDelay,\n      reconnectionDelayMax,\n      timeout,\n      transports,\n      auth,\n      query,\n      ...otherOptions\n    });\n\n    socketRef.current = socket;\n\n    // Setup event listeners\n    socket.on('connect', () => {\n      const t = socket.io?.engine?.transport?.name || null;\n      const transport = (t === 'websocket' || t === 'polling') ? t : null;\n      setState({\n        connected: true,\n        connecting: false,\n        error: null,\n        retryCount: reconnectCountRef.current,\n        transport\n      });\n      reconnectCountRef.current = 0;\n    });\n\n    socket.on('disconnect', (_reason) => {\n      setState(prev => ({\n        ...prev,\n        connected: false,\n        connecting: false,\n        transport: null\n      }));\n    });\n\n    socket.on('connect_error', (error) => {\n      setState(prev => ({\n        ...prev,\n        error: error as Error,\n        connecting: false\n      }));\n    });\n\n    socket.io.on('reconnect_attempt', (attemptNumber) => {\n      reconnectCountRef.current = attemptNumber;\n      setState(prev => ({\n        ...prev,\n        connecting: true,\n        retryCount: attemptNumber\n      }));\n    });\n\n    socket.io.on('reconnect', (_attemptNumber) => {\n      const t = socket.io?.engine?.transport?.name || null;\n      const transport = (t === 'websocket' || t === 'polling') ? t : null;\n      setState(prev => ({\n        ...prev,\n        connected: true,\n        connecting: false,\n        retryCount: 0,\n        transport\n      }));\n    });\n\n    socket.io.on('reconnect_failed', () => {\n      setState(prev => ({\n        ...prev,\n        error: new Error('Reconnection failed'),\n        connecting: false\n      }));\n    });\n\n    // Auto-connect if enabled\n    if (autoConnect && !socket.connected) {\n      socket.connect();\n    }\n\n    // Cleanup on unmount\n    return () => {\n      // Remove all event handlers specific to this component\n      eventHandlers.current.forEach((handlers, event) => {\n        handlers.forEach(handler => {\n          socket.off(event, handler as any);\n        });\n      });\n      eventHandlers.current.clear();\n    };\n  }, [url]); // Only recreate if URL changes\n\n  const emit = useCallback((event: string, data?: any) => {\n    if (socketRef.current) {\n      socketRef.current.emit(event, data);\n    } else {\n      console.warn('Socket is not initialized');\n    }\n  }, []);\n\n  const on = useCallback((event: string, handler: (data: any) => void) => {\n    if (socketRef.current) {\n      socketRef.current.on(event, handler);\n      \n      // Track handlers for cleanup\n      if (!eventHandlers.current.has(event)) {\n        eventHandlers.current.set(event, new Set());\n      }\n      eventHandlers.current.get(event)!.add(handler);\n    }\n  }, []);\n\n  const off = useCallback((event: string, handler: (data: any) => void) => {\n    if (socketRef.current) {\n      socketRef.current.off(event, handler);\n      \n      // Remove from tracked handlers\n      eventHandlers.current.get(event)?.delete(handler);\n    }\n  }, []);\n\n  const once = useCallback((event: string, handler: (data: any) => void) => {\n    if (socketRef.current) {\n      socketRef.current.once(event, handler);\n    }\n  }, []);\n\n  const connect = useCallback(() => {\n    if (socketRef.current && !socketRef.current.connected) {\n      setState(prev => ({ ...prev, connecting: true }));\n      socketRef.current.connect();\n    }\n  }, []);\n\n  const disconnect = useCallback(() => {\n    if (socketRef.current && socketRef.current.connected) {\n      socketRef.current.disconnect();\n    }\n  }, []);\n\n  const reconnect = useCallback(() => {\n    if (socketRef.current) {\n      reconnectCountRef.current = 0;\n      socketRef.current.disconnect();\n      socketRef.current.connect();\n    }\n  }, []);\n\n  const actions: SocketIOActions = {\n    socket: socketRef.current,\n    emit,\n    on,\n    off,\n    once,\n    connect,\n    disconnect,\n    reconnect\n  };\n\n  return [state, actions];\n}\n\n// Export singleton socket manager for advanced use cases\nexport { socketManager };\n","import { useEffect, useState, useRef } from 'react';\nimport { Loader2, Circle, AlertTriangle, RefreshCw } from 'lucide-react';\nimport { useSocketIO } from '../../src/hooks/useSocketIO';\nimport { socketManager } from '../../src/hooks/useSocketIO';\n\ninterface ConnectionLostOverlayProps {\n  isConnected: boolean;\n  appName?: string;\n  onRetry?: () => void;\n}\n\nexport function ConnectionLostOverlay({ \n  isConnected, \n  appName = 'the application',\n  onRetry \n}: ConnectionLostOverlayProps) {\n  const [showOverlay, setShowOverlay] = useState(false);\n  const [retryCount, setRetryCount] = useState(0);\n  const [isRetrying, setIsRetrying] = useState(false);\n  useSocketIO();\n  const retryTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n  const showTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n  useEffect(() => {\n    // Show overlay when disconnected, hide when connected\n    if (!isConnected) {\n      // Delay showing overlay briefly to avoid flicker on quick reconnects\n      showTimeoutRef.current = setTimeout(() => {\n        setShowOverlay(true);\n      }, 1000);\n      return () => {\n        if (showTimeoutRef.current) {\n          clearTimeout(showTimeoutRef.current);\n        }\n      };\n    } else {\n      setShowOverlay(false);\n      setRetryCount(0);\n      setIsRetrying(false);\n      // Clear any pending retries\n      if (retryTimeoutRef.current) {\n        clearTimeout(retryTimeoutRef.current);\n        retryTimeoutRef.current = null;\n      }\n      if (showTimeoutRef.current) {\n        clearTimeout(showTimeoutRef.current);\n        showTimeoutRef.current = null;\n      }\n    }\n    return undefined;\n  }, [isConnected]);\n\n  // Improved auto-retry logic\n  useEffect(() => {\n    if (showOverlay && !isRetrying && !isConnected) {\n      retryTimeoutRef.current = setTimeout(() => {\n        handleRetry();\n      }, 5000); // Retry every 5 seconds\n\n      return () => {\n        if (retryTimeoutRef.current) {\n          clearTimeout(retryTimeoutRef.current);\n          retryTimeoutRef.current = null;\n        }\n      };\n    }\n    return undefined;\n  }, [showOverlay, isRetrying, isConnected]);\n\n  const handleRetry = () => {\n    setIsRetrying(true);\n    setRetryCount(prev => prev + 1);\n    \n    // Try the custom retry handler first\n    if (onRetry) {\n      onRetry();\n      // Give it time to reconnect\n      setTimeout(() => {\n        setIsRetrying(false);\n      }, 3000);\n    } else {\n      // Use socket manager to reconnect\n      const socket = socketManager.getSocket('/');\n      if (socket) {\n        if (socket.disconnected) {\n          socket.connect();\n        }\n        // Check if we're actually reconnecting\n        setTimeout(() => {\n          if (socket.connected) {\n            setIsRetrying(false);\n          } else {\n            setIsRetrying(false);\n            // If still not connected after many retries, show a more serious error\n            if (retryCount > 10) {\n              console.error('Failed to reconnect after multiple attempts');\n            }\n          }\n        }, 3000);\n      } else {\n        // No socket available, reset retry state\n        setIsRetrying(false);\n      }\n    }\n  };\n\n  const handleManualRetry = () => {\n    // Clear any pending auto-retry\n    if (retryTimeoutRef.current) {\n      clearTimeout(retryTimeoutRef.current);\n      retryTimeoutRef.current = null;\n    }\n    handleRetry();\n  };\n\n  const handleRefreshPage = () => {\n    window.location.reload();\n  };\n\n  if (!showOverlay) return null;\n\n  return (\n    <div className=\"fixed inset-0 z-[9999] bg-black/90 backdrop-blur-sm animate-in fade-in duration-300\">\n      <div className=\"flex h-full w-full items-center justify-center p-4\">\n        <div className=\"relative max-w-md w-full\">\n          {/* Main content card */}\n          <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow-2xl p-8 text-center\">\n            {/* Icon - circle like the header beacon */}\n            <div className=\"mb-6 flex justify-center\">\n              <div className=\"relative\" data-testid=\"connection-icon\">\n                <div className=\"absolute inset-0 animate-ping\">\n                  <Circle className=\"h-16 w-16 text-red-500/30\" fill=\"currentColor\" />\n                </div>\n                <Circle className=\"h-16 w-16 text-red-500\" fill=\"currentColor\" />\n              </div>\n            </div>\n\n            {/* Title */}\n            <h2 className=\"text-2xl font-bold text-gray-900 dark:text-gray-100 mb-2\">\n              Connection Lost\n            </h2>\n\n            {/* Description */}\n            <p className=\"text-gray-600 dark:text-gray-400 mb-6\">\n              Unable to connect to the backend server. This usually means the server has stopped or is restarting.\n            </p>\n\n            {/* Status indicator */}\n            <div className=\"mb-6 flex items-center justify-center gap-2 text-sm\">\n              {isRetrying ? (\n                <>\n                  <Loader2 className=\"h-4 w-4 animate-spin text-blue-500\" />\n                  <span className=\"text-blue-600 dark:text-blue-400\">\n                    Attempting to reconnect...\n                  </span>\n                </>\n              ) : (\n                <>\n                  <AlertTriangle className=\"h-4 w-4 text-yellow-500\" />\n                  <span className=\"text-gray-600 dark:text-gray-400\">\n                    {retryCount === 0 \n                      ? 'Connection lost'\n                      : `Retry attempt #${retryCount} - will retry automatically`\n                    }\n                  </span>\n                </>\n              )}\n            </div>\n\n            {/* Action buttons */}\n            <div className=\"flex gap-3 justify-center\">\n              <button\n                onClick={handleManualRetry}\n                disabled={isRetrying}\n                className=\"inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 disabled:bg-blue-400 text-white rounded-lg font-medium transition-colors disabled:cursor-not-allowed\"\n              >\n                <RefreshCw className={`h-4 w-4 ${isRetrying ? 'animate-spin' : ''}`} />\n                Retry Now\n              </button>\n              \n              {retryCount > 5 && (\n                <button\n                  onClick={handleRefreshPage}\n                  className=\"inline-flex items-center gap-2 px-4 py-2 bg-gray-600 hover:bg-gray-700 text-white rounded-lg font-medium transition-colors\"\n                >\n                  <RefreshCw className=\"h-4 w-4\" />\n                  Refresh Page\n                </button>\n              )}\n            </div>\n\n            {/* Help text */}\n            <div className=\"mt-6 pt-6 border-t border-gray-200 dark:border-gray-700\">\n              <p className=\"text-xs text-gray-500 dark:text-gray-500\">\n                {retryCount > 5 \n                  ? 'Connection issues persist. The server may be down.'\n                  : 'If this problem persists, try:'\n                }\n              </p>\n              <ul className=\"mt-2 text-xs text-gray-500 dark:text-gray-500 space-y-1\">\n                <li>• Checking if the backend server is running</li>\n                <li>• Restarting {appName}</li>\n                <li>• Checking the console for error messages</li>\n                {retryCount > 5 && (\n                  <li className=\"text-orange-500\">• Consider refreshing the page if retries continue to fail</li>\n                )}\n              </ul>\n            </div>\n          </div>\n\n          {/* Decorative background elements */}\n          <div className=\"absolute -top-4 -left-4 w-24 h-24 bg-red-500/10 rounded-full blur-2xl\" />\n          <div className=\"absolute -bottom-4 -right-4 w-32 h-32 bg-red-500/10 rounded-full blur-3xl\" />\n        </div>\n      </div>\n    </div>\n  );\n}","import { useState, useEffect } from 'react';\nimport { RefreshCw } from 'lucide-react';\n\ninterface ConnectionOverlayProps {\n  isConnected: boolean;\n  onRetry: () => void;\n}\n\nexport function ConnectionOverlay({ isConnected, onRetry }: ConnectionOverlayProps): JSX.Element | null {\n  const [isRetrying, setIsRetrying] = useState(false);\n  const [retryAttempts, setRetryAttempts] = useState(0);\n\n  useEffect(() => {\n    if (isConnected) {\n      setIsRetrying(false);\n      setRetryAttempts(0);\n    }\n  }, [isConnected]);\n\n  useEffect(() => {\n    if (!isConnected && !isRetrying) {\n      // Auto-retry every 5 seconds\n      const timer = setTimeout(() => {\n        handleRetry();\n      }, 5000);\n      return () => clearTimeout(timer);\n    }\n    return undefined;\n  }, [isConnected, isRetrying, retryAttempts]);\n\n  const handleRetry = () => {\n    setIsRetrying(true);\n    setRetryAttempts(prev => prev + 1);\n\n    // Simulate retry attempt\n    setTimeout(() => {\n      setIsRetrying(false);\n      onRetry();\n    }, 2000);\n  };\n\n  if (isConnected) return null;\n\n  return (\n    <div className=\"fixed inset-0 z-[99999] bg-black/90 backdrop-blur-sm animate-in fade-in duration-300\">\n      <div className=\"flex h-full w-full items-center justify-center p-4\">\n        <div className=\"relative max-w-md w-full\">\n          <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow-2xl p-8 text-center\">\n            {/* Smaller beacon */}\n            <div className=\"mb-6 flex justify-center\">\n              <div className=\"relative\">\n                <div className=\"absolute inset-0 animate-ping\">\n                  <div className=\"h-12 w-12 rounded-full bg-red-500/30\" />\n                </div>\n                <div className=\"h-12 w-12 rounded-full bg-red-500 flex items-center justify-center\">\n                  <div className=\"h-8 w-8 rounded-full bg-red-600\" />\n                </div>\n              </div>\n            </div>\n\n            <h2 className=\"text-2xl font-bold text-gray-900 dark:text-gray-100 mb-2\">\n              Connection Lost\n            </h2>\n\n            <p className=\"text-gray-600 dark:text-gray-400 mb-6\">\n              Unable to connect to the application server. The app may be restarting.\n            </p>\n\n            <div className=\"mb-6\">\n              <div className=\"text-sm text-gray-500 dark:text-gray-400\">\n                Will retry automatically in a few seconds\n              </div>\n            </div>\n\n            <button\n              onClick={handleRetry}\n              disabled={isRetrying}\n              className=\"inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 disabled:bg-blue-400 text-white rounded-lg font-medium transition-colors disabled:cursor-not-allowed\"\n            >\n              {isRetrying ? (\n                <>\n                  <RefreshCw className=\"h-4 w-4 animate-spin\" />\n                  Reconnecting...\n                </>\n              ) : (\n                <>\n                  <RefreshCw className=\"h-4 w-4\" />\n                  Retry Now\n                </>\n              )}\n            </button>\n          </div>\n\n          {/* Background decorations */}\n          <div className=\"absolute -top-4 -left-4 w-24 h-24 bg-red-500/10 rounded-full blur-2xl\" />\n          <div className=\"absolute -bottom-4 -right-4 w-32 h-32 bg-red-500/10 rounded-full blur-3xl\" />\n        </div>\n      </div>\n    </div>\n  );\n}\n","\nexport interface ConnectionStatusBannerProps {\n  connected: boolean;\n  connecting: boolean;\n  transport: 'websocket' | 'polling' | null;\n  apiReady?: boolean;\n}\n\n/**\n * Enhanced connection status banner that shows different states:\n * - Green: WebSocket connected (optimal)\n * - Blue: Polling connected (HTTP/2 fallback, fully functional)\n * - Yellow: Connecting/reconnecting\n * - Hidden: Disconnected (handled by ConnectionLostOverlay)\n */\nexport function ConnectionStatusBanner({ \n  connected, \n  connecting, \n  transport, \n  apiReady = true \n}: ConnectionStatusBannerProps) {\n  if (!apiReady) return null;\n\n  // Show polling status (HTTP/2 fallback)\n  if (connected && transport === 'polling') {\n    return (\n      <div className=\"bg-blue-50 border-b border-blue-200 px-4 py-2\">\n        <div className=\"flex items-center gap-2 text-sm text-blue-800\">\n          <div className=\"w-2 h-2 bg-blue-500 rounded-full animate-pulse\"></div>\n          <span>Connected via polling - Real-time updates active</span>\n          <span className=\"text-xs text-blue-600\">(WebSocket unavailable due to HTTP/2)</span>\n        </div>\n      </div>\n    );\n  }\n\n  // Show connecting status\n  if (connecting) {\n    return (\n      <div className=\"bg-yellow-50 border-b border-yellow-200 px-4 py-2\">\n        <div className=\"flex items-center gap-2 text-sm text-yellow-800\">\n          <div className=\"w-2 h-2 bg-yellow-500 rounded-full animate-pulse\"></div>\n          <span>Reconnecting...</span>\n        </div>\n      </div>\n    );\n  }\n\n  // WebSocket connected (optimal) - no banner needed, handled by AppShell\n  // Disconnected - handled by ConnectionLostOverlay\n  return null;\n}\n","import { useState, useEffect } from 'react';\nimport { Card } from '../../components/base/card';\nimport { Badge } from '../../components/base/badge';\nimport { Button } from '../../components/base/button';\nimport { Switch } from '../../components/base/switch';\nimport { Label } from '../../components/base/label';\nimport { Alert, AlertDescription } from '../../components/base/alert';\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogHeader,\n  DialogTitle,\n  DialogFooter,\n} from '../../components/base/dialog';\n\nimport { \n  AlertTriangle, Settings, Zap, Clock, WifiOff, \n  Activity, X, RotateCcw \n} from 'lucide-react';\nimport { cn } from '../../lib/utils';\n// Note: Apps using this component should provide their own config store\n// Uncomment and adjust the import path as needed:\n// import { useConfigStore } from '@/lib/stores/config';\nimport { toast } from 'sonner';\n\ninterface TestScenario {\n  id: string;\n  name: string;\n  description: string;\n  icon: React.ElementType;\n  color: string;\n  params: Record<string, unknown>;\n}\n\nconst TEST_SCENARIOS: TestScenario[] = [\n  {\n    id: 'packet-loss',\n    name: 'Packet Loss',\n    description: 'Randomly drop packets to simulate network issues',\n    icon: WifiOff,\n    color: 'text-red-500',\n    params: {\n      dropRate: 10, // percentage\n    }\n  },\n  {\n    id: 'high-latency',\n    name: 'High Latency',\n    description: 'Add delay to responses to simulate slow networks',\n    icon: Clock,\n    color: 'text-orange-500',\n    params: {\n      delayMs: 300,\n      jitter: 50\n    }\n  },\n  {\n    id: 'connection-errors',\n    name: 'Connection Errors',\n    description: 'Periodically reject connections',\n    icon: X,\n    color: 'text-red-600',\n    params: {\n      errorRate: 5, // percentage\n      errorCode: 'ECONNREFUSED'\n    }\n  },\n  {\n    id: 'data-corruption',\n    name: 'Data Corruption',\n    description: 'Corrupt response data to test error handling',\n    icon: AlertTriangle,\n    color: 'text-yellow-500',\n    params: {\n      corruptionRate: 2, // percentage\n      corruptionType: 'crc' // crc, truncate, scramble\n    }\n  },\n  {\n    id: 'rate-limiting',\n    name: 'Rate Limiting',\n    description: 'Limit request rate to test throttling',\n    icon: Zap,\n    color: 'text-blue-500',\n    params: {\n      maxRequestsPerSecond: 10,\n      burstSize: 20\n    }\n  },\n  {\n    id: 'intermittent',\n    name: 'Intermittent Issues',\n    description: 'Random mix of various issues',\n    icon: Activity,\n    color: 'text-purple-500',\n    params: {\n      intensity: 'medium' // low, medium, high\n    }\n  }\n];\n\ninterface TestModeIndicatorProps {\n  config?: any; // App-specific config object\n  className?: string;\n}\n\nexport function TestModeIndicator({ config }: TestModeIndicatorProps = {}) {\n  // const { config } = useConfigStore();\n  const [showSettings, setShowSettings] = useState(false);\n  const [testModeEnabled, setTestModeEnabled] = useState(false);\n  const [activeScenarios, setActiveScenarios] = useState<string[]>([]);\n\n  useEffect(() => {\n    // Load test mode state from config\n    const testMode = config?.testMode?.enabled;\n    const scenarios = config?.testMode?.scenarios || [];\n    \n    setTestModeEnabled(testMode === true);\n    setActiveScenarios(scenarios);\n  }, [config]);\n\n  const handleTestModeToggle = async (enabled: boolean) => {\n    setTestModeEnabled(enabled);\n    // Note: Uncomment when config store is available\n    // await config.setValue('testMode.enabled', enabled);\n    \n    if (enabled) {\n      toast.warning('Test Mode Enabled', {\n        description: 'Error simulation is now active. This may affect system stability.',\n      });\n    } else {\n      toast.success('Test Mode Disabled', {\n        description: 'System returned to normal operation.',\n      });\n    }\n  };\n\n  const handleScenarioToggle = (scenarioId: string, enabled: boolean) => {\n    if (enabled) {\n      setActiveScenarios([...activeScenarios, scenarioId]);\n    } else {\n      setActiveScenarios(activeScenarios.filter(s => s !== scenarioId));\n    }\n  };\n\n\n  const saveSettings = async () => {\n    // Note: Uncomment when config store is available\n    // await config.setValue('testMode.scenarios', activeScenarios);\n    // await config.setValue('testMode.params', scenarioParams);\n    setShowSettings(false);\n    toast.success('Test mode settings saved');\n  };\n\n  const resetSettings = () => {\n    setActiveScenarios([]);\n    toast.info('Test scenarios reset');\n  };\n\n  if (!testModeEnabled && !showSettings) {\n    return null;\n  }\n\n  return (\n    <>\n      {/* Test Mode Banner */}\n      {testModeEnabled && (\n        <div className=\"fixed top-0 left-0 right-0 z-50 bg-gradient-to-r from-orange-500 to-red-500 text-white shadow-lg\">\n          <div className=\"container mx-auto px-4 py-2\">\n            <div className=\"flex items-center justify-between\">\n              <div className=\"flex items-center gap-3\">\n                <AlertTriangle className=\"h-5 w-5 animate-pulse\" />\n                <span className=\"font-semibold\">TEST MODE ACTIVE</span>\n                <div className=\"flex items-center gap-2\">\n                  {activeScenarios.map(scenarioId => {\n                    const scenario = TEST_SCENARIOS.find(s => s.id === scenarioId);\n                    if (!scenario) return null;\n                    const Icon = scenario.icon;\n                    return (\n                      <Badge \n                        key={scenarioId} \n                        variant=\"secondary\" \n                        className=\"bg-white/20 text-white border-white/30\"\n                      >\n                        <Icon className=\"h-3 w-3 mr-1\" />\n                        {scenario.name}\n                      </Badge>\n                    );\n                  })}\n                  {activeScenarios.length === 0 && (\n                    <Badge variant=\"secondary\" className=\"bg-white/20 text-white border-white/30\">\n                      No scenarios active\n                    </Badge>\n                  )}\n                </div>\n              </div>\n              <div className=\"flex items-center gap-2\">\n                <Button\n                  size=\"sm\"\n                  variant=\"ghost\"\n                  className=\"text-white hover:bg-white/20\"\n                  onClick={() => setShowSettings(true)}\n                >\n                  <Settings className=\"h-4 w-4 mr-2\" />\n                  Configure\n                </Button>\n                <Button\n                  size=\"sm\"\n                  variant=\"ghost\"\n                  className=\"text-white hover:bg-white/20\"\n                  onClick={() => handleTestModeToggle(false)}\n                >\n                  <X className=\"h-4 w-4\" />\n                </Button>\n              </div>\n            </div>\n          </div>\n        </div>\n      )}\n\n      {/* Settings Dialog */}\n      <Dialog open={showSettings} onOpenChange={setShowSettings}>\n        <DialogContent className=\"max-w-3xl max-h-[80vh] overflow-y-auto\">\n          <DialogHeader>\n            <DialogTitle>Test Mode Configuration</DialogTitle>\n            <DialogDescription>\n              Configure error simulation scenarios for testing system resilience.\n            </DialogDescription>\n          </DialogHeader>\n\n          <div className=\"space-y-6 py-4\">\n            {/* Master Switch */}\n            <div className=\"flex items-center justify-between p-4 border rounded-lg\">\n              <div>\n                <Label htmlFor=\"test-mode-master\" className=\"text-base font-semibold\">\n                  Enable Test Mode\n                </Label>\n                <p className=\"text-sm text-muted-foreground\">\n                  Activate error simulation for testing\n                </p>\n              </div>\n              <Switch\n                id=\"test-mode-master\"\n                checked={testModeEnabled}\n                onCheckedChange={handleTestModeToggle}\n              />\n            </div>\n\n            {testModeEnabled && (\n              <>\n                <Alert>\n                  <AlertTriangle className=\"h-4 w-4\" />\n                  <AlertDescription>\n                    Test mode simulates real-world network and system issues. \n                    Use with caution in production environments.\n                  </AlertDescription>\n                </Alert>\n\n                {/* Scenarios */}\n                <div className=\"space-y-4\">\n                  <h3 className=\"font-semibold\">Error Scenarios</h3>\n                  {TEST_SCENARIOS.map(scenario => {\n                    const Icon = scenario.icon;\n                    const isActive = activeScenarios.includes(scenario.id);\n                    \n                    return (\n                      <Card key={scenario.id} className=\"p-4\">\n                        <div className=\"space-y-4\">\n                          <div className=\"flex items-start justify-between\">\n                            <div className=\"flex items-start gap-3\">\n                              <Icon className={cn(\"h-5 w-5 mt-0.5\", scenario.color)} />\n                              <div>\n                                <h4 className=\"font-medium\">{scenario.name}</h4>\n                                <p className=\"text-sm text-muted-foreground\">\n                                  {scenario.description}\n                                </p>\n                              </div>\n                            </div>\n                            <Switch\n                              checked={isActive}\n                              onCheckedChange={(checked) => handleScenarioToggle(scenario.id, checked)}\n                            />\n                          </div>\n                          \n                          {isActive && (\n                            <div className=\"ml-8 space-y-3 pt-2 border-t\">\n                              <p className=\"text-sm text-muted-foreground\">\n                                Parameter controls will be available in a future update\n                              </p>\n                              {/* Commented out until Slider component is added\n                              {scenario.id === 'high-latency' && (\n                                <>\n                                  <div>\n                                    <Label>Delay: {params.delayMs}ms</Label>\n                                    <Slider\n                                      value={[params.delayMs]}\n                                      onValueChange={([v]) => handleParamChange(scenario.id, 'delayMs', v)}\n                                      min={0}\n                                      max={2000}\n                                      step={50}\n                                      className=\"mt-2\"\n                                    />\n                                  </div>\n                                  <div>\n                                    <Label>Jitter: {params.jitter}ms</Label>\n                                    <Slider\n                                      value={[params.jitter]}\n                                      onValueChange={([v]) => handleParamChange(scenario.id, 'jitter', v)}\n                                      min={0}\n                                      max={200}\n                                      step={10}\n                                      className=\"mt-2\"\n                                    />\n                                  </div>\n                                </>\n                              )}\n                              \n                              {scenario.id === 'connection-errors' && (\n                                <div>\n                                  <Label>Error Rate: {params.errorRate}%</Label>\n                                  <Slider\n                                    value={[params.errorRate]}\n                                    onValueChange={([v]) => handleParamChange(scenario.id, 'errorRate', v)}\n                                    min={0}\n                                    max={25}\n                                    step={1}\n                                    className=\"mt-2\"\n                                  />\n                                </div>\n                              )}\n                              \n                              {scenario.id === 'data-corruption' && (\n                                <>\n                                  <div>\n                                    <Label>Corruption Rate: {params.corruptionRate}%</Label>\n                                    <Slider\n                                      value={[params.corruptionRate]}\n                                      onValueChange={([v]) => handleParamChange(scenario.id, 'corruptionRate', v)}\n                                      min={0}\n                                      max={10}\n                                      step={1}\n                                      className=\"mt-2\"\n                                    />\n                                  </div>\n                                  <div>\n                                    <Label>Corruption Type</Label>\n                                    <Select\n                                      value={params.corruptionType}\n                                      onValueChange={(v) => handleParamChange(scenario.id, 'corruptionType', v)}\n                                    >\n                                      <SelectTrigger className=\"mt-2\">\n                                        <SelectValue />\n                                      </SelectTrigger>\n                                      <SelectContent>\n                                        <SelectItem value=\"crc\">CRC Error</SelectItem>\n                                        <SelectItem value=\"truncate\">Truncated Data</SelectItem>\n                                        <SelectItem value=\"scramble\">Scrambled Bytes</SelectItem>\n                                      </SelectContent>\n                                    </Select>\n                                  </div>\n                                </>\n                              )}\n                              \n                              {scenario.id === 'rate-limiting' && (\n                                <div>\n                                  <Label>Max Requests/sec: {params.maxRequestsPerSecond}</Label>\n                                  <Slider\n                                    value={[params.maxRequestsPerSecond]}\n                                    onValueChange={([v]) => handleParamChange(scenario.id, 'maxRequestsPerSecond', v)}\n                                    min={1}\n                                    max={100}\n                                    step={5}\n                                    className=\"mt-2\"\n                                  />\n                                </div>\n                              )}\n                              \n                              {scenario.id === 'intermittent' && (\n                                <div>\n                                  <Label>Intensity</Label>\n                                  <Select\n                                    value={params.intensity}\n                                    onValueChange={(v) => handleParamChange(scenario.id, 'intensity', v)}\n                                  >\n                                    <SelectTrigger className=\"mt-2\">\n                                      <SelectValue />\n                                    </SelectTrigger>\n                                    <SelectContent>\n                                      <SelectItem value=\"low\">Low (occasional issues)</SelectItem>\n                                      <SelectItem value=\"medium\">Medium (frequent issues)</SelectItem>\n                                      <SelectItem value=\"high\">High (constant issues)</SelectItem>\n                                    </SelectContent>\n                                  </Select>\n                                </div>\n                              )}\n                              */}\n                            </div>\n                          )}\n                        </div>\n                      </Card>\n                    );\n                  })}\n                </div>\n              </>\n            )}\n          </div>\n\n          <DialogFooter>\n            <Button variant=\"outline\" onClick={resetSettings}>\n              <RotateCcw className=\"h-4 w-4 mr-2\" />\n              Reset\n            </Button>\n            <Button onClick={saveSettings}>\n              Save Settings\n            </Button>\n          </DialogFooter>\n        </DialogContent>\n      </Dialog>\n    </>\n  );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Wifi, WifiOff, Activity, Clock, Server, AlertCircle, RotateCcw } from 'lucide-react';\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from '../../components/base/popover';\nimport { Badge } from '../../components/base/badge';\nimport { Button } from '../../components/base/button';\nimport { Separator } from '../../components/base/separator';\nimport { cn } from '../../lib/utils';\n\ninterface ConnectionIndicatorProps {\n  connected: boolean;\n  connecting: boolean;\n  error: Error | null;\n  retryCount: number;\n  onRetry?: () => void;\n  className?: string;\n}\n\nexport function ConnectionIndicator({\n  connected,\n  connecting,\n  error,\n  retryCount,\n  onRetry,\n  className = ''\n}: ConnectionIndicatorProps) {\n  const [connectionTime, setConnectionTime] = useState<Date | null>(null);\n  const [uptime, setUptime] = useState<string>('');\n\n  useEffect(() => {\n    if (connected && !connectionTime) {\n      setConnectionTime(new Date());\n    } else if (!connected) {\n      setConnectionTime(null);\n      setUptime('');\n    }\n  }, [connected, connectionTime]);\n\n  useEffect(() => {\n    if (!connectionTime) return;\n\n    const interval = setInterval(() => {\n      const now = new Date();\n      const diff = now.getTime() - connectionTime.getTime();\n      const hours = Math.floor(diff / 3600000);\n      const minutes = Math.floor((diff % 3600000) / 60000);\n      const seconds = Math.floor((diff % 60000) / 1000);\n      \n      if (hours > 0) {\n        setUptime(`${hours}h ${minutes}m`);\n      } else if (minutes > 0) {\n        setUptime(`${minutes}m ${seconds}s`);\n      } else {\n        setUptime(`${seconds}s`);\n      }\n    }, 1000);\n\n    return () => clearInterval(interval);\n  }, [connectionTime]);\n\n  const getStatusColor = () => {\n    if (connected) return 'bg-green-500';\n    if (connecting) return 'bg-yellow-500';\n    if (error) return 'bg-red-500';\n    return 'bg-gray-500';\n  };\n\n  const getStatusText = () => {\n    if (connected) return 'Connected';\n    if (connecting) {\n      const retryText = retryCount > 0 ? ` (${retryCount})` : '';\n      return `Connecting${retryText}`;\n    }\n    if (error) return 'Error';\n    return 'Disconnected';\n  };\n  \n  const getStatusIcon = () => {\n    if (connected) return Wifi;\n    if (error) return AlertCircle;\n    return WifiOff;\n  };\n\n  return (\n    <Popover>\n      <PopoverTrigger asChild>\n        <Button\n          variant=\"ghost\"\n          size=\"sm\"\n          className={cn(\n            \"flex items-center gap-2 px-3 py-1 h-8 rounded-full\",\n            \"bg-gray-800 hover:bg-gray-700 text-white\",\n            \"transition-all duration-200\",\n            error && \"bg-red-900 hover:bg-red-800\",\n            connecting && \"bg-yellow-900 hover:bg-yellow-800\",\n            connected && \"bg-green-900 hover:bg-green-800\",\n            className\n          )}\n        >\n          <div className=\"relative flex items-center\">\n            {React.createElement(getStatusIcon(), {\n              className: cn(\n                \"w-4 h-4\",\n                connected ? \"text-green-400\" : \n                connecting ? \"text-yellow-400\" :\n                error ? \"text-red-400\" : \"text-gray-400\"\n              )\n            })}\n            <div className={cn(\n              \"absolute -top-1 -right-1 w-2 h-2 rounded-full\",\n              getStatusColor(),\n              (connected || connecting) && \"animate-pulse\"\n            )} />\n          </div>\n          <span className=\"text-sm font-medium\">{getStatusText()}</span>\n        </Button>\n      </PopoverTrigger>\n      \n      <PopoverContent className=\"w-80\" align=\"end\">\n        <div className=\"space-y-3\">\n          <div className=\"flex items-center justify-between\">\n            <h3 className=\"font-semibold\">WebSocket Connection</h3>\n            <Badge \n              variant={connected ? \"default\" : \"secondary\"}\n              className={cn(\n                connected ? \"bg-green-100 text-green-800\" : \"bg-gray-100 text-gray-800\"\n              )}\n            >\n              {getStatusText()}\n            </Badge>\n          </div>\n          \n          <Separator />\n          \n          <div className=\"space-y-2 text-sm\">\n            <div className=\"flex items-center justify-between\">\n              <div className=\"flex items-center gap-2 text-muted-foreground\">\n                <Server className=\"w-4 h-4\" />\n                <span>Backend API</span>\n              </div>\n              <span className=\"font-mono text-xs\">\n                {connected ? (typeof window !== 'undefined' && window.location.origin) : 'Not connected'}\n              </span>\n            </div>\n            \n            {connected && uptime && (\n              <div className=\"flex items-center justify-between\">\n                <div className=\"flex items-center gap-2 text-muted-foreground\">\n                  <Clock className=\"w-4 h-4\" />\n                  <span>Uptime</span>\n                </div>\n                <span className=\"font-mono text-xs\">{uptime}</span>\n              </div>\n            )}\n            \n            <div className=\"flex items-center justify-between\">\n              <div className=\"flex items-center gap-2 text-muted-foreground\">\n                <Activity className=\"w-4 h-4\" />\n                <span>Status</span>\n              </div>\n              <span className=\"font-mono text-xs\">\n                {connected ? 'Real-time updates active' : \n                 connecting ? 'Establishing connection...' :\n                 error ? `Connection failed${retryCount > 0 ? ` (retry ${retryCount})` : ''}` : 'Offline'}\n              </span>\n            </div>\n            \n            {retryCount > 0 && (\n              <div className=\"flex items-center justify-between\">\n                <div className=\"flex items-center gap-2 text-muted-foreground\">\n                  <RotateCcw className=\"w-4 h-4\" />\n                  <span>Retry Count</span>\n                </div>\n                <span className=\"font-mono text-xs\">{retryCount}</span>\n              </div>\n            )}\n          </div>\n          \n          {error && (\n            <>\n              <Separator />\n              <div className=\"space-y-2\">\n                <div className=\"space-y-1\">\n                  <p className=\"text-sm font-medium text-red-600\">\n                    Connection Error\n                  </p>\n                  <p className=\"text-xs text-red-600\">\n                    {error.message || 'WebSocket connection failed'}\n                  </p>\n                  {retryCount > 0 && (\n                    <p className=\"text-xs text-muted-foreground\">\n                      Retry attempt: {retryCount}\n                    </p>\n                  )}\n                </div>\n                {onRetry && (\n                  <Button\n                    size=\"sm\"\n                    variant=\"outline\"\n                    onClick={onRetry}\n                    className=\"w-full\"\n                    disabled={connecting}\n                  >\n                    <RotateCcw className={cn(\"h-4 w-4 mr-2\", connecting && \"animate-spin\")} />\n                    {connecting ? 'Connecting...' : 'Retry Connection'}\n                  </Button>\n                )}\n              </div>\n            </>\n          )}\n          \n          <Separator />\n          \n          <div className=\"text-xs text-muted-foreground\">\n            The WebSocket connection enables real-time updates for simulators, \n            templates, and system status. Data is synchronized automatically \n            when connected.\n          </div>\n        </div>\n      </PopoverContent>\n    </Popover>\n  );\n}\n","import { \n  Gauge, \n  Sun, \n  Battery, \n  Thermometer, \n  Zap, \n  Cpu \n} from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\ninterface DeviceIconProps {\n  category?: string;\n  className?: string;\n  size?: number;\n}\n\nexport function DeviceIcon({ \n  category, \n  className,\n  size = 32 \n}: DeviceIconProps) {\n  const iconProps = {\n    size,\n    className: cn('text-gray-400', className)\n  };\n\n  switch (category?.toLowerCase()) {\n    case 'meter':\n    case 'metering':\n      return <Gauge {...iconProps} />;\n    case 'solar':\n      return <Sun {...iconProps} />;\n    case 'battery':\n      return <Battery {...iconProps} />;\n    case 'hvac':\n      return <Thermometer {...iconProps} />;\n    case 'generator':\n      return <Zap {...iconProps} />;\n    default:\n      return <Cpu {...iconProps} />;\n  }\n}\n","\nimport { Cpu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\ninterface DogEarBadgeProps {\n  className?: string;\n  size?: 'sm' | 'md' | 'lg';\n  icon?: React.ReactNode;\n  color?: 'purple' | 'blue' | 'green' | 'red' | 'amber';\n}\n\nexport function DogEarBadge({ \n  className, \n  size = 'md',\n  icon,\n  color = 'purple'\n}: DogEarBadgeProps) {\n  const sizeClasses = {\n    sm: 'w-8 h-8',\n    md: 'w-12 h-12',\n    lg: 'w-16 h-16'\n  };\n\n  const iconSizes = {\n    sm: 12,\n    md: 16,\n    lg: 20\n  };\n\n  const colorGradients = {\n    purple: 'linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%)',\n    blue: 'linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)',\n    green: 'linear-gradient(135deg, #10b981 0%, #059669 100%)',\n    red: 'linear-gradient(135deg, #ef4444 0%, #dc2626 100%)',\n    amber: 'linear-gradient(135deg, #f59e0b 0%, #d97706 100%)'\n  };\n\n  return (\n    <div \n      className={cn(\n        \"absolute top-0 right-0 overflow-hidden\",\n        sizeClasses[size],\n        className\n      )}\n    >\n      {/* Triangle shape with gradient */}\n      <div \n        className=\"absolute top-0 right-0 w-full h-full\"\n        style={{\n          background: colorGradients[color],\n          clipPath: 'polygon(0 0, 100% 0, 100% 100%)',\n        }}\n      />\n      \n      {/* Icon */}\n      <div className=\"absolute top-1 right-1 text-white\">\n        {icon || <Cpu size={iconSizes[size]} />}\n      </div>\n      \n      {/* Subtle shadow for depth */}\n      <div \n        className=\"absolute top-0 right-0 w-full h-full opacity-20\"\n        style={{\n          background: 'linear-gradient(135deg, transparent 50%, rgba(0,0,0,0.2) 50%)',\n          clipPath: 'polygon(0 0, 100% 0, 100% 100%)',\n        }}\n      />\n    </div>\n  );\n}\n","\nimport { Button } from '../../components/base/button';\nimport { cn } from '../../lib/utils';\n\ninterface EmptyStateProps {\n  title: string;\n  description?: string;\n  icon?: React.ReactNode;\n  action?: {\n    label: string;\n    onClick: () => void;\n    icon?: React.ReactNode;\n  };\n  className?: string;\n}\n\nexport function EmptyState({ \n  title, \n  description, \n  icon, \n  action,\n  className \n}: EmptyStateProps) {\n  return (\n    <div className={cn(\n      \"flex flex-col items-center justify-center py-12 px-4\",\n      className\n    )}>\n      {icon && (\n        <div className=\"mb-4 text-muted-foreground\">\n          {icon}\n        </div>\n      )}\n      <h3 className=\"text-lg font-semibold mb-2\">{title}</h3>\n      {description && (\n        <p className=\"text-sm text-muted-foreground text-center max-w-md mb-4\">\n          {description}\n        </p>\n      )}\n      {action && (\n        <Button onClick={action.onClick} size=\"sm\">\n          {action.icon && <span className=\"mr-2\">{action.icon}</span>}\n          {action.label}\n        </Button>\n      )}\n    </div>\n  );\n}\n","import { AlertTriangle } from 'lucide-react';\nimport { Button } from './button';\nimport { cn } from '../../src/utils/cn';\n\nexport interface AppCrashFallbackProps {\n  title?: string;\n  description?: string;\n  error?: Error | string | null;\n  reloadLabel?: string;\n  onReload?: () => void;\n  className?: string;\n}\n\nfunction resolveDescription(error?: Error | string | null): string {\n  if (typeof error === 'string' && error.trim()) {\n    return error;\n  }\n\n  if (error instanceof Error && error.message.trim()) {\n    return error.message;\n  }\n\n  return 'An unexpected renderer error occurred.';\n}\n\nexport function AppCrashFallback({\n  title = 'Something went wrong',\n  description,\n  error,\n  reloadLabel = 'Reload Application',\n  onReload,\n  className,\n}: AppCrashFallbackProps) {\n  const detail = description ?? resolveDescription(error);\n\n  const handleReload = () => {\n    if (onReload) {\n      onReload();\n      return;\n    }\n\n    window.location.reload();\n  };\n\n  return (\n    <div className=\"min-h-screen bg-background px-6 py-10 text-foreground\">\n      <div className=\"flex min-h-[calc(100vh-5rem)] items-center justify-center\">\n        <div\n          className={cn(\n            'w-full max-w-lg rounded-2xl border border-border/70 bg-card/95 p-8 text-center shadow-xl',\n            className,\n          )}\n        >\n          <div className=\"mx-auto mb-5 flex h-14 w-14 items-center justify-center rounded-full border border-destructive/20 bg-destructive/10 text-destructive\">\n            <AlertTriangle className=\"h-7 w-7\" />\n          </div>\n\n          <h1 className=\"text-2xl font-semibold tracking-tight\">{title}</h1>\n          <p className=\"mt-3 text-sm leading-6 text-muted-foreground\">{detail}</p>\n\n          <Button className=\"mt-6 rounded-xl px-5\" onClick={handleReload}>\n            {reloadLabel}\n          </Button>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { EmptyState } from './EmptyState';\nimport { FileText, Search, Server, Plus } from 'lucide-react';\n\ninterface NoTemplatesFoundProps {\n  onCreate?: () => void;\n}\n\nexport function NoTemplatesFound({ onCreate }: NoTemplatesFoundProps) {\n  return (\n    <EmptyState\n      icon={<FileText className=\"w-12 h-12\" />}\n      title=\"No templates found\"\n      description=\"Create your first template to start simulating Modbus devices\"\n      action={onCreate ? {\n        label: \"Create Template\",\n        onClick: onCreate,\n        icon: <Plus className=\"w-4 h-4\" />\n      } : undefined}\n    />\n  );\n}\n\ninterface NoSearchResultsProps {\n  searchTerm?: string;\n  onClearFilters?: () => void;\n}\n\nexport function NoSearchResults({ searchTerm, onClearFilters }: NoSearchResultsProps) {\n  return (\n    <EmptyState\n      icon={<Search className=\"w-12 h-12\" />}\n      title=\"No results found\"\n      description={searchTerm ? `No templates match \"${searchTerm}\"` : \"Try adjusting your search or filter criteria\"}\n      action={onClearFilters ? {\n        label: \"Clear Filters\",\n        onClick: onClearFilters\n      } : undefined}\n    />\n  );\n}\n\ninterface NoSimulatorsRunningProps {\n  onNavigateToTemplates?: () => void;\n}\n\nexport function NoSimulatorsRunning({ onNavigateToTemplates }: NoSimulatorsRunningProps) {\n  return (\n    <EmptyState\n      icon={<Server className=\"w-12 h-12\" />}\n      title=\"No simulators running\"\n      description=\"Start a simulator from a template to begin testing your Modbus devices\"\n      action={onNavigateToTemplates ? {\n        label: \"Browse Templates\",\n        onClick: onNavigateToTemplates\n      } : undefined}\n    />\n  );\n}\n\n// Export all empty states as a collection\nexport const EmptyStates = {\n  NoTemplatesFound,\n  NoTemplatesMatchSearch: NoSearchResults,\n  NoSimulatorsRunning\n};\n","\nimport { Card } from '../../components/base/card';\nimport { cn } from '../../lib/utils';\n\ninterface LoadingStateProps {\n  message?: string;\n  className?: string;\n  size?: 'sm' | 'md' | 'lg';\n}\n\nexport function LoadingState({ \n  message = \"Loading...\",\n  className,\n  size = 'md'\n}: LoadingStateProps) {\n  const sizeClasses = {\n    sm: 'h-4 w-4 border',\n    md: 'h-8 w-8 border-2',\n    lg: 'h-12 w-12 border-2'\n  };\n\n  return (\n    <div className={cn(\"flex items-center justify-center py-8\", className)}>\n      <div className=\"text-center\">\n        <div className={cn(\n          \"animate-spin rounded-full border-primary mx-auto mb-4\",\n          sizeClasses[size]\n        )} />\n        <p className=\"text-sm text-muted-foreground\">{message}</p>\n      </div>\n    </div>\n  );\n}\n\nexport function CardSkeleton({ className }: { className?: string }) {\n  return (\n    <Card className={cn(\"p-6\", className)}>\n      <div className=\"animate-pulse\">\n        <div className=\"h-4 bg-muted rounded w-3/4 mb-4\" />\n        <div className=\"h-3 bg-muted rounded w-1/2 mb-2\" />\n        <div className=\"h-3 bg-muted rounded w-2/3\" />\n      </div>\n    </Card>\n  );\n}\n\nexport function TableSkeleton({ rows = 5 }: { rows?: number }) {\n  return (\n    <div className=\"w-full\">\n      <div className=\"animate-pulse\">\n        {/* Header */}\n        <div className=\"flex gap-4 pb-4 border-b\">\n          <div className=\"h-4 bg-muted rounded w-1/4\" />\n          <div className=\"h-4 bg-muted rounded w-1/3\" />\n          <div className=\"h-4 bg-muted rounded w-1/4\" />\n          <div className=\"h-4 bg-muted rounded w-1/6\" />\n        </div>\n        {/* Rows */}\n        {Array.from({ length: rows }).map((_, i) => (\n          <div key={i} className=\"flex gap-4 py-3 border-b\">\n            <div className=\"h-3 bg-muted rounded w-1/4\" />\n            <div className=\"h-3 bg-muted rounded w-1/3\" />\n            <div className=\"h-3 bg-muted rounded w-1/4\" />\n            <div className=\"h-3 bg-muted rounded w-1/6\" />\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n}\n","\nimport { HelpCircle } from 'lucide-react';\nimport {\n  Popover,\n  PopoverContent,\n  PopoverTrigger,\n} from '../../components/base/popover';\nimport { cn } from '../../lib/utils';\n\ninterface HelpTooltipProps {\n  content: string | React.ReactNode;\n  title?: string;\n  size?: 'sm' | 'md' | 'lg';\n  align?: 'start' | 'center' | 'end';\n  side?: 'top' | 'bottom' | 'left' | 'right';\n  className?: string;\n  iconClassName?: string;\n}\n\nexport function HelpTooltip({ \n  content, \n  title, \n  size = 'sm',\n  align = 'start',\n  side,\n  className,\n  iconClassName\n}: HelpTooltipProps) {\n  const iconSize = {\n    sm: 'h-4 w-4',\n    md: 'h-5 w-5',\n    lg: 'h-6 w-6'\n  }[size];\n\n  return (\n    <Popover>\n      <PopoverTrigger asChild>\n        <button\n          type=\"button\" \n          className={cn(\n            \"inline-flex items-center text-muted-foreground hover:text-foreground transition-colors\",\n            className\n          )}\n          aria-label=\"Help\"\n        >\n          <HelpCircle className={cn(iconSize, iconClassName)} />\n        </button>\n      </PopoverTrigger>\n      <PopoverContent \n        className=\"w-80 text-sm\" \n        align={align}\n        side={side}\n      >\n        {title && (\n          <div className=\"font-semibold text-foreground mb-2\">\n            {title}\n          </div>\n        )}\n        <div className=\"text-muted-foreground leading-relaxed\">\n          {content}\n        </div>\n      </PopoverContent>\n    </Popover>\n  );\n}\n","import { useState, useEffect } from 'react';\nimport { \n  Select, \n  SelectContent, \n  SelectItem, \n  SelectTrigger, \n  SelectValue \n} from '../../components/base/select';\nimport { Badge } from '../../components/base/badge';\nimport { Alert, AlertDescription } from '../../components/base/alert';\nimport { Button } from '../../components/base/button';\nimport { Wifi, Globe, Home, AlertCircle, RefreshCw } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\ninterface NetworkInterface {\n  label: string;\n  value: string;\n  description: string;\n  interface?: string;\n}\n\ninterface NetworkInfo {\n  hostname: string;\n  primaryIp: string | null;\n  interfaces: Array<{\n    name: string;\n    addresses: Array<{\n      address: string;\n      family: string;\n      internal: boolean;\n    }>;\n  }>;\n  totalInterfaces: number;\n}\n\ninterface NetworkInterfaceSelectProps {\n  value: string;\n  onChange: (value: string) => void;\n  apiUrl?: string;\n  endpoint?: string;\n  disabled?: boolean;\n  className?: string;\n  showRefresh?: boolean;\n  showNetworkInfo?: boolean;\n}\n\nexport function NetworkInterfaceSelect({ \n  value, \n  onChange, \n  apiUrl = '',\n  endpoint = '/api/system/network/interfaces',\n  disabled = false,\n  className,\n  showRefresh = true,\n  showNetworkInfo = true\n}: NetworkInterfaceSelectProps) {\n  const [interfaces, setInterfaces] = useState<NetworkInterface[]>([]);\n  const [networkInfo, setNetworkInfo] = useState<NetworkInfo | null>(null);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState<string | null>(null);\n\n  const fetchInterfaces = async () => {\n    setLoading(true);\n    setError(null);\n    \n    try {\n      const response = await fetch(`${apiUrl}${endpoint}`, {\n        credentials: 'include'\n      });\n      \n      if (!response.ok) {\n        throw new Error('Failed to fetch network interfaces');\n      }\n      \n      const data = await response.json();\n      const interfacesList = data.interfaces || [];\n      setInterfaces(interfacesList);\n      setNetworkInfo(data.networkInfo || null);\n\n      // If current value is not in the list, add it as custom\n      if (value && interfacesList.length > 0 && !interfacesList.some((i: NetworkInterface) => i.value === value)) {\n        setInterfaces(prev => [...prev, {\n          label: `Custom (${value})`,\n          value,\n          description: 'Custom IP address',\n          interface: 'custom'\n        }]);\n      }\n    } catch (err) {\n      console.error('Failed to fetch network interfaces:', err);\n      setError('Failed to load network interfaces');\n      \n      // Fallback to basic options\n      setInterfaces([\n        {\n          label: 'All interfaces (0.0.0.0)',\n          value: '0.0.0.0',\n          description: 'Accept connections from any network interface'\n        },\n        {\n          label: 'Localhost only (127.0.0.1)',\n          value: '127.0.0.1',\n          description: 'Only accept connections from this machine'\n        }\n      ]);\n      \n      // If current value is custom, add it\n      if (value && value !== '0.0.0.0' && value !== '127.0.0.1') {\n        setInterfaces(prev => [...prev, {\n          label: `Custom (${value})`,\n          value,\n          description: 'Custom IP address',\n          interface: 'custom'\n        }]);\n      }\n    } finally {\n      setLoading(false);\n    }\n  };\n\n  useEffect(() => {\n    fetchInterfaces();\n  }, [apiUrl, endpoint]);\n\n  const getIcon = (interfaceName?: string) => {\n    if (!interfaceName) return <Globe className=\"h-4 w-4\" />;\n    if (interfaceName === 'lo' || interfaceName === 'localhost') {\n      return <Home className=\"h-4 w-4\" />;\n    }\n    if (interfaceName.includes('wlan') || interfaceName.includes('wi')) {\n      return <Wifi className=\"h-4 w-4\" />;\n    }\n    return <Globe className=\"h-4 w-4\" />;\n  };\n\n  const selectedInterface = interfaces.find(i => i.value === value);\n\n  return (\n    <div className={cn(\"space-y-4\", className)}>\n      <div className=\"flex items-center gap-2\">\n        <Select value={value} onValueChange={onChange} disabled={disabled || loading}>\n          <SelectTrigger className=\"flex-1\">\n            <SelectValue placeholder=\"Select network interface\">\n              {selectedInterface && (\n                <div className=\"flex items-center gap-2\">\n                  {getIcon(selectedInterface.interface)}\n                  <span>{selectedInterface.label}</span>\n                </div>\n              )}\n            </SelectValue>\n          </SelectTrigger>\n          <SelectContent>\n            {interfaces.map((iface) => (\n              <SelectItem key={iface.value} value={iface.value}>\n                <div className=\"flex items-center gap-2\">\n                  {getIcon(iface.interface)}\n                  <div className=\"flex-1\">\n                    <div className=\"font-medium\">{iface.label}</div>\n                    <div className=\"text-xs text-muted-foreground\">\n                      {iface.description}\n                    </div>\n                  </div>\n                </div>\n              </SelectItem>\n            ))}\n          </SelectContent>\n        </Select>\n        \n        {showRefresh && (\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            onClick={fetchInterfaces}\n            disabled={loading}\n            title=\"Refresh network interfaces\"\n          >\n            <RefreshCw className={cn(\"h-4 w-4\", loading && \"animate-spin\")} />\n          </Button>\n        )}\n      </div>\n\n      {error && (\n        <Alert variant=\"destructive\">\n          <AlertCircle className=\"h-4 w-4\" />\n          <AlertDescription>{error}</AlertDescription>\n        </Alert>\n      )}\n\n      {showNetworkInfo && networkInfo && !error && (\n        <div className=\"flex flex-wrap gap-2 text-xs\">\n          <Badge variant=\"secondary\">\n            Hostname: {networkInfo.hostname}\n          </Badge>\n          {networkInfo.primaryIp && (\n            <Badge variant=\"secondary\">\n              Primary IP: {networkInfo.primaryIp}\n            </Badge>\n          )}\n          <Badge variant=\"outline\">\n            {networkInfo.totalInterfaces} interfaces detected\n          </Badge>\n        </div>\n      )}\n    </div>\n  );\n}\n","/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToJs from 'style-to-js'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n *   Tree to transform.\n * @param {Options} options\n *   Configuration (required).\n * @returns {JsxElement}\n *   JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n  if (!options || options.Fragment === undefined) {\n    throw new TypeError('Expected `Fragment` in options')\n  }\n\n  const filePath = options.filePath || undefined\n  /** @type {Create} */\n  let create\n\n  if (options.development) {\n    if (typeof options.jsxDEV !== 'function') {\n      throw new TypeError(\n        'Expected `jsxDEV` in options when `development: true`'\n      )\n    }\n\n    create = developmentCreate(filePath, options.jsxDEV)\n  } else {\n    if (typeof options.jsx !== 'function') {\n      throw new TypeError('Expected `jsx` in production options')\n    }\n\n    if (typeof options.jsxs !== 'function') {\n      throw new TypeError('Expected `jsxs` in production options')\n    }\n\n    create = productionCreate(filePath, options.jsx, options.jsxs)\n  }\n\n  /** @type {State} */\n  const state = {\n    Fragment: options.Fragment,\n    ancestors: [],\n    components: options.components || {},\n    create,\n    elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n    evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n    filePath,\n    ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n    passKeys: options.passKeys !== false,\n    passNode: options.passNode || false,\n    schema: options.space === 'svg' ? svg : html,\n    stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n    tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n  }\n\n  const result = one(state, tree, undefined)\n\n  // JSX element.\n  if (result && typeof result !== 'string') {\n    return result\n  }\n\n  // Text node or something that turned into nothing.\n  return state.create(\n    tree,\n    state.Fragment,\n    {children: result || undefined},\n    undefined\n  )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Nodes} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction one(state, node, key) {\n  if (node.type === 'element') {\n    return element(state, node, key)\n  }\n\n  if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n    return mdxExpression(state, node)\n  }\n\n  if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n    return mdxJsxElement(state, node, key)\n  }\n\n  if (node.type === 'mdxjsEsm') {\n    return mdxEsm(state, node)\n  }\n\n  if (node.type === 'root') {\n    return root(state, node, key)\n  }\n\n  if (node.type === 'text') {\n    return text(state, node)\n  }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Element} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction element(state, node, key) {\n  const parentSchema = state.schema\n  let schema = parentSchema\n\n  if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n    schema = svg\n    state.schema = schema\n  }\n\n  state.ancestors.push(node)\n\n  const type = findComponentFromName(state, node.tagName, false)\n  const props = createElementProps(state, node)\n  let children = createChildren(state, node)\n\n  if (tableElements.has(node.tagName)) {\n    children = children.filter(function (child) {\n      return typeof child === 'string' ? !whitespace(child) : true\n    })\n  }\n\n  addNode(state, props, type, node)\n  addChildren(props, children)\n\n  // Restore.\n  state.ancestors.pop()\n  state.schema = parentSchema\n\n  return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxExpression(state, node) {\n  if (node.data && node.data.estree && state.evaluater) {\n    const program = node.data.estree\n    const expression = program.body[0]\n    assert(expression.type === 'ExpressionStatement')\n\n    // Assume result is a child.\n    return /** @type {Child | undefined} */ (\n      state.evaluater.evaluateExpression(expression.expression)\n    )\n  }\n\n  crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxjsEsmHast} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxEsm(state, node) {\n  if (node.data && node.data.estree && state.evaluater) {\n    // Assume result is a child.\n    return /** @type {Child | undefined} */ (\n      state.evaluater.evaluateProgram(node.data.estree)\n    )\n  }\n\n  crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n  const parentSchema = state.schema\n  let schema = parentSchema\n\n  if (node.name === 'svg' && parentSchema.space === 'html') {\n    schema = svg\n    state.schema = schema\n  }\n\n  state.ancestors.push(node)\n\n  const type =\n    node.name === null\n      ? state.Fragment\n      : findComponentFromName(state, node.name, true)\n  const props = createJsxElementProps(state, node)\n  const children = createChildren(state, node)\n\n  addNode(state, props, type, node)\n  addChildren(props, children)\n\n  // Restore.\n  state.ancestors.pop()\n  state.schema = parentSchema\n\n  return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Root} node\n *   Current node.\n * @param {string | undefined} key\n *   Key.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction root(state, node, key) {\n  /** @type {Props} */\n  const props = {}\n\n  addChildren(props, createChildren(state, node))\n\n  return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n *   Info passed around.\n * @param {Text} node\n *   Current node.\n * @returns {Child | undefined}\n *   Child, optional.\n */\nfunction text(_, node) {\n  return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Props} props\n *   Props.\n * @param {unknown} type\n *   Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n *   Node.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addNode(state, props, type, node) {\n  // If this is swapped out for a component:\n  if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n    props.node = node\n  }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n *   Props.\n * @param {Array<Child>} children\n *   Children.\n * @returns {undefined}\n *   Nothing.\n */\nfunction addChildren(props, children) {\n  if (children.length > 0) {\n    const value = children.length > 1 ? children : children[0]\n\n    if (value) {\n      props.children = value\n    }\n  }\n}\n\n/**\n * @param {string | undefined} _\n *   Path to file.\n * @param {Jsx} jsx\n *   Dynamic.\n * @param {Jsx} jsxs\n *   Static.\n * @returns {Create}\n *   Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n  return create\n  /** @type {Create} */\n  function create(_, type, props, key) {\n    // Only an array when there are 2 or more children.\n    const isStaticChildren = Array.isArray(props.children)\n    const fn = isStaticChildren ? jsxs : jsx\n    return key ? fn(type, props, key) : fn(type, props)\n  }\n}\n\n/**\n * @param {string | undefined} filePath\n *   Path to file.\n * @param {JsxDev} jsxDEV\n *   Development.\n * @returns {Create}\n *   Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n  return create\n  /** @type {Create} */\n  function create(node, type, props, key) {\n    // Only an array when there are 2 or more children.\n    const isStaticChildren = Array.isArray(props.children)\n    const point = pointStart(node)\n    return jsxDEV(\n      type,\n      props,\n      key,\n      isStaticChildren,\n      {\n        columnNumber: point ? point.column - 1 : undefined,\n        fileName: filePath,\n        lineNumber: point ? point.line : undefined\n      },\n      undefined\n    )\n  }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Element} node\n *   Current element.\n * @returns {Props}\n *   Props.\n */\nfunction createElementProps(state, node) {\n  /** @type {Props} */\n  const props = {}\n  /** @type {string | undefined} */\n  let alignValue\n  /** @type {string} */\n  let prop\n\n  for (prop in node.properties) {\n    if (prop !== 'children' && own.call(node.properties, prop)) {\n      const result = createProperty(state, prop, node.properties[prop])\n\n      if (result) {\n        const [key, value] = result\n\n        if (\n          state.tableCellAlignToStyle &&\n          key === 'align' &&\n          typeof value === 'string' &&\n          tableCellElement.has(node.tagName)\n        ) {\n          alignValue = value\n        } else {\n          props[key] = value\n        }\n      }\n    }\n  }\n\n  if (alignValue) {\n    // Assume style is an object.\n    const style = /** @type {Style} */ (props.style || (props.style = {}))\n    style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n      alignValue\n  }\n\n  return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n *   Current JSX element.\n * @returns {Props}\n *   Props.\n */\nfunction createJsxElementProps(state, node) {\n  /** @type {Props} */\n  const props = {}\n\n  for (const attribute of node.attributes) {\n    if (attribute.type === 'mdxJsxExpressionAttribute') {\n      if (attribute.data && attribute.data.estree && state.evaluater) {\n        const program = attribute.data.estree\n        const expression = program.body[0]\n        assert(expression.type === 'ExpressionStatement')\n        const objectExpression = expression.expression\n        assert(objectExpression.type === 'ObjectExpression')\n        const property = objectExpression.properties[0]\n        assert(property.type === 'SpreadElement')\n\n        Object.assign(\n          props,\n          state.evaluater.evaluateExpression(property.argument)\n        )\n      } else {\n        crashEstree(state, node.position)\n      }\n    } else {\n      // For JSX, the author is responsible of passing in the correct values.\n      const name = attribute.name\n      /** @type {unknown} */\n      let value\n\n      if (attribute.value && typeof attribute.value === 'object') {\n        if (\n          attribute.value.data &&\n          attribute.value.data.estree &&\n          state.evaluater\n        ) {\n          const program = attribute.value.data.estree\n          const expression = program.body[0]\n          assert(expression.type === 'ExpressionStatement')\n          value = state.evaluater.evaluateExpression(expression.expression)\n        } else {\n          crashEstree(state, node.position)\n        }\n      } else {\n        value = attribute.value === null ? true : attribute.value\n      }\n\n      // Assume a prop.\n      props[name] = /** @type {Props[keyof Props]} */ (value)\n    }\n  }\n\n  return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Parents} node\n *   Current element.\n * @returns {Array<Child>}\n *   Children.\n */\nfunction createChildren(state, node) {\n  /** @type {Array<Child>} */\n  const children = []\n  let index = -1\n  /** @type {Map<string, number>} */\n  // Note: test this when Solid doesn’t want to merge my upcoming PR.\n  /* c8 ignore next */\n  const countsByName = state.passKeys ? new Map() : emptyMap\n\n  while (++index < node.children.length) {\n    const child = node.children[index]\n    /** @type {string | undefined} */\n    let key\n\n    if (state.passKeys) {\n      const name =\n        child.type === 'element'\n          ? child.tagName\n          : child.type === 'mdxJsxFlowElement' ||\n              child.type === 'mdxJsxTextElement'\n            ? child.name\n            : undefined\n\n      if (name) {\n        const count = countsByName.get(name) || 0\n        key = name + '-' + count\n        countsByName.set(name, count + 1)\n      }\n    }\n\n    const result = one(state, child, key)\n    if (result !== undefined) children.push(result)\n  }\n\n  return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n *   Info passed around.\n * @param {string} prop\n *   Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n *   hast property value.\n * @returns {Field | undefined}\n *   Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n  const info = find(state.schema, prop)\n\n  // Ignore nullish and `NaN` values.\n  if (\n    value === null ||\n    value === undefined ||\n    (typeof value === 'number' && Number.isNaN(value))\n  ) {\n    return\n  }\n\n  if (Array.isArray(value)) {\n    // Accept `array`.\n    // Most props are space-separated.\n    value = info.commaSeparated ? commas(value) : spaces(value)\n  }\n\n  // React only accepts `style` as object.\n  if (info.property === 'style') {\n    let styleObject =\n      typeof value === 'object' ? value : parseStyle(state, String(value))\n\n    if (state.stylePropertyNameCase === 'css') {\n      styleObject = transformStylesToCssCasing(styleObject)\n    }\n\n    return ['style', styleObject]\n  }\n\n  return [\n    state.elementAttributeNameCase === 'react' && info.space\n      ? hastToReact[info.property] || info.property\n      : info.attribute,\n    value\n  ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n *   Info passed around.\n * @param {string} value\n *   CSS declarations.\n * @returns {Style}\n *   Properties.\n * @throws\n *   Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n  try {\n    return styleToJs(value, {reactCompat: true})\n  } catch (error) {\n    if (state.ignoreInvalidStyle) {\n      return {}\n    }\n\n    const cause = /** @type {Error} */ (error)\n    const message = new VFileMessage('Cannot parse `style` attribute', {\n      ancestors: state.ancestors,\n      cause,\n      ruleId: 'style',\n      source: 'hast-util-to-jsx-runtime'\n    })\n    message.file = state.filePath || undefined\n    message.url = docs + '#cannot-parse-style-attribute'\n\n    throw message\n  }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n *   To do.\n * @param {string} name\n *   Name.\n * @param {boolean} allowExpression\n *   Allow member expressions and identifiers.\n * @returns {unknown}\n *   To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n  /** @type {Identifier | Literal | MemberExpression} */\n  let result\n\n  if (!allowExpression) {\n    result = {type: 'Literal', value: name}\n  } else if (name.includes('.')) {\n    const identifiers = name.split('.')\n    let index = -1\n    /** @type {Identifier | Literal | MemberExpression | undefined} */\n    let node\n\n    while (++index < identifiers.length) {\n      /** @type {Identifier | Literal} */\n      const prop = isIdentifierName(identifiers[index])\n        ? {type: 'Identifier', name: identifiers[index]}\n        : {type: 'Literal', value: identifiers[index]}\n      node = node\n        ? {\n            type: 'MemberExpression',\n            object: node,\n            property: prop,\n            computed: Boolean(index && prop.type === 'Literal'),\n            optional: false\n          }\n        : prop\n    }\n\n    assert(node, 'always a result')\n    result = node\n  } else {\n    result =\n      isIdentifierName(name) && !/^[a-z]/.test(name)\n        ? {type: 'Identifier', name}\n        : {type: 'Literal', value: name}\n  }\n\n  // Only literals can be passed in `components` currently.\n  // No identifiers / member expressions.\n  if (result.type === 'Literal') {\n    const name = /** @type {string | number} */ (result.value)\n    return own.call(state.components, name) ? state.components[name] : name\n  }\n\n  // Assume component.\n  if (state.evaluater) {\n    return state.evaluater.evaluateExpression(result)\n  }\n\n  crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n  const message = new VFileMessage(\n    'Cannot handle MDX estrees without `createEvaluater`',\n    {\n      ancestors: state.ancestors,\n      place,\n      ruleId: 'mdx-estree',\n      source: 'hast-util-to-jsx-runtime'\n    }\n  )\n  message.file = state.filePath || undefined\n  message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n  throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n  /** @type {Style} */\n  const cssCasing = {}\n  /** @type {string} */\n  let from\n\n  for (from in domCasing) {\n    if (own.call(domCasing, from)) {\n      cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n    }\n  }\n\n  return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n  let to = from.replace(cap, toDash)\n  // Handle `ms-xxx` -> `-ms-xxx`.\n  if (to.slice(0, 3) === 'ms-') to = '-' + to\n  return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n *   Capitalized ASCII leter.\n * @returns {string}\n *   Dash and lower letter.\n */\nfunction toDash($0) {\n  return '-' + $0.toLowerCase()\n}\n","/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n *   Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n *   Code point to check.\n * @returns {boolean}\n *   Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n  return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n *   Code point to check.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {boolean}\n *   Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n  const settings = options || emptyOptions\n  const re = settings.jsx ? contReJsx : contRe\n  return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n *   Identifier to check.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {boolean}\n *   Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n  const settings = options || emptyOptions\n  const re = settings.jsx ? nameReJsx : nameRe\n  return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n *   Thing to check (`Node` or `string`).\n * @returns {boolean}\n *   Whether the `value` is inter-element whitespace (`boolean`): consisting of\n *   zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n *   (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n *   whose `value` field is checked.\n */\nexport function whitespace(thing) {\n  return typeof thing === 'object'\n    ? thing.type === 'text'\n      ? empty(thing.value)\n      : false\n    : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n  return value.replace(re, '') === ''\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n *   Space-separated tokens.\n * @returns {Array<string>}\n *   List of tokens.\n */\nexport function parse(value) {\n  const input = String(value || '').trim()\n  return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n *   List of tokens.\n * @returns {string}\n *   Space-separated tokens.\n */\nexport function stringify(values) {\n  return values.join(' ').trim()\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n *   Node.\n * @returns\n *   Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n *   Side.\n * @returns\n *   Getter.\n */\nfunction point(type) {\n  return point\n\n  /**\n   * Get the point info of `node` at a bound side.\n   *\n   * @param {Node | NodeLike | null | undefined} [node]\n   * @returns {Point | undefined}\n   */\n  function point(node) {\n    const point = (node && node.position && node.position[type]) || {}\n\n    if (\n      typeof point.line === 'number' &&\n      point.line > 0 &&\n      typeof point.column === 'number' &&\n      point.column > 0\n    ) {\n      return {\n        line: point.line,\n        column: point.column,\n        offset:\n          typeof point.offset === 'number' && point.offset > -1\n            ? point.offset\n            : undefined\n      }\n    }\n  }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n *   Node.\n * @returns {Position | undefined}\n *   Position.\n */\nexport function position(node) {\n  const start = pointStart(node)\n  const end = pointEnd(node)\n\n  if (start && end) {\n    return {start, end}\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n *   Node, position, or point.\n * @returns {string}\n *   Pretty printed positional info of a node (`string`).\n *\n *   In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n *   or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n *   column, `s` for `start`, and `e` for end.\n *   An empty string (`''`) is returned if the given value is neither `node`,\n *   `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n  // Nothing.\n  if (!value || typeof value !== 'object') {\n    return ''\n  }\n\n  // Node.\n  if ('position' in value || 'type' in value) {\n    return position(value.position)\n  }\n\n  // Position.\n  if ('start' in value || 'end' in value) {\n    return position(value)\n  }\n\n  // Point.\n  if ('line' in value || 'column' in value) {\n    return point(value)\n  }\n\n  // ?\n  return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n  return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n  return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n  return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n *   Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n *   Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n *   Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n *   Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n *   Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n *   Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n  /**\n   * Create a message for `reason`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Options | null | undefined} [options]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns\n   *   Instance of `VFileMessage`.\n   */\n  // eslint-disable-next-line complexity\n  constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n    super()\n\n    if (typeof optionsOrParentOrPlace === 'string') {\n      origin = optionsOrParentOrPlace\n      optionsOrParentOrPlace = undefined\n    }\n\n    /** @type {string} */\n    let reason = ''\n    /** @type {Options} */\n    let options = {}\n    let legacyCause = false\n\n    if (optionsOrParentOrPlace) {\n      // Point.\n      if (\n        'line' in optionsOrParentOrPlace &&\n        'column' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Position.\n      else if (\n        'start' in optionsOrParentOrPlace &&\n        'end' in optionsOrParentOrPlace\n      ) {\n        options = {place: optionsOrParentOrPlace}\n      }\n      // Node.\n      else if ('type' in optionsOrParentOrPlace) {\n        options = {\n          ancestors: [optionsOrParentOrPlace],\n          place: optionsOrParentOrPlace.position\n        }\n      }\n      // Options.\n      else {\n        options = {...optionsOrParentOrPlace}\n      }\n    }\n\n    if (typeof causeOrReason === 'string') {\n      reason = causeOrReason\n    }\n    // Error.\n    else if (!options.cause && causeOrReason) {\n      legacyCause = true\n      reason = causeOrReason.message\n      options.cause = causeOrReason\n    }\n\n    if (!options.ruleId && !options.source && typeof origin === 'string') {\n      const index = origin.indexOf(':')\n\n      if (index === -1) {\n        options.ruleId = origin\n      } else {\n        options.source = origin.slice(0, index)\n        options.ruleId = origin.slice(index + 1)\n      }\n    }\n\n    if (!options.place && options.ancestors && options.ancestors) {\n      const parent = options.ancestors[options.ancestors.length - 1]\n\n      if (parent) {\n        options.place = parent.position\n      }\n    }\n\n    const start =\n      options.place && 'start' in options.place\n        ? options.place.start\n        : options.place\n\n    /**\n     * Stack of ancestor nodes surrounding the message.\n     *\n     * @type {Array<Node> | undefined}\n     */\n    this.ancestors = options.ancestors || undefined\n\n    /**\n     * Original error cause of the message.\n     *\n     * @type {Error | undefined}\n     */\n    this.cause = options.cause || undefined\n\n    /**\n     * Starting column of message.\n     *\n     * @type {number | undefined}\n     */\n    this.column = start ? start.column : undefined\n\n    /**\n     * State of problem.\n     *\n     * * `true` — error, file not usable\n     * * `false` — warning, change may be needed\n     * * `undefined` — change likely not needed\n     *\n     * @type {boolean | null | undefined}\n     */\n    this.fatal = undefined\n\n    /**\n     * Path of a file (used throughout the `VFile` ecosystem).\n     *\n     * @type {string | undefined}\n     */\n    this.file = ''\n\n    // Field from `Error`.\n    /**\n     * Reason for message.\n     *\n     * @type {string}\n     */\n    this.message = reason\n\n    /**\n     * Starting line of error.\n     *\n     * @type {number | undefined}\n     */\n    this.line = start ? start.line : undefined\n\n    // Field from `Error`.\n    /**\n     * Serialized positional info of message.\n     *\n     * On normal errors, this would be something like `ParseError`, buit in\n     * `VFile` messages we use this space to show where an error happened.\n     */\n    this.name = stringifyPosition(options.place) || '1:1'\n\n    /**\n     * Place of message.\n     *\n     * @type {Point | Position | undefined}\n     */\n    this.place = options.place || undefined\n\n    /**\n     * Reason for message, should use markdown.\n     *\n     * @type {string}\n     */\n    this.reason = this.message\n\n    /**\n     * Category of message (example: `'my-rule'`).\n     *\n     * @type {string | undefined}\n     */\n    this.ruleId = options.ruleId || undefined\n\n    /**\n     * Namespace of message (example: `'my-package'`).\n     *\n     * @type {string | undefined}\n     */\n    this.source = options.source || undefined\n\n    // Field from `Error`.\n    /**\n     * Stack of message.\n     *\n     * This is used by normal errors to show where something happened in\n     * programming code, irrelevant for `VFile` messages,\n     *\n     * @type {string}\n     */\n    this.stack =\n      legacyCause && options.cause && typeof options.cause.stack === 'string'\n        ? options.cause.stack\n        : ''\n\n    // The following fields are “well known”.\n    // Not standard.\n    // Feel free to add other non-standard fields to your messages.\n\n    /**\n     * Specify the source value that’s being reported, which is deemed\n     * incorrect.\n     *\n     * @type {string | undefined}\n     */\n    this.actual = undefined\n\n    /**\n     * Suggest acceptable values that can be used instead of `actual`.\n     *\n     * @type {Array<string> | undefined}\n     */\n    this.expected = undefined\n\n    /**\n     * Long form description of the message (you should use markdown).\n     *\n     * @type {string | undefined}\n     */\n    this.note = undefined\n\n    /**\n     * Link to docs for the message.\n     *\n     * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n     * > to `new URL(x)`.\n     *\n     * @type {string | undefined}\n     */\n    this.url = undefined\n  }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n  action: ['form'],\n  cite: ['blockquote', 'del', 'ins', 'q'],\n  data: ['object'],\n  formAction: ['button', 'input'],\n  href: ['a', 'area', 'base', 'link'],\n  icon: ['menuitem'],\n  itemId: null,\n  manifest: ['html'],\n  ping: ['a', 'area'],\n  poster: ['video'],\n  src: [\n    'audio',\n    'embed',\n    'iframe',\n    'img',\n    'input',\n    'script',\n    'source',\n    'track',\n    'video'\n  ]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n *   Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n *   Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n *   Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Serialized `value`.\n */\nexport function toString(value, options) {\n  const settings = options || emptyOptions\n  const includeImageAlt =\n    typeof settings.includeImageAlt === 'boolean'\n      ? settings.includeImageAlt\n      : true\n  const includeHtml =\n    typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n  return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n  if (node(value)) {\n    if ('value' in value) {\n      return value.type === 'html' && !includeHtml ? '' : value.value\n    }\n\n    if (includeImageAlt && 'alt' in value && value.alt) {\n      return value.alt\n    }\n\n    if ('children' in value) {\n      return all(value.children, includeImageAlt, includeHtml)\n    }\n  }\n\n  if (Array.isArray(value)) {\n    return all(value, includeImageAlt, includeHtml)\n  }\n\n  return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt, includeHtml)\n  }\n\n  return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n *   Thing.\n * @returns {value is Nodes}\n *   Whether `value` is a node.\n */\nfunction node(value) {\n  return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {number} start\n *   Index to remove/insert at (can be negative).\n * @param {number} remove\n *   Number of items to remove.\n * @param {Array<T>} items\n *   Items to inject into `list`.\n * @returns {undefined}\n *   Nothing.\n */\nexport function splice(list, start, remove, items) {\n  const end = list.length;\n  let chunkStart = 0;\n  /** @type {Array<unknown>} */\n  let parameters;\n\n  // Make start between zero and `end` (included).\n  if (start < 0) {\n    start = -start > end ? 0 : end + start;\n  } else {\n    start = start > end ? end : start;\n  }\n  remove = remove > 0 ? remove : 0;\n\n  // No need to chunk the items if there’s only a couple (10k) items.\n  if (items.length < 10000) {\n    parameters = Array.from(items);\n    parameters.unshift(start, remove);\n    // @ts-expect-error Hush, it’s fine.\n    list.splice(...parameters);\n  } else {\n    // Delete `remove` items starting from `start`\n    if (remove) list.splice(start, remove);\n\n    // Insert the items in chunks to not cause stack overflows.\n    while (chunkStart < items.length) {\n      parameters = items.slice(chunkStart, chunkStart + 10000);\n      parameters.unshift(start, 0);\n      // @ts-expect-error Hush, it’s fine.\n      list.splice(...parameters);\n      chunkStart += 10000;\n      start += 10000;\n    }\n  }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n *   Item type.\n * @param {Array<T>} list\n *   List to operate on.\n * @param {Array<T>} items\n *   Items to add to `list`.\n * @returns {Array<T>}\n *   Either `list` or `items`.\n */\nexport function push(list, items) {\n  if (list.length > 0) {\n    splice(list, list.length, 0, items);\n    return list;\n  }\n  return items;\n}","/**\n * @import {\n *   Extension,\n *   Handles,\n *   HtmlExtension,\n *   NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<Extension>} extensions\n *   List of syntax extensions.\n * @returns {NormalizedExtension}\n *   A single combined extension.\n */\nexport function combineExtensions(extensions) {\n  /** @type {NormalizedExtension} */\n  const all = {}\n  let index = -1\n\n  while (++index < extensions.length) {\n    syntaxExtension(all, extensions[index])\n  }\n\n  return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n *   Extension to merge into.\n * @param {Extension} extension\n *   Extension to merge.\n * @returns {undefined}\n *   Nothing.\n */\nfunction syntaxExtension(all, extension) {\n  /** @type {keyof Extension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    /** @type {Record<string, unknown>} */\n    const left = maybe || (all[hook] = {})\n    /** @type {Record<string, unknown> | undefined} */\n    const right = extension[hook]\n    /** @type {string} */\n    let code\n\n    if (right) {\n      for (code in right) {\n        if (!hasOwnProperty.call(left, code)) left[code] = []\n        const value = right[code]\n        constructs(\n          // @ts-expect-error Looks like a list.\n          left[code],\n          Array.isArray(value) ? value : value ? [value] : []\n        )\n      }\n    }\n  }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n *   List of constructs to merge into.\n * @param {Array<unknown>} list\n *   List of constructs to merge.\n * @returns {undefined}\n *   Nothing.\n */\nfunction constructs(existing, list) {\n  let index = -1\n  /** @type {Array<unknown>} */\n  const before = []\n\n  while (++index < list.length) {\n    // @ts-expect-error Looks like an object.\n    ;(list[index].add === 'after' ? existing : before).push(list[index])\n  }\n\n  splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray<HtmlExtension>} htmlExtensions\n *   List of HTML extensions.\n * @returns {HtmlExtension}\n *   Single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n  /** @type {HtmlExtension} */\n  const handlers = {}\n  let index = -1\n\n  while (++index < htmlExtensions.length) {\n    htmlExtension(handlers, htmlExtensions[index])\n  }\n\n  return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n *   Extension to merge into.\n * @param {HtmlExtension} extension\n *   Extension to merge.\n * @returns {undefined}\n *   Nothing.\n */\nfunction htmlExtension(all, extension) {\n  /** @type {keyof HtmlExtension} */\n  let hook\n\n  for (hook in extension) {\n    const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n    const left = maybe || (all[hook] = {})\n    const right = extension[hook]\n    /** @type {keyof Handles} */\n    let type\n\n    if (right) {\n      for (type in right) {\n        // @ts-expect-error assume document vs regular handler are managed correctly.\n        left[type] = right[type]\n      }\n    }\n  }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n *   Value to decode.\n * @param {number} base\n *   Numeric base.\n * @returns {string}\n *   Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n  const code = Number.parseInt(value, base);\n  if (\n  // C0 except for HT, LF, FF, CR, space.\n  code < 9 || code === 11 || code > 13 && code < 32 ||\n  // Control character (DEL) of C0, and C1 controls.\n  code > 126 && code < 160 ||\n  // Lone high surrogates and low surrogates.\n  code > 55_295 && code < 57_344 ||\n  // Noncharacters.\n  code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n  (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n  // Out of range\n  code > 1_114_111) {\n    return \"\\uFFFD\";\n  }\n  return String.fromCodePoint(code);\n}","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n *   Identifier to normalize.\n * @returns {string}\n *   Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n  return value\n  // Collapse markdown whitespace.\n  .replace(/[\\t\\n\\r ]+/g, \" \")\n  // Trim.\n  .replace(/^ | $/g, '')\n  // Some characters are considered “uppercase”, but if their lowercase\n  // counterpart is uppercased will result in a different uppercase\n  // character.\n  // Hence, to get that form, we perform both lower- and uppercase.\n  // Upper case makes sure keys will not interact with default prototypal\n  // methods: no method is uppercase.\n  .toLowerCase().toUpperCase();\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function asciiControl(code) {\n  return (\n    // Special whitespace codes (which have negative values), C0 and Control\n    // character DEL\n    code !== null && (code < 32 || code === 127)\n  );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEnding(code) {\n  return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n  return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n *   Code.\n * @returns {boolean}\n *   Whether it matches.\n */\nexport function markdownSpace(code) {\n  return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n *   Code.\n * @returns\n *   Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n *   Expression.\n * @returns {(code: Code) => boolean}\n *   Check.\n */\nfunction regexCheck(regex) {\n  return check;\n\n  /**\n   * Check whether a code matches the bound regex.\n   *\n   * @param {Code} code\n   *   Character code.\n   * @returns {boolean}\n   *   Whether the character code matches the bound regex.\n   */\n  function check(code) {\n    return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n  }\n}","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n *   URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n *   Allowed protocols.\n * @returns {string}\n *   Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n  const value = encode(normalizeUri(url || ''));\n  if (!protocol) {\n    return value;\n  }\n  const colon = value.indexOf(':');\n  const questionMark = value.indexOf('?');\n  const numberSign = value.indexOf('#');\n  const slash = value.indexOf('/');\n  if (\n  // If there is no protocol, it’s relative.\n  colon < 0 ||\n  // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n  slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n  // It is a protocol, it should be allowed.\n  protocol.test(value.slice(0, colon))) {\n    return value;\n  }\n  return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n *   URI to normalize.\n * @returns {string}\n *   Normalized URI.\n */\nexport function normalizeUri(value) {\n  /** @type {Array<string>} */\n  const result = [];\n  let index = -1;\n  let start = 0;\n  let skip = 0;\n  while (++index < value.length) {\n    const code = value.charCodeAt(index);\n    /** @type {string} */\n    let replace = '';\n\n    // A correct percent encoded value.\n    if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n      skip = 2;\n    }\n    // ASCII.\n    else if (code < 128) {\n      if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n        replace = String.fromCharCode(code);\n      }\n    }\n    // Astral.\n    else if (code > 55_295 && code < 57_344) {\n      const next = value.charCodeAt(index + 1);\n\n      // A correct surrogate pair.\n      if (code < 56_320 && next > 56_319 && next < 57_344) {\n        replace = String.fromCharCode(code, next);\n        skip = 1;\n      }\n      // Lone surrogate.\n      else {\n        replace = \"\\uFFFD\";\n      }\n    }\n    // Unicode.\n    else {\n      replace = String.fromCharCode(code);\n    }\n    if (replace) {\n      result.push(value.slice(start, index), encodeURIComponent(replace));\n      start = index + skip + 1;\n      replace = '';\n    }\n    if (skip) {\n      index += skip;\n      skip = 0;\n    }\n  }\n  return result.join('') + value.slice(start);\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * *   spaces in markdown are often optional, in which case this factory can be\n *     used and `ok` will be switched to whether spaces were found or not\n * *   one line ending or space can be detected with `markdownSpace(code)` right\n *     before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {TokenType} type\n *   Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n *   Max (exclusive).\n * @returns {State}\n *   Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n  const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n  let size = 0;\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    if (markdownSpace(code)) {\n      effects.enter(type);\n      return prefix(code);\n    }\n    return ok(code);\n  }\n\n  /** @type {State} */\n  function prefix(code) {\n    if (markdownSpace(code) && size++ < limit) {\n      effects.consume(code);\n      return prefix;\n    }\n    effects.exit(type);\n    return ok(code);\n  }\n}","/**\n * @import {\n *   InitialConstruct,\n *   Initializer,\n *   State,\n *   TokenizeContext,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n  tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Initializer}\n *   Content.\n */\nfunction initializeContent(effects) {\n  const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n  /** @type {Token} */\n  let previous;\n  return contentStart;\n\n  /** @type {State} */\n  function afterContentStartConstruct(code) {\n    if (code === null) {\n      effects.consume(code);\n      return;\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, contentStart, \"linePrefix\");\n  }\n\n  /** @type {State} */\n  function paragraphInitial(code) {\n    effects.enter(\"paragraph\");\n    return lineStart(code);\n  }\n\n  /** @type {State} */\n  function lineStart(code) {\n    const token = effects.enter(\"chunkText\", {\n      contentType: \"text\",\n      previous\n    });\n    if (previous) {\n      previous.next = token;\n    }\n    previous = token;\n    return data(code);\n  }\n\n  /** @type {State} */\n  function data(code) {\n    if (code === null) {\n      effects.exit(\"chunkText\");\n      effects.exit(\"paragraph\");\n      effects.consume(code);\n      return;\n    }\n    if (markdownLineEnding(code)) {\n      effects.consume(code);\n      effects.exit(\"chunkText\");\n      return lineStart;\n    }\n\n    // Data.\n    effects.consume(code);\n    return data;\n  }\n}","/**\n * @import {\n *   Construct,\n *   ContainerState,\n *   InitialConstruct,\n *   Initializer,\n *   Point,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n *   Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n  tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n  tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n *   Self.\n * @type {Initializer}\n *   Initializer.\n */\nfunction initializeDocument(effects) {\n  const self = this;\n  /** @type {Array<StackItem>} */\n  const stack = [];\n  let continued = 0;\n  /** @type {TokenizeContext | undefined} */\n  let childFlow;\n  /** @type {Token | undefined} */\n  let childToken;\n  /** @type {number} */\n  let lineStartOffset;\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    // First we iterate through the open blocks, starting with the root\n    // document, and descending through last children down to the last open\n    // block.\n    // Each block imposes a condition that the line must satisfy if the block is\n    // to remain open.\n    // For example, a block quote requires a `>` character.\n    // A paragraph requires a non-blank line.\n    // In this phase we may match all or just some of the open blocks.\n    // But we cannot close unmatched blocks yet, because we may have a lazy\n    // continuation line.\n    if (continued < stack.length) {\n      const item = stack[continued];\n      self.containerState = item[1];\n      return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n    }\n\n    // Done.\n    return checkNewContainers(code);\n  }\n\n  /** @type {State} */\n  function documentContinue(code) {\n    continued++;\n\n    // Note: this field is called `_closeFlow` but it also closes containers.\n    // Perhaps a good idea to rename it but it’s already used in the wild by\n    // extensions.\n    if (self.containerState._closeFlow) {\n      self.containerState._closeFlow = undefined;\n      if (childFlow) {\n        closeFlow();\n      }\n\n      // Note: this algorithm for moving events around is similar to the\n      // algorithm when dealing with lazy lines in `writeToChild`.\n      const indexBeforeExits = self.events.length;\n      let indexBeforeFlow = indexBeforeExits;\n      /** @type {Point | undefined} */\n      let point;\n\n      // Find the flow chunk.\n      while (indexBeforeFlow--) {\n        if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n          point = self.events[indexBeforeFlow][1].end;\n          break;\n        }\n      }\n      exitContainers(continued);\n\n      // Fix positions.\n      let index = indexBeforeExits;\n      while (index < self.events.length) {\n        self.events[index][1].end = {\n          ...point\n        };\n        index++;\n      }\n\n      // Inject the exits earlier (they’re still also at the end).\n      splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n      // Discard the duplicate exits.\n      self.events.length = index;\n      return checkNewContainers(code);\n    }\n    return start(code);\n  }\n\n  /** @type {State} */\n  function checkNewContainers(code) {\n    // Next, after consuming the continuation markers for existing blocks, we\n    // look for new block starts (e.g. `>` for a block quote).\n    // If we encounter a new block start, we close any blocks unmatched in\n    // step 1 before creating the new block as a child of the last matched\n    // block.\n    if (continued === stack.length) {\n      // No need to `check` whether there’s a container, of `exitContainers`\n      // would be moot.\n      // We can instead immediately `attempt` to parse one.\n      if (!childFlow) {\n        return documentContinued(code);\n      }\n\n      // If we have concrete content, such as block HTML or fenced code,\n      // we can’t have containers “pierce” into them, so we can immediately\n      // start.\n      if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n        return flowStart(code);\n      }\n\n      // If we do have flow, it could still be a blank line,\n      // but we’d be interrupting it w/ a new container if there’s a current\n      // construct.\n      // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n      // needed in micromark-extension-gfm-table@1.0.6).\n      self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n    }\n\n    // Check if there is a new container.\n    self.containerState = {};\n    return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n  }\n\n  /** @type {State} */\n  function thereIsANewContainer(code) {\n    if (childFlow) closeFlow();\n    exitContainers(continued);\n    return documentContinued(code);\n  }\n\n  /** @type {State} */\n  function thereIsNoNewContainer(code) {\n    self.parser.lazy[self.now().line] = continued !== stack.length;\n    lineStartOffset = self.now().offset;\n    return flowStart(code);\n  }\n\n  /** @type {State} */\n  function documentContinued(code) {\n    // Try new containers.\n    self.containerState = {};\n    return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n  }\n\n  /** @type {State} */\n  function containerContinue(code) {\n    continued++;\n    stack.push([self.currentConstruct, self.containerState]);\n    // Try another.\n    return documentContinued(code);\n  }\n\n  /** @type {State} */\n  function flowStart(code) {\n    if (code === null) {\n      if (childFlow) closeFlow();\n      exitContainers(0);\n      effects.consume(code);\n      return;\n    }\n    childFlow = childFlow || self.parser.flow(self.now());\n    effects.enter(\"chunkFlow\", {\n      _tokenizer: childFlow,\n      contentType: \"flow\",\n      previous: childToken\n    });\n    return flowContinue(code);\n  }\n\n  /** @type {State} */\n  function flowContinue(code) {\n    if (code === null) {\n      writeToChild(effects.exit(\"chunkFlow\"), true);\n      exitContainers(0);\n      effects.consume(code);\n      return;\n    }\n    if (markdownLineEnding(code)) {\n      effects.consume(code);\n      writeToChild(effects.exit(\"chunkFlow\"));\n      // Get ready for the next line.\n      continued = 0;\n      self.interrupt = undefined;\n      return start;\n    }\n    effects.consume(code);\n    return flowContinue;\n  }\n\n  /**\n   * @param {Token} token\n   *   Token.\n   * @param {boolean | undefined} [endOfFile]\n   *   Whether the token is at the end of the file (default: `false`).\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function writeToChild(token, endOfFile) {\n    const stream = self.sliceStream(token);\n    if (endOfFile) stream.push(null);\n    token.previous = childToken;\n    if (childToken) childToken.next = token;\n    childToken = token;\n    childFlow.defineSkip(token.start);\n    childFlow.write(stream);\n\n    // Alright, so we just added a lazy line:\n    //\n    // ```markdown\n    // > a\n    // b.\n    //\n    // Or:\n    //\n    // > ~~~c\n    // d\n    //\n    // Or:\n    //\n    // > | e |\n    // f\n    // ```\n    //\n    // The construct in the second example (fenced code) does not accept lazy\n    // lines, so it marked itself as done at the end of its first line, and\n    // then the content construct parses `d`.\n    // Most constructs in markdown match on the first line: if the first line\n    // forms a construct, a non-lazy line can’t “unmake” it.\n    //\n    // The construct in the third example is potentially a GFM table, and\n    // those are *weird*.\n    // It *could* be a table, from the first line, if the following line\n    // matches a condition.\n    // In this case, that second line is lazy, which “unmakes” the first line\n    // and turns the whole into one content block.\n    //\n    // We’ve now parsed the non-lazy and the lazy line, and can figure out\n    // whether the lazy line started a new flow block.\n    // If it did, we exit the current containers between the two flow blocks.\n    if (self.parser.lazy[token.start.line]) {\n      let index = childFlow.events.length;\n      while (index--) {\n        if (\n        // The token starts before the line ending…\n        childFlow.events[index][1].start.offset < lineStartOffset && (\n        // …and either is not ended yet…\n        !childFlow.events[index][1].end ||\n        // …or ends after it.\n        childFlow.events[index][1].end.offset > lineStartOffset)) {\n          // Exit: there’s still something open, which means it’s a lazy line\n          // part of something.\n          return;\n        }\n      }\n\n      // Note: this algorithm for moving events around is similar to the\n      // algorithm when closing flow in `documentContinue`.\n      const indexBeforeExits = self.events.length;\n      let indexBeforeFlow = indexBeforeExits;\n      /** @type {boolean | undefined} */\n      let seen;\n      /** @type {Point | undefined} */\n      let point;\n\n      // Find the previous chunk (the one before the lazy line).\n      while (indexBeforeFlow--) {\n        if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n          if (seen) {\n            point = self.events[indexBeforeFlow][1].end;\n            break;\n          }\n          seen = true;\n        }\n      }\n      exitContainers(continued);\n\n      // Fix positions.\n      index = indexBeforeExits;\n      while (index < self.events.length) {\n        self.events[index][1].end = {\n          ...point\n        };\n        index++;\n      }\n\n      // Inject the exits earlier (they’re still also at the end).\n      splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n      // Discard the duplicate exits.\n      self.events.length = index;\n    }\n  }\n\n  /**\n   * @param {number} size\n   *   Size.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function exitContainers(size) {\n    let index = stack.length;\n\n    // Exit open containers.\n    while (index-- > size) {\n      const entry = stack[index];\n      self.containerState = entry[1];\n      entry[0].exit.call(self, effects);\n    }\n    stack.length = size;\n  }\n  function closeFlow() {\n    childFlow.write([null]);\n    childToken = undefined;\n    childFlow = undefined;\n    self.containerState._closeFlow = undefined;\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n *   Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n  // Always populated by defaults.\n\n  return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n *   Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n *   Group.\n */\nexport function classifyCharacter(code) {\n  if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n    return 1;\n  }\n  if (unicodePunctuation(code)) {\n    return 2;\n  }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n *   List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n *   List of events.\n * @param {TokenizeContext} context\n *   Context used by `tokenize`.\n * @returns {Array<Event>}\n *   Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n  /** @type {Array<Resolver>} */\n  const called = []\n  let index = -1\n\n  while (++index < constructs.length) {\n    const resolve = constructs[index].resolveAll\n\n    if (resolve && !called.includes(resolve)) {\n      events = resolve(events, context)\n      called.push(resolve)\n    }\n  }\n\n  return events\n}\n","/**\n * @import {\n *   Code,\n *   Construct,\n *   Event,\n *   Point,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n  name: 'attention',\n  resolveAll: resolveAllAttention,\n  tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n  let index = -1;\n  /** @type {number} */\n  let open;\n  /** @type {Token} */\n  let group;\n  /** @type {Token} */\n  let text;\n  /** @type {Token} */\n  let openingSequence;\n  /** @type {Token} */\n  let closingSequence;\n  /** @type {number} */\n  let use;\n  /** @type {Array<Event>} */\n  let nextEvents;\n  /** @type {number} */\n  let offset;\n\n  // Walk through all events.\n  //\n  // Note: performance of this is fine on an mb of normal markdown, but it’s\n  // a bottleneck for malicious stuff.\n  while (++index < events.length) {\n    // Find a token that can close.\n    if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n      open = index;\n\n      // Now walk back to find an opener.\n      while (open--) {\n        // Find a token that can open the closer.\n        if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n        // If the markers are the same:\n        context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n          // If the opening can close or the closing can open,\n          // and the close size *is not* a multiple of three,\n          // but the sum of the opening and closing size *is* multiple of three,\n          // then don’t match.\n          if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n            continue;\n          }\n\n          // Number of markers to use from the sequence.\n          use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n          const start = {\n            ...events[open][1].end\n          };\n          const end = {\n            ...events[index][1].start\n          };\n          movePoint(start, -use);\n          movePoint(end, use);\n          openingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start,\n            end: {\n              ...events[open][1].end\n            }\n          };\n          closingSequence = {\n            type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n            start: {\n              ...events[index][1].start\n            },\n            end\n          };\n          text = {\n            type: use > 1 ? \"strongText\" : \"emphasisText\",\n            start: {\n              ...events[open][1].end\n            },\n            end: {\n              ...events[index][1].start\n            }\n          };\n          group = {\n            type: use > 1 ? \"strong\" : \"emphasis\",\n            start: {\n              ...openingSequence.start\n            },\n            end: {\n              ...closingSequence.end\n            }\n          };\n          events[open][1].end = {\n            ...openingSequence.start\n          };\n          events[index][1].start = {\n            ...closingSequence.end\n          };\n          nextEvents = [];\n\n          // If there are more markers in the opening, add them before.\n          if (events[open][1].end.offset - events[open][1].start.offset) {\n            nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n          }\n\n          // Opening.\n          nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n          // Always populated by defaults.\n\n          // Between.\n          nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n          // Closing.\n          nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n          // If there are more markers in the closing, add them after.\n          if (events[index][1].end.offset - events[index][1].start.offset) {\n            offset = 2;\n            nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n          } else {\n            offset = 0;\n          }\n          splice(events, open - 1, index - open + 3, nextEvents);\n          index = open + nextEvents.length - offset - 2;\n          break;\n        }\n      }\n    }\n  }\n\n  // Remove remaining sequences.\n  index = -1;\n  while (++index < events.length) {\n    if (events[index][1].type === 'attentionSequence') {\n      events[index][1].type = 'data';\n    }\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n  const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n  const previous = this.previous;\n  const before = classifyCharacter(previous);\n\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Before a sequence.\n   *\n   * ```markdown\n   * > | **\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    marker = code;\n    effects.enter('attentionSequence');\n    return inside(code);\n  }\n\n  /**\n   * In a sequence.\n   *\n   * ```markdown\n   * > | **\n   *     ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker) {\n      effects.consume(code);\n      return inside;\n    }\n    const token = effects.exit('attentionSequence');\n\n    // To do: next major: move this to resolver, just like `markdown-rs`.\n    const after = classifyCharacter(code);\n\n    // Always populated by defaults.\n\n    const open = !after || after === 2 && before || attentionMarkers.includes(code);\n    const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n    token._open = Boolean(marker === 42 ? open : open && (before || !close));\n    token._close = Boolean(marker === 42 ? close : close && (after || !open));\n    return ok(code);\n  }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n *   Point.\n * @param {number} offset\n *   Amount to move.\n * @returns {undefined}\n *   Nothing.\n */\nfunction movePoint(point, offset) {\n  point.column += offset;\n  point.offset += offset;\n  point._bufferIndex += offset;\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n  name: 'autolink',\n  tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n  let size = 0;\n  return start;\n\n  /**\n   * Start of an autolink.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *      ^\n   * > | a<user@example.com>b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"autolink\");\n    effects.enter(\"autolinkMarker\");\n    effects.consume(code);\n    effects.exit(\"autolinkMarker\");\n    effects.enter(\"autolinkProtocol\");\n    return open;\n  }\n\n  /**\n   * After `<`, at protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *       ^\n   * > | a<user@example.com>b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return schemeOrEmailAtext;\n    }\n    if (code === 64) {\n      return nok(code);\n    }\n    return emailAtext(code);\n  }\n\n  /**\n   * At second byte of protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *        ^\n   * > | a<user@example.com>b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function schemeOrEmailAtext(code) {\n    // ASCII alphanumeric and `+`, `-`, and `.`.\n    if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n      // Count the previous alphabetical from `open` too.\n      size = 1;\n      return schemeInsideOrEmailAtext(code);\n    }\n    return emailAtext(code);\n  }\n\n  /**\n   * In ambiguous protocol or atext.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *        ^\n   * > | a<user@example.com>b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function schemeInsideOrEmailAtext(code) {\n    if (code === 58) {\n      effects.consume(code);\n      size = 0;\n      return urlInside;\n    }\n\n    // ASCII alphanumeric and `+`, `-`, and `.`.\n    if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n      effects.consume(code);\n      return schemeInsideOrEmailAtext;\n    }\n    size = 0;\n    return emailAtext(code);\n  }\n\n  /**\n   * After protocol, in URL.\n   *\n   * ```markdown\n   * > | a<https://example.com>b\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function urlInside(code) {\n    if (code === 62) {\n      effects.exit(\"autolinkProtocol\");\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n\n    // ASCII control, space, or `<`.\n    if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return urlInside;\n  }\n\n  /**\n   * In email atext.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailAtext(code) {\n    if (code === 64) {\n      effects.consume(code);\n      return emailAtSignOrDot;\n    }\n    if (asciiAtext(code)) {\n      effects.consume(code);\n      return emailAtext;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In label, after at-sign or dot.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *                 ^       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailAtSignOrDot(code) {\n    return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n  }\n\n  /**\n   * In label, where `.` and `>` are allowed.\n   *\n   * ```markdown\n   * > | a<user.name@example.com>b\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailLabel(code) {\n    if (code === 46) {\n      effects.consume(code);\n      size = 0;\n      return emailAtSignOrDot;\n    }\n    if (code === 62) {\n      // Exit, then change the token type.\n      effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n      effects.enter(\"autolinkMarker\");\n      effects.consume(code);\n      effects.exit(\"autolinkMarker\");\n      effects.exit(\"autolink\");\n      return ok;\n    }\n    return emailValue(code);\n  }\n\n  /**\n   * In label, where `.` and `>` are *not* allowed.\n   *\n   * Though, this is also used in `emailLabel` to parse other values.\n   *\n   * ```markdown\n   * > | a<user.name@ex-ample.com>b\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailValue(code) {\n    // ASCII alphanumeric or `-`.\n    if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n      const next = code === 45 ? emailValue : emailLabel;\n      effects.consume(code);\n      return next;\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n  partial: true,\n  tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of blank line.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *     ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n  }\n\n  /**\n   * At eof/eol, after optional whitespace.\n   *\n   * > 👉 **Note**: `␠` represents a space character.\n   *\n   * ```markdown\n   * > | ␠␠␊\n   *       ^\n   * > | ␊\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   Exiter,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n  continuation: {\n    tokenize: tokenizeBlockQuoteContinuation\n  },\n  exit,\n  name: 'blockQuote',\n  tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of block quote.\n   *\n   * ```markdown\n   * > | > a\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 62) {\n      const state = self.containerState;\n      if (!state.open) {\n        effects.enter(\"blockQuote\", {\n          _container: true\n        });\n        state.open = true;\n      }\n      effects.enter(\"blockQuotePrefix\");\n      effects.enter(\"blockQuoteMarker\");\n      effects.consume(code);\n      effects.exit(\"blockQuoteMarker\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `>`, before optional whitespace.\n   *\n   * ```markdown\n   * > | > a\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    if (markdownSpace(code)) {\n      effects.enter(\"blockQuotePrefixWhitespace\");\n      effects.consume(code);\n      effects.exit(\"blockQuotePrefixWhitespace\");\n      effects.exit(\"blockQuotePrefix\");\n      return ok;\n    }\n    effects.exit(\"blockQuotePrefix\");\n    return ok(code);\n  }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n *   | > a\n * > | > b\n *     ^\n * ```\n *\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n  const self = this;\n  return contStart;\n\n  /**\n   * Start of block quote continuation.\n   *\n   * Also used to parse the first block quote opening.\n   *\n   * ```markdown\n   *   | > a\n   * > | > b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function contStart(code) {\n    if (markdownSpace(code)) {\n      // Always populated by defaults.\n\n      return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n    }\n    return contBefore(code);\n  }\n\n  /**\n   * At `>`, after optional whitespace.\n   *\n   * Also used to parse the first block quote opening.\n   *\n   * ```markdown\n   *   | > a\n   * > | > b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function contBefore(code) {\n    return effects.attempt(blockQuote, ok, nok)(code);\n  }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n  effects.exit(\"blockQuote\");\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n  name: 'characterEscape',\n  tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of character escape.\n   *\n   * ```markdown\n   * > | a\\*b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"characterEscape\");\n    effects.enter(\"escapeMarker\");\n    effects.consume(code);\n    effects.exit(\"escapeMarker\");\n    return inside;\n  }\n\n  /**\n   * After `\\`, at punctuation.\n   *\n   * ```markdown\n   * > | a\\*b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    // ASCII punctuation.\n    if (asciiPunctuation(code)) {\n      effects.enter(\"characterEscapeValue\");\n      effects.consume(code);\n      effects.exit(\"characterEscapeValue\");\n      effects.exit(\"characterEscape\");\n      return ok;\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n  name: 'characterReference',\n  tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n  const self = this;\n  let size = 0;\n  /** @type {number} */\n  let max;\n  /** @type {(code: Code) => boolean} */\n  let test;\n  return start;\n\n  /**\n   * Start of character reference.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *      ^\n   * > | a&#123;b\n   *      ^\n   * > | a&#x9;b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"characterReference\");\n    effects.enter(\"characterReferenceMarker\");\n    effects.consume(code);\n    effects.exit(\"characterReferenceMarker\");\n    return open;\n  }\n\n  /**\n   * After `&`, at `#` for numeric references or alphanumeric for named\n   * references.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *       ^\n   * > | a&#123;b\n   *       ^\n   * > | a&#x9;b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 35) {\n      effects.enter(\"characterReferenceMarkerNumeric\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarkerNumeric\");\n      return numeric;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 31;\n    test = asciiAlphanumeric;\n    return value(code);\n  }\n\n  /**\n   * After `#`, at `x` for hexadecimals or digit for decimals.\n   *\n   * ```markdown\n   * > | a&#123;b\n   *        ^\n   * > | a&#x9;b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function numeric(code) {\n    if (code === 88 || code === 120) {\n      effects.enter(\"characterReferenceMarkerHexadecimal\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarkerHexadecimal\");\n      effects.enter(\"characterReferenceValue\");\n      max = 6;\n      test = asciiHexDigit;\n      return value;\n    }\n    effects.enter(\"characterReferenceValue\");\n    max = 7;\n    test = asciiDigit;\n    return value(code);\n  }\n\n  /**\n   * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n   *\n   * The character reference kind defines what and how many characters are\n   * allowed.\n   *\n   * ```markdown\n   * > | a&amp;b\n   *       ^^^\n   * > | a&#123;b\n   *        ^^^\n   * > | a&#x9;b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function value(code) {\n    if (code === 59 && size) {\n      const token = effects.exit(\"characterReferenceValue\");\n      if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n        return nok(code);\n      }\n\n      // To do: `markdown-rs` uses a different name:\n      // `CharacterReferenceMarkerSemi`.\n      effects.enter(\"characterReferenceMarker\");\n      effects.consume(code);\n      effects.exit(\"characterReferenceMarker\");\n      effects.exit(\"characterReference\");\n      return ok;\n    }\n    if (test(code) && size++ < max) {\n      effects.consume(code);\n      return value;\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n  partial: true,\n  tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n  concrete: true,\n  name: 'codeFenced',\n  tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n  const self = this;\n  /** @type {Construct} */\n  const closeStart = {\n    partial: true,\n    tokenize: tokenizeCloseStart\n  };\n  let initialPrefix = 0;\n  let sizeOpen = 0;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Start of code.\n   *\n   * ```markdown\n   * > | ~~~js\n   *     ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse whitespace like `markdown-rs`.\n    return beforeSequenceOpen(code);\n  }\n\n  /**\n   * In opening fence, after prefix, at sequence.\n   *\n   * ```markdown\n   * > | ~~~js\n   *     ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeSequenceOpen(code) {\n    const tail = self.events[self.events.length - 1];\n    initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n    marker = code;\n    effects.enter(\"codeFenced\");\n    effects.enter(\"codeFencedFence\");\n    effects.enter(\"codeFencedFenceSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening fence sequence.\n   *\n   * ```markdown\n   * > | ~~~js\n   *      ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === marker) {\n      sizeOpen++;\n      effects.consume(code);\n      return sequenceOpen;\n    }\n    if (sizeOpen < 3) {\n      return nok(code);\n    }\n    effects.exit(\"codeFencedFenceSequence\");\n    return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n  }\n\n  /**\n   * In opening fence, after the sequence (and optional whitespace), before info.\n   *\n   * ```markdown\n   * > | ~~~js\n   *        ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function infoBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFencedFence\");\n      return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n    }\n    effects.enter(\"codeFencedFenceInfo\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return info(code);\n  }\n\n  /**\n   * In info.\n   *\n   * ```markdown\n   * > | ~~~js\n   *        ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function info(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return infoBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceInfo\");\n      return factorySpace(effects, metaBefore, \"whitespace\")(code);\n    }\n    if (code === 96 && code === marker) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return info;\n  }\n\n  /**\n   * In opening fence, after info and whitespace, before meta.\n   *\n   * ```markdown\n   * > | ~~~js eval\n   *           ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function metaBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return infoBefore(code);\n    }\n    effects.enter(\"codeFencedFenceMeta\");\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return meta(code);\n  }\n\n  /**\n   * In meta.\n   *\n   * ```markdown\n   * > | ~~~js eval\n   *           ^\n   *   | alert(1)\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function meta(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"chunkString\");\n      effects.exit(\"codeFencedFenceMeta\");\n      return infoBefore(code);\n    }\n    if (code === 96 && code === marker) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return meta;\n  }\n\n  /**\n   * At eol/eof in code, before a non-lazy closing fence or content.\n   *\n   * ```markdown\n   * > | ~~~js\n   *          ^\n   * > | alert(1)\n   *             ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function atNonLazyBreak(code) {\n    return effects.attempt(closeStart, after, contentBefore)(code);\n  }\n\n  /**\n   * Before code content, not a closing fence, at eol.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *             ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentBefore(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return contentStart;\n  }\n\n  /**\n   * Before code content, not a closing fence.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentStart(code) {\n    return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n  }\n\n  /**\n   * Before code content, after optional prefix.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeContentChunk(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n    }\n    effects.enter(\"codeFlowValue\");\n    return contentChunk(code);\n  }\n\n  /**\n   * In code content.\n   *\n   * ```markdown\n   *   | ~~~js\n   * > | alert(1)\n   *     ^^^^^^^^\n   *   | ~~~\n   * ```\n   *\n   * @type {State}\n   */\n  function contentChunk(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFlowValue\");\n      return beforeContentChunk(code);\n    }\n    effects.consume(code);\n    return contentChunk;\n  }\n\n  /**\n   * After code.\n   *\n   * ```markdown\n   *   | ~~~js\n   *   | alert(1)\n   * > | ~~~\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    effects.exit(\"codeFenced\");\n    return ok(code);\n  }\n\n  /**\n   * @this {TokenizeContext}\n   *   Context.\n   * @type {Tokenizer}\n   */\n  function tokenizeCloseStart(effects, ok, nok) {\n    let size = 0;\n    return startBefore;\n\n    /**\n     *\n     *\n     * @type {State}\n     */\n    function startBefore(code) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return start;\n    }\n\n    /**\n     * Before closing fence, at optional whitespace.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function start(code) {\n      // Always populated by defaults.\n\n      // To do: `enter` here or in next state?\n      effects.enter(\"codeFencedFence\");\n      return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n    }\n\n    /**\n     * In closing fence, after optional whitespace, at sequence.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function beforeSequenceClose(code) {\n      if (code === marker) {\n        effects.enter(\"codeFencedFenceSequence\");\n        return sequenceClose(code);\n      }\n      return nok(code);\n    }\n\n    /**\n     * In closing fence sequence.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *     ^\n     * ```\n     *\n     * @type {State}\n     */\n    function sequenceClose(code) {\n      if (code === marker) {\n        size++;\n        effects.consume(code);\n        return sequenceClose;\n      }\n      if (size >= sizeOpen) {\n        effects.exit(\"codeFencedFenceSequence\");\n        return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n      }\n      return nok(code);\n    }\n\n    /**\n     * After closing fence sequence, after optional whitespace.\n     *\n     * ```markdown\n     *   | ~~~js\n     *   | alert(1)\n     * > | ~~~\n     *        ^\n     * ```\n     *\n     * @type {State}\n     */\n    function sequenceCloseAfter(code) {\n      if (code === null || markdownLineEnding(code)) {\n        effects.exit(\"codeFencedFence\");\n        return ok(code);\n      }\n      return nok(code);\n    }\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return lineStart;\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function lineStart(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n  name: 'codeIndented',\n  tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n  partial: true,\n  tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of code (indented).\n   *\n   * > **Parsing note**: it is not needed to check if this first line is a\n   * > filled line (that it has a non-whitespace character), because blank lines\n   * > are parsed already, so we never run into that.\n   *\n   * ```markdown\n   * > |     aaa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: manually check if interrupting like `markdown-rs`.\n\n    effects.enter(\"codeIndented\");\n    // To do: use an improved `space_or_tab` function like `markdown-rs`,\n    // so that we can drop the next state.\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n  }\n\n  /**\n   * At start, after 1 or 4 spaces.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n  }\n\n  /**\n   * At a break.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === null) {\n      return after(code);\n    }\n    if (markdownLineEnding(code)) {\n      return effects.attempt(furtherStart, atBreak, after)(code);\n    }\n    effects.enter(\"codeFlowValue\");\n    return inside(code);\n  }\n\n  /**\n   * In code content.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"codeFlowValue\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    return inside;\n  }\n\n  /** @type {State} */\n  function after(code) {\n    effects.exit(\"codeIndented\");\n    // To do: allow interrupting like `markdown-rs`.\n    // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n  const self = this;\n  return furtherStart;\n\n  /**\n   * At eol, trying to parse another indent.\n   *\n   * ```markdown\n   * > |     aaa\n   *            ^\n   *   |     bbb\n   * ```\n   *\n   * @type {State}\n   */\n  function furtherStart(code) {\n    // To do: improve `lazy` / `pierce` handling.\n    // If this is a lazy line, it can’t be code.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code);\n    }\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return furtherStart;\n    }\n\n    // To do: the code here in `micromark-js` is a bit different from\n    // `markdown-rs` because there it can attempt spaces.\n    // We can’t yet.\n    //\n    // To do: use an improved `space_or_tab` function like `markdown-rs`,\n    // so that we can drop the next state.\n    return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n  }\n\n  /**\n   * At start, after 1 or 4 spaces.\n   *\n   * ```markdown\n   * > |     aaa\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   Previous,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n  name: 'codeText',\n  previous,\n  resolve: resolveCodeText,\n  tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n  let tailExitIndex = events.length - 4;\n  let headEnterIndex = 3;\n  /** @type {number} */\n  let index;\n  /** @type {number | undefined} */\n  let enter;\n\n  // If we start and end with an EOL or a space.\n  if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n    index = headEnterIndex;\n\n    // And we have data.\n    while (++index < tailExitIndex) {\n      if (events[index][1].type === \"codeTextData\") {\n        // Then we have padding.\n        events[headEnterIndex][1].type = \"codeTextPadding\";\n        events[tailExitIndex][1].type = \"codeTextPadding\";\n        headEnterIndex += 2;\n        tailExitIndex -= 2;\n        break;\n      }\n    }\n  }\n\n  // Merge adjacent spaces and data.\n  index = headEnterIndex - 1;\n  tailExitIndex++;\n  while (++index <= tailExitIndex) {\n    if (enter === undefined) {\n      if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n        enter = index;\n      }\n    } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n      events[enter][1].type = \"codeTextData\";\n      if (index !== enter + 2) {\n        events[enter][1].end = events[index - 1][1].end;\n        events.splice(enter + 2, index - enter - 2);\n        tailExitIndex -= index - enter - 2;\n        index = enter + 2;\n      }\n      enter = undefined;\n    }\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Previous}\n */\nfunction previous(code) {\n  // If there is a previous code, there will always be a tail.\n  return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n  const self = this;\n  let sizeOpen = 0;\n  /** @type {number} */\n  let size;\n  /** @type {Token} */\n  let token;\n  return start;\n\n  /**\n   * Start of code (text).\n   *\n   * ```markdown\n   * > | `a`\n   *     ^\n   * > | \\`a`\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"codeText\");\n    effects.enter(\"codeTextSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening sequence.\n   *\n   * ```markdown\n   * > | `a`\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === 96) {\n      effects.consume(code);\n      sizeOpen++;\n      return sequenceOpen;\n    }\n    effects.exit(\"codeTextSequence\");\n    return between(code);\n  }\n\n  /**\n   * Between something and something else.\n   *\n   * ```markdown\n   * > | `a`\n   *      ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function between(code) {\n    // EOF.\n    if (code === null) {\n      return nok(code);\n    }\n\n    // To do: next major: don’t do spaces in resolve, but when compiling,\n    // like `markdown-rs`.\n    // Tabs don’t work, and virtual spaces don’t make sense.\n    if (code === 32) {\n      effects.enter('space');\n      effects.consume(code);\n      effects.exit('space');\n      return between;\n    }\n\n    // Closing fence? Could also be data.\n    if (code === 96) {\n      token = effects.enter(\"codeTextSequence\");\n      size = 0;\n      return sequenceClose(code);\n    }\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return between;\n    }\n\n    // Data.\n    effects.enter(\"codeTextData\");\n    return data(code);\n  }\n\n  /**\n   * In data.\n   *\n   * ```markdown\n   * > | `a`\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function data(code) {\n    if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n      effects.exit(\"codeTextData\");\n      return between(code);\n    }\n    effects.consume(code);\n    return data;\n  }\n\n  /**\n   * In closing sequence.\n   *\n   * ```markdown\n   * > | `a`\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceClose(code) {\n    // More.\n    if (code === 96) {\n      effects.consume(code);\n      size++;\n      return sequenceClose;\n    }\n\n    // Done!\n    if (size === sizeOpen) {\n      effects.exit(\"codeTextSequence\");\n      effects.exit(\"codeText\");\n      return ok(code);\n    }\n\n    // More or less accents: mark as data.\n    token.type = \"codeTextData\";\n    return data(code);\n  }\n}","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n *  - Array-length modifications at the high end of an array (push/pop) are\n *    expected to be common and are implemented in (amortized) time\n *    proportional to the number of elements added or removed, whereas\n *    other operations (shift/unshift and splice) are much less efficient.\n *  - Function arguments are passed on the stack, so adding tens of thousands\n *    of elements to an array with `arr.push(...newElements)` will frequently\n *    cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n *   Item type.\n */\nexport class SpliceBuffer {\n  /**\n   * @param {ReadonlyArray<T> | null | undefined} [initial]\n   *   Initial items (optional).\n   * @returns\n   *   Splice buffer.\n   */\n  constructor(initial) {\n    /** @type {Array<T>} */\n    this.left = initial ? [...initial] : [];\n    /** @type {Array<T>} */\n    this.right = [];\n  }\n\n  /**\n   * Array access;\n   * does not move the cursor.\n   *\n   * @param {number} index\n   *   Index.\n   * @return {T}\n   *   Item.\n   */\n  get(index) {\n    if (index < 0 || index >= this.left.length + this.right.length) {\n      throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n    }\n    if (index < this.left.length) return this.left[index];\n    return this.right[this.right.length - index + this.left.length - 1];\n  }\n\n  /**\n   * The length of the splice buffer, one greater than the largest index in the\n   * array.\n   */\n  get length() {\n    return this.left.length + this.right.length;\n  }\n\n  /**\n   * Remove and return `list[0]`;\n   * moves the cursor to `0`.\n   *\n   * @returns {T | undefined}\n   *   Item, optional.\n   */\n  shift() {\n    this.setCursor(0);\n    return this.right.pop();\n  }\n\n  /**\n   * Slice the buffer to get an array;\n   * does not move the cursor.\n   *\n   * @param {number} start\n   *   Start.\n   * @param {number | null | undefined} [end]\n   *   End (optional).\n   * @returns {Array<T>}\n   *   Array of items.\n   */\n  slice(start, end) {\n    /** @type {number} */\n    const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n    if (stop < this.left.length) {\n      return this.left.slice(start, stop);\n    }\n    if (start > this.left.length) {\n      return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n    }\n    return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n  }\n\n  /**\n   * Mimics the behavior of Array.prototype.splice() except for the change of\n   * interface necessary to avoid segfaults when patching in very large arrays.\n   *\n   * This operation moves cursor is moved to `start` and results in the cursor\n   * placed after any inserted items.\n   *\n   * @param {number} start\n   *   Start;\n   *   zero-based index at which to start changing the array;\n   *   negative numbers count backwards from the end of the array and values\n   *   that are out-of bounds are clamped to the appropriate end of the array.\n   * @param {number | null | undefined} [deleteCount=0]\n   *   Delete count (default: `0`);\n   *   maximum number of elements to delete, starting from start.\n   * @param {Array<T> | null | undefined} [items=[]]\n   *   Items to include in place of the deleted items (default: `[]`).\n   * @return {Array<T>}\n   *   Any removed items.\n   */\n  splice(start, deleteCount, items) {\n    /** @type {number} */\n    const count = deleteCount || 0;\n    this.setCursor(Math.trunc(start));\n    const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n    if (items) chunkedPush(this.left, items);\n    return removed.reverse();\n  }\n\n  /**\n   * Remove and return the highest-numbered item in the array, so\n   * `list[list.length - 1]`;\n   * Moves the cursor to `length`.\n   *\n   * @returns {T | undefined}\n   *   Item, optional.\n   */\n  pop() {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    return this.left.pop();\n  }\n\n  /**\n   * Inserts a single item to the high-numbered side of the array;\n   * moves the cursor to `length`.\n   *\n   * @param {T} item\n   *   Item.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  push(item) {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    this.left.push(item);\n  }\n\n  /**\n   * Inserts many items to the high-numbered side of the array.\n   * Moves the cursor to `length`.\n   *\n   * @param {Array<T>} items\n   *   Items.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  pushMany(items) {\n    this.setCursor(Number.POSITIVE_INFINITY);\n    chunkedPush(this.left, items);\n  }\n\n  /**\n   * Inserts a single item to the low-numbered side of the array;\n   * Moves the cursor to `0`.\n   *\n   * @param {T} item\n   *   Item.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  unshift(item) {\n    this.setCursor(0);\n    this.right.push(item);\n  }\n\n  /**\n   * Inserts many items to the low-numbered side of the array;\n   * moves the cursor to `0`.\n   *\n   * @param {Array<T>} items\n   *   Items.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  unshiftMany(items) {\n    this.setCursor(0);\n    chunkedPush(this.right, items.reverse());\n  }\n\n  /**\n   * Move the cursor to a specific position in the array. Requires\n   * time proportional to the distance moved.\n   *\n   * If `n < 0`, the cursor will end up at the beginning.\n   * If `n > length`, the cursor will end up at the end.\n   *\n   * @param {number} n\n   *   Position.\n   * @return {undefined}\n   *   Nothing.\n   */\n  setCursor(n) {\n    if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n    if (n < this.left.length) {\n      // Move cursor to the this.left\n      const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n      chunkedPush(this.right, removed.reverse());\n    } else {\n      // Move cursor to the this.right\n      const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n      chunkedPush(this.left, removed.reverse());\n    }\n  }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n *   Item type.\n * @param {Array<T>} list\n *   List to inject into.\n * @param {ReadonlyArray<T>} right\n *   Items to inject.\n * @return {undefined}\n *   Nothing.\n */\nfunction chunkedPush(list, right) {\n  /** @type {number} */\n  let chunkStart = 0;\n  if (right.length < 10000) {\n    list.push(...right);\n  } else {\n    while (chunkStart < right.length) {\n      list.push(...right.slice(chunkStart, chunkStart + 10000));\n      chunkStart += 10000;\n    }\n  }\n}","/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n *   List of events.\n * @returns {boolean}\n *   Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n  /** @type {Record<string, number>} */\n  const jumps = {};\n  let index = -1;\n  /** @type {Event} */\n  let event;\n  /** @type {number | undefined} */\n  let lineIndex;\n  /** @type {number} */\n  let otherIndex;\n  /** @type {Event} */\n  let otherEvent;\n  /** @type {Array<Event>} */\n  let parameters;\n  /** @type {Array<Event>} */\n  let subevents;\n  /** @type {boolean | undefined} */\n  let more;\n  const events = new SpliceBuffer(eventsArray);\n  while (++index < events.length) {\n    while (index in jumps) {\n      index = jumps[index];\n    }\n    event = events.get(index);\n\n    // Add a hook for the GFM tasklist extension, which needs to know if text\n    // is in the first content of a list item.\n    if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n      subevents = event[1]._tokenizer.events;\n      otherIndex = 0;\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n        otherIndex += 2;\n      }\n      if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n        while (++otherIndex < subevents.length) {\n          if (subevents[otherIndex][1].type === \"content\") {\n            break;\n          }\n          if (subevents[otherIndex][1].type === \"chunkText\") {\n            subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n            otherIndex++;\n          }\n        }\n      }\n    }\n\n    // Enter.\n    if (event[0] === 'enter') {\n      if (event[1].contentType) {\n        Object.assign(jumps, subcontent(events, index));\n        index = jumps[index];\n        more = true;\n      }\n    }\n    // Exit.\n    else if (event[1]._container) {\n      otherIndex = index;\n      lineIndex = undefined;\n      while (otherIndex--) {\n        otherEvent = events.get(otherIndex);\n        if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n          if (otherEvent[0] === 'enter') {\n            if (lineIndex) {\n              events.get(lineIndex)[1].type = \"lineEndingBlank\";\n            }\n            otherEvent[1].type = \"lineEnding\";\n            lineIndex = otherIndex;\n          }\n        } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n          // Move past.\n        } else {\n          break;\n        }\n      }\n      if (lineIndex) {\n        // Fix position.\n        event[1].end = {\n          ...events.get(lineIndex)[1].start\n        };\n\n        // Switch container exit w/ line endings.\n        parameters = events.slice(lineIndex, index);\n        parameters.unshift(event);\n        events.splice(lineIndex, index - lineIndex + 1, parameters);\n      }\n    }\n  }\n\n  // The changes to the `events` buffer must be copied back into the eventsArray\n  splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n  return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n *   Events.\n * @param {number} eventIndex\n *   Index.\n * @returns {Record<string, number>}\n *   Gaps.\n */\nfunction subcontent(events, eventIndex) {\n  const token = events.get(eventIndex)[1];\n  const context = events.get(eventIndex)[2];\n  let startPosition = eventIndex - 1;\n  /** @type {Array<number>} */\n  const startPositions = [];\n  let tokenizer = token._tokenizer;\n  if (!tokenizer) {\n    tokenizer = context.parser[token.contentType](token.start);\n    if (token._contentTypeTextTrailing) {\n      tokenizer._contentTypeTextTrailing = true;\n    }\n  }\n  const childEvents = tokenizer.events;\n  /** @type {Array<[number, number]>} */\n  const jumps = [];\n  /** @type {Record<string, number>} */\n  const gaps = {};\n  /** @type {Array<Chunk>} */\n  let stream;\n  /** @type {Token | undefined} */\n  let previous;\n  let index = -1;\n  /** @type {Token | undefined} */\n  let current = token;\n  let adjust = 0;\n  let start = 0;\n  const breaks = [start];\n\n  // Loop forward through the linked tokens to pass them in order to the\n  // subtokenizer.\n  while (current) {\n    // Find the position of the event for this token.\n    while (events.get(++startPosition)[1] !== current) {\n      // Empty.\n    }\n    startPositions.push(startPosition);\n    if (!current._tokenizer) {\n      stream = context.sliceStream(current);\n      if (!current.next) {\n        stream.push(null);\n      }\n      if (previous) {\n        tokenizer.defineSkip(current.start);\n      }\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = true;\n      }\n      tokenizer.write(stream);\n      if (current._isInFirstContentOfListItem) {\n        tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n      }\n    }\n\n    // Unravel the next token.\n    previous = current;\n    current = current.next;\n  }\n\n  // Now, loop back through all events (and linked tokens), to figure out which\n  // parts belong where.\n  current = token;\n  while (++index < childEvents.length) {\n    if (\n    // Find a void token that includes a break.\n    childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n      start = index + 1;\n      breaks.push(start);\n      // Help GC.\n      current._tokenizer = undefined;\n      current.previous = undefined;\n      current = current.next;\n    }\n  }\n\n  // Help GC.\n  tokenizer.events = [];\n\n  // If there’s one more token (which is the cases for lines that end in an\n  // EOF), that’s perfect: the last point we found starts it.\n  // If there isn’t then make sure any remaining content is added to it.\n  if (current) {\n    // Help GC.\n    current._tokenizer = undefined;\n    current.previous = undefined;\n  } else {\n    breaks.pop();\n  }\n\n  // Now splice the events from the subtokenizer into the current events,\n  // moving back to front so that splice indices aren’t affected.\n  index = breaks.length;\n  while (index--) {\n    const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n    const start = startPositions.pop();\n    jumps.push([start, start + slice.length - 1]);\n    events.splice(start, 2, slice);\n  }\n  jumps.reverse();\n  index = -1;\n  while (++index < jumps.length) {\n    gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n    adjust += jumps[index][1] - jumps[index][0] - 1;\n  }\n  return gaps;\n}","/**\n * @import {\n *   Construct,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n  resolve: resolveContent,\n  tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n  partial: true,\n  tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n  subtokenize(events);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n  /** @type {Token | undefined} */\n  let previous;\n  return chunkStart;\n\n  /**\n   * Before a content chunk.\n   *\n   * ```markdown\n   * > | abc\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function chunkStart(code) {\n    effects.enter(\"content\");\n    previous = effects.enter(\"chunkContent\", {\n      contentType: \"content\"\n    });\n    return chunkInside(code);\n  }\n\n  /**\n   * In a content chunk.\n   *\n   * ```markdown\n   * > | abc\n   *     ^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function chunkInside(code) {\n    if (code === null) {\n      return contentEnd(code);\n    }\n\n    // To do: in `markdown-rs`, each line is parsed on its own, and everything\n    // is stitched together resolving.\n    if (markdownLineEnding(code)) {\n      return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n    }\n\n    // Data.\n    effects.consume(code);\n    return chunkInside;\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function contentEnd(code) {\n    effects.exit(\"chunkContent\");\n    effects.exit(\"content\");\n    return ok(code);\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function contentContinue(code) {\n    effects.consume(code);\n    effects.exit(\"chunkContent\");\n    previous.next = effects.enter(\"chunkContent\", {\n      contentType: \"content\",\n      previous\n    });\n    previous = previous.next;\n    return chunkInside;\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n  const self = this;\n  return startLookahead;\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function startLookahead(code) {\n    effects.exit(\"chunkContent\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, prefixed, \"linePrefix\");\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function prefixed(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code);\n    }\n\n    // Always populated by defaults.\n\n    const tail = self.events[self.events.length - 1];\n    if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n      return ok(code);\n    }\n    return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n  }\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n *   Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n *   Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n *   Type when not enclosed (`b`).\n * @param {TokenType} stringType\n *   Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n *   Depth of nested parens (inclusive).\n * @returns {State}\n *   Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n  const limit = max || Number.POSITIVE_INFINITY;\n  let balance = 0;\n  return start;\n\n  /**\n   * Start of destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *     ^\n   * > | aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 60) {\n      effects.enter(type);\n      effects.enter(literalType);\n      effects.enter(literalMarkerType);\n      effects.consume(code);\n      effects.exit(literalMarkerType);\n      return enclosedBefore;\n    }\n\n    // ASCII control, space, closing paren.\n    if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n      return nok(code);\n    }\n    effects.enter(type);\n    effects.enter(rawType);\n    effects.enter(stringType);\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return raw(code);\n  }\n\n  /**\n   * After `<`, at an enclosed destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosedBefore(code) {\n    if (code === 62) {\n      effects.enter(literalMarkerType);\n      effects.consume(code);\n      effects.exit(literalMarkerType);\n      effects.exit(literalType);\n      effects.exit(type);\n      return ok;\n    }\n    effects.enter(stringType);\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return enclosed(code);\n  }\n\n  /**\n   * In enclosed destination.\n   *\n   * ```markdown\n   * > | <aa>\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosed(code) {\n    if (code === 62) {\n      effects.exit(\"chunkString\");\n      effects.exit(stringType);\n      return enclosedBefore(code);\n    }\n    if (code === null || code === 60 || markdownLineEnding(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return code === 92 ? enclosedEscape : enclosed;\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | <a\\*a>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function enclosedEscape(code) {\n    if (code === 60 || code === 62 || code === 92) {\n      effects.consume(code);\n      return enclosed;\n    }\n    return enclosed(code);\n  }\n\n  /**\n   * In raw destination.\n   *\n   * ```markdown\n   * > | aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function raw(code) {\n    if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n      effects.exit(\"chunkString\");\n      effects.exit(stringType);\n      effects.exit(rawType);\n      effects.exit(type);\n      return ok(code);\n    }\n    if (balance < limit && code === 40) {\n      effects.consume(code);\n      balance++;\n      return raw;\n    }\n    if (code === 41) {\n      effects.consume(code);\n      balance--;\n      return raw;\n    }\n\n    // ASCII control (but *not* `\\0`) and space and `(`.\n    // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n    // doesn’t.\n    if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return code === 92 ? rawEscape : raw;\n  }\n\n  /**\n   * After `\\`, at special character.\n   *\n   * ```markdown\n   * > | a\\*a\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function rawEscape(code) {\n    if (code === 40 || code === 41 || code === 92) {\n      effects.consume(code);\n      return raw;\n    }\n    return raw(code);\n  }\n}","/**\n * @import {\n *   Effects,\n *   State,\n *   TokenizeContext,\n *   TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n *   Tokenize context.\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n *   Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n *   Type for the identifier (`a`).\n * @returns {State}\n *   Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n  const self = this;\n  let size = 0;\n  /** @type {boolean} */\n  let seen;\n  return start;\n\n  /**\n   * Start of label.\n   *\n   * ```markdown\n   * > | [a]\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(type);\n    effects.enter(markerType);\n    effects.consume(code);\n    effects.exit(markerType);\n    effects.enter(stringType);\n    return atBreak;\n  }\n\n  /**\n   * In label, at something, before something else.\n   *\n   * ```markdown\n   * > | [a]\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n    // To do: remove in the future once we’ve switched from\n    // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n    // which doesn’t need this.\n    // Hidden footnotes hook.\n    /* c8 ignore next 3 */\n    code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n      return nok(code);\n    }\n    if (code === 93) {\n      effects.exit(stringType);\n      effects.enter(markerType);\n      effects.consume(code);\n      effects.exit(markerType);\n      effects.exit(type);\n      return ok;\n    }\n\n    // To do: indent? Link chunks and EOLs together?\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return atBreak;\n    }\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return labelInside(code);\n  }\n\n  /**\n   * In label, in text.\n   *\n   * ```markdown\n   * > | [a]\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelInside(code) {\n    if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n      effects.exit(\"chunkString\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    if (!seen) seen = !markdownSpace(code);\n    return code === 92 ? labelEscape : labelInside;\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | [a\\*a]\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code);\n      size++;\n      return labelInside;\n    }\n    return labelInside(code);\n  }\n}","/**\n * @import {\n *   Code,\n *   Effects,\n *   State,\n *   TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n *     b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @param {State} nok\n *   State switched to when unsuccessful.\n * @param {TokenType} type\n *   Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n *   Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n *   Type for the value (`a`).\n * @returns {State}\n *   Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Start of title.\n   *\n   * ```markdown\n   * > | \"a\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      effects.enter(type);\n      effects.enter(markerType);\n      effects.consume(code);\n      effects.exit(markerType);\n      marker = code === 40 ? 41 : code;\n      return begin;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After opening marker.\n   *\n   * This is also used at the closing marker.\n   *\n   * ```markdown\n   * > | \"a\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function begin(code) {\n    if (code === marker) {\n      effects.enter(markerType);\n      effects.consume(code);\n      effects.exit(markerType);\n      effects.exit(type);\n      return ok;\n    }\n    effects.enter(stringType);\n    return atBreak(code);\n  }\n\n  /**\n   * At something, before something else.\n   *\n   * ```markdown\n   * > | \"a\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === marker) {\n      effects.exit(stringType);\n      return begin(marker);\n    }\n    if (code === null) {\n      return nok(code);\n    }\n\n    // Note: blank lines can’t exist in content.\n    if (markdownLineEnding(code)) {\n      // To do: use `space_or_tab_eol_with_options`, connect.\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return factorySpace(effects, atBreak, \"linePrefix\");\n    }\n    effects.enter(\"chunkString\", {\n      contentType: \"string\"\n    });\n    return inside(code);\n  }\n\n  /**\n   *\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker || code === null || markdownLineEnding(code)) {\n      effects.exit(\"chunkString\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    return code === 92 ? escape : inside;\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * ```markdown\n   * > | \"a\\*b\"\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function escape(code) {\n    if (code === marker || code === 92) {\n      effects.consume(code);\n      return inside;\n    }\n    return inside(code);\n  }\n}","/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * *   line endings or spaces in markdown are often optional, in which case this\n *     factory can be used and `ok` will be switched to whether spaces were found\n *     or not\n * *   one line ending or space can be detected with\n *     `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n *   Context.\n * @param {State} ok\n *   State switched to when successful.\n * @returns {State}\n *   Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n  /** @type {boolean} */\n  let seen;\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      seen = true;\n      return start;\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n    }\n    return ok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n  name: 'definition',\n  tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n  partial: true,\n  tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n  const self = this;\n  /** @type {string} */\n  let identifier;\n  return start;\n\n  /**\n   * At start of a definition.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // Do not interrupt paragraphs (but do follow definitions).\n    // To do: do `interrupt` the way `markdown-rs` does.\n    // To do: parse whitespace the way `markdown-rs` does.\n    effects.enter(\"definition\");\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at `[`.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    // To do: parse whitespace the way `markdown-rs` does.\n\n    return factoryLabel.call(self, effects, labelAfter,\n    // Note: we don’t need to reset the way `markdown-rs` does.\n    nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n  }\n\n  /**\n   * After label.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAfter(code) {\n    identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n    if (code === 58) {\n      effects.enter(\"definitionMarker\");\n      effects.consume(code);\n      effects.exit(\"definitionMarker\");\n      return markerAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After marker.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function markerAfter(code) {\n    // Note: whitespace is optional.\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n  }\n\n  /**\n   * Before destination.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function destinationBefore(code) {\n    return factoryDestination(effects, destinationAfter,\n    // Note: we don’t need to reset the way `markdown-rs` does.\n    nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n  }\n\n  /**\n   * After destination.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function destinationAfter(code) {\n    return effects.attempt(titleBefore, after, after)(code);\n  }\n\n  /**\n   * After definition.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n  }\n\n  /**\n   * After definition, after optional whitespace.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterWhitespace(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"definition\");\n\n      // Note: we don’t care about uniqueness.\n      // It’s likely that that doesn’t happen very frequently.\n      // It is more likely that it wastes precious time.\n      self.parser.defined.push(identifier);\n\n      // To do: `markdown-rs` interrupt.\n      // // You’d be interrupting.\n      // tokenizer.interrupt = true\n      return ok(code);\n    }\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n  return titleBefore;\n\n  /**\n   * After destination, at whitespace.\n   *\n   * ```markdown\n   * > | [a]: b\n   *           ^\n   * > | [a]: b \"c\"\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleBefore(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n  }\n\n  /**\n   * At title.\n   *\n   * ```markdown\n   *   | [a]: b\n   * > | \"c\"\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function beforeMarker(code) {\n    return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n  }\n\n  /**\n   * After title.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleAfter(code) {\n    return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n  }\n\n  /**\n   * After title, after optional whitespace.\n   *\n   * ```markdown\n   * > | [a]: b \"c\"\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function titleAfterOptionalWhitespace(code) {\n    return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n  name: 'hardBreakEscape',\n  tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n  return start;\n\n  /**\n   * Start of a hard break (escape).\n   *\n   * ```markdown\n   * > | a\\\n   *      ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"hardBreakEscape\");\n    effects.consume(code);\n    return after;\n  }\n\n  /**\n   * After `\\`, at eol.\n   *\n   * ```markdown\n   * > | a\\\n   *       ^\n   *   | b\n   * ```\n   *\n   *  @type {State}\n   */\n  function after(code) {\n    if (markdownLineEnding(code)) {\n      effects.exit(\"hardBreakEscape\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n  name: 'headingAtx',\n  resolve: resolveHeadingAtx,\n  tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n  let contentEnd = events.length - 2;\n  let contentStart = 3;\n  /** @type {Token} */\n  let content;\n  /** @type {Token} */\n  let text;\n\n  // Prefix whitespace, part of the opening.\n  if (events[contentStart][1].type === \"whitespace\") {\n    contentStart += 2;\n  }\n\n  // Suffix whitespace, part of the closing.\n  if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n    contentEnd -= 2;\n  }\n  if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n    contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n  }\n  if (contentEnd > contentStart) {\n    content = {\n      type: \"atxHeadingText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end\n    };\n    text = {\n      type: \"chunkText\",\n      start: events[contentStart][1].start,\n      end: events[contentEnd][1].end,\n      contentType: \"text\"\n    };\n    splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n  let size = 0;\n  return start;\n\n  /**\n   * Start of a heading (atx).\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse indent like `markdown-rs`.\n    effects.enter(\"atxHeading\");\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at `#`.\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"atxHeadingSequence\");\n    return sequenceOpen(code);\n  }\n\n  /**\n   * In opening sequence.\n   *\n   * ```markdown\n   * > | ## aa\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceOpen(code) {\n    if (code === 35 && size++ < 6) {\n      effects.consume(code);\n      return sequenceOpen;\n    }\n\n    // Always at least one `#`.\n    if (code === null || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"atxHeadingSequence\");\n      return atBreak(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * After something, before something else.\n   *\n   * ```markdown\n   * > | ## aa\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === 35) {\n      effects.enter(\"atxHeadingSequence\");\n      return sequenceFurther(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"atxHeading\");\n      // To do: interrupt like `markdown-rs`.\n      // // Feel free to interrupt.\n      // tokenizer.interrupt = false\n      return ok(code);\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(effects, atBreak, \"whitespace\")(code);\n    }\n\n    // To do: generate `data` tokens, add the `text` token later.\n    // Needs edit map, see: `markdown.rs`.\n    effects.enter(\"atxHeadingText\");\n    return data(code);\n  }\n\n  /**\n   * In further sequence (after whitespace).\n   *\n   * Could be normal “visible” hashes in the heading or a final sequence.\n   *\n   * ```markdown\n   * > | ## aa ##\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequenceFurther(code) {\n    if (code === 35) {\n      effects.consume(code);\n      return sequenceFurther;\n    }\n    effects.exit(\"atxHeadingSequence\");\n    return atBreak(code);\n  }\n\n  /**\n   * In text.\n   *\n   * ```markdown\n   * > | ## aa\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function data(code) {\n    if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"atxHeadingText\");\n      return atBreak(code);\n    }\n    effects.consume(code);\n    return data;\n  }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n  'address',\n  'article',\n  'aside',\n  'base',\n  'basefont',\n  'blockquote',\n  'body',\n  'caption',\n  'center',\n  'col',\n  'colgroup',\n  'dd',\n  'details',\n  'dialog',\n  'dir',\n  'div',\n  'dl',\n  'dt',\n  'fieldset',\n  'figcaption',\n  'figure',\n  'footer',\n  'form',\n  'frame',\n  'frameset',\n  'h1',\n  'h2',\n  'h3',\n  'h4',\n  'h5',\n  'h6',\n  'head',\n  'header',\n  'hr',\n  'html',\n  'iframe',\n  'legend',\n  'li',\n  'link',\n  'main',\n  'menu',\n  'menuitem',\n  'nav',\n  'noframes',\n  'ol',\n  'optgroup',\n  'option',\n  'p',\n  'param',\n  'search',\n  'section',\n  'summary',\n  'table',\n  'tbody',\n  'td',\n  'tfoot',\n  'th',\n  'thead',\n  'title',\n  'tr',\n  'track',\n  'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @import {\n *   Code,\n *   Construct,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n  concrete: true,\n  name: 'htmlFlow',\n  resolveTo: resolveToHtmlFlow,\n  tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n  partial: true,\n  tokenize: tokenizeBlankLineBefore\n};\nconst nonLazyContinuationStart = {\n  partial: true,\n  tokenize: tokenizeNonLazyContinuationStart\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n  let index = events.length;\n  while (index--) {\n    if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n      break;\n    }\n  }\n  if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n    // Add the prefix start to the HTML token.\n    events[index][1].start = events[index - 2][1].start;\n    // Add the prefix start to the HTML line token.\n    events[index + 1][1].start = events[index - 2][1].start;\n    // Remove the line prefix.\n    events.splice(index - 2, 2);\n  }\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n  const self = this;\n  /** @type {number} */\n  let marker;\n  /** @type {boolean} */\n  let closingTag;\n  /** @type {string} */\n  let buffer;\n  /** @type {number} */\n  let index;\n  /** @type {Code} */\n  let markerB;\n  return start;\n\n  /**\n   * Start of HTML (flow).\n   *\n   * ```markdown\n   * > | <x />\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // To do: parse indent like `markdown-rs`.\n    return before(code);\n  }\n\n  /**\n   * At `<`, after optional whitespace.\n   *\n   * ```markdown\n   * > | <x />\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"htmlFlow\");\n    effects.enter(\"htmlFlowData\");\n    effects.consume(code);\n    return open;\n  }\n\n  /**\n   * After `<`, at tag name or other stuff.\n   *\n   * ```markdown\n   * > | <x />\n   *      ^\n   * > | <!doctype>\n   *      ^\n   * > | <!--xxx-->\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code);\n      return declarationOpen;\n    }\n    if (code === 47) {\n      effects.consume(code);\n      closingTag = true;\n      return tagCloseStart;\n    }\n    if (code === 63) {\n      effects.consume(code);\n      marker = 3;\n      // To do:\n      // tokenizer.concrete = true\n      // To do: use `markdown-rs` style interrupt.\n      // While we’re in an instruction instead of a declaration, we’re on a `?`\n      // right now, so we do need to search for `>`, similar to declarations.\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      // Always the case.\n      effects.consume(code);\n      buffer = String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!`, at declaration, comment, or CDATA.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *       ^\n   * > | <!--xxx-->\n   *       ^\n   * > | <![CDATA[>&<]]>\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code);\n      marker = 2;\n      return commentOpenInside;\n    }\n    if (code === 91) {\n      effects.consume(code);\n      marker = 5;\n      index = 0;\n      return cdataOpenInside;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      marker = 4;\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!-`, inside a comment, at another `-`.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuationDeclarationInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<![`, inside CDATA, expecting `CDATA[`.\n   *\n   * ```markdown\n   * > | <![CDATA[>&<]]>\n   *        ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataOpenInside(code) {\n    const value = \"CDATA[\";\n    if (code === value.charCodeAt(index++)) {\n      effects.consume(code);\n      if (index === value.length) {\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok : continuation;\n      }\n      return cdataOpenInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `</`, in closing tag, at tag name.\n   *\n   * ```markdown\n   * > | </x>\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseStart(code) {\n    if (asciiAlpha(code)) {\n      // Always the case.\n      effects.consume(code);\n      buffer = String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In tag name.\n   *\n   * ```markdown\n   * > | <ab>\n   *      ^^\n   * > | </ab>\n   *       ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagName(code) {\n    if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      const slash = code === 47;\n      const name = buffer.toLowerCase();\n      if (!slash && !closingTag && htmlRawNames.includes(name)) {\n        marker = 1;\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok(code) : continuation(code);\n      }\n      if (htmlBlockNames.includes(buffer.toLowerCase())) {\n        marker = 6;\n        if (slash) {\n          effects.consume(code);\n          return basicSelfClosing;\n        }\n\n        // // Do not form containers.\n        // tokenizer.concrete = true\n        return self.interrupt ? ok(code) : continuation(code);\n      }\n      marker = 7;\n      // Do not support complete HTML when interrupting.\n      return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n    }\n\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      buffer += String.fromCharCode(code);\n      return tagName;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After closing slash of a basic tag name.\n   *\n   * ```markdown\n   * > | <div/>\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function basicSelfClosing(code) {\n    if (code === 62) {\n      effects.consume(code);\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return self.interrupt ? ok : continuation;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After closing slash of a complete tag name.\n   *\n   * ```markdown\n   * > | <x/>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeClosingTagAfter(code) {\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeClosingTagAfter;\n    }\n    return completeEnd(code);\n  }\n\n  /**\n   * At an attribute name.\n   *\n   * At first, this state is used after a complete tag name, after whitespace,\n   * where it expects optional attributes or the end of the tag.\n   * It is also reused after attributes, when expecting more optional\n   * attributes.\n   *\n   * ```markdown\n   * > | <a />\n   *        ^\n   * > | <a :b>\n   *        ^\n   * > | <a _b>\n   *        ^\n   * > | <a b>\n   *        ^\n   * > | <a >\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeNameBefore(code) {\n    if (code === 47) {\n      effects.consume(code);\n      return completeEnd;\n    }\n\n    // ASCII alphanumerical and `:` and `_`.\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code);\n      return completeAttributeName;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeNameBefore;\n    }\n    return completeEnd(code);\n  }\n\n  /**\n   * In attribute name.\n   *\n   * ```markdown\n   * > | <a :b>\n   *         ^\n   * > | <a _b>\n   *         ^\n   * > | <a b>\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeName(code) {\n    // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n    if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return completeAttributeName;\n    }\n    return completeAttributeNameAfter(code);\n  }\n\n  /**\n   * After attribute name, at an optional initializer, the end of the tag, or\n   * whitespace.\n   *\n   * ```markdown\n   * > | <a b>\n   *         ^\n   * > | <a b=c>\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code);\n      return completeAttributeValueBefore;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeNameAfter;\n    }\n    return completeAttributeNameBefore(code);\n  }\n\n  /**\n   * Before unquoted, double quoted, or single quoted attribute value, allowing\n   * whitespace.\n   *\n   * ```markdown\n   * > | <a b=c>\n   *          ^\n   * > | <a b=\"c\">\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueBefore(code) {\n    if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n      return nok(code);\n    }\n    if (code === 34 || code === 39) {\n      effects.consume(code);\n      markerB = code;\n      return completeAttributeValueQuoted;\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAttributeValueBefore;\n    }\n    return completeAttributeValueUnquoted(code);\n  }\n\n  /**\n   * In double or single quoted attribute value.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *           ^\n   * > | <a b='c'>\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueQuoted(code) {\n    if (code === markerB) {\n      effects.consume(code);\n      markerB = null;\n      return completeAttributeValueQuotedAfter;\n    }\n    if (code === null || markdownLineEnding(code)) {\n      return nok(code);\n    }\n    effects.consume(code);\n    return completeAttributeValueQuoted;\n  }\n\n  /**\n   * In unquoted attribute value.\n   *\n   * ```markdown\n   * > | <a b=c>\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueUnquoted(code) {\n    if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n      return completeAttributeNameAfter(code);\n    }\n    effects.consume(code);\n    return completeAttributeValueUnquoted;\n  }\n\n  /**\n   * After double or single quoted attribute value, before whitespace or the\n   * end of the tag.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownSpace(code)) {\n      return completeAttributeNameBefore(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In certain circumstances of a complete tag where only an `>` is allowed.\n   *\n   * ```markdown\n   * > | <a b=\"c\">\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeEnd(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return completeAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `>` in a complete tag.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function completeAfter(code) {\n    if (code === null || markdownLineEnding(code)) {\n      // // Do not form containers.\n      // tokenizer.concrete = true\n      return continuation(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return completeAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In continuation of any HTML kind.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuation(code) {\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationCommentInside;\n    }\n    if (code === 60 && marker === 1) {\n      effects.consume(code);\n      return continuationRawTagOpen;\n    }\n    if (code === 62 && marker === 4) {\n      effects.consume(code);\n      return continuationClose;\n    }\n    if (code === 63 && marker === 3) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    if (code === 93 && marker === 5) {\n      effects.consume(code);\n      return continuationCdataInside;\n    }\n    if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n      effects.exit(\"htmlFlowData\");\n      return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationStart(code);\n    }\n    effects.consume(code);\n    return continuation;\n  }\n\n  /**\n   * In continuation, at eol.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   *   | asd\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationStart(code) {\n    return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n  }\n\n  /**\n   * In continuation, at eol, before non-lazy content.\n   *\n   * ```markdown\n   * > | <x>\n   *        ^\n   *   | asd\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationStartNonLazy(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return continuationBefore;\n  }\n\n  /**\n   * In continuation, before non-lazy content.\n   *\n   * ```markdown\n   *   | <x>\n   * > | asd\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationBefore(code) {\n    if (code === null || markdownLineEnding(code)) {\n      return continuationStart(code);\n    }\n    effects.enter(\"htmlFlowData\");\n    return continuation(code);\n  }\n\n  /**\n   * In comment continuation, after one `-`, expecting another.\n   *\n   * ```markdown\n   * > | <!--xxx-->\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCommentInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after `<`, at `/`.\n   *\n   * ```markdown\n   * > | <script>console.log(1)</script>\n   *                            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code);\n      buffer = '';\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after `</`, in a raw tag name.\n   *\n   * ```markdown\n   * > | <script>console.log(1)</script>\n   *                             ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawEndTag(code) {\n    if (code === 62) {\n      const name = buffer.toLowerCase();\n      if (htmlRawNames.includes(name)) {\n        effects.consume(code);\n        return continuationClose;\n      }\n      return continuation(code);\n    }\n    if (asciiAlpha(code) && buffer.length < 8) {\n      // Always the case.\n      effects.consume(code);\n      buffer += String.fromCharCode(code);\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In cdata continuation, after `]`, expecting `]>`.\n   *\n   * ```markdown\n   * > | <![CDATA[>&<]]>\n   *                  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCdataInside(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In declaration or instruction continuation, at `>`.\n   *\n   * ```markdown\n   * > | <!-->\n   *         ^\n   * > | <?>\n   *       ^\n   * > | <!q>\n   *        ^\n   * > | <!--ab-->\n   *             ^\n   * > | <![CDATA[>&<]]>\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return continuationClose;\n    }\n\n    // More dashes.\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In closed continuation: everything we get until the eol/eof is part of it.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationAfter(code);\n    }\n    effects.consume(code);\n    return continuationClose;\n  }\n\n  /**\n   * Done.\n   *\n   * ```markdown\n   * > | <!doctype>\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationAfter(code) {\n    effects.exit(\"htmlFlow\");\n    // // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    // // No longer concrete.\n    // tokenizer.concrete = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * At eol, before continuation.\n   *\n   * ```markdown\n   * > | * ```js\n   *            ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * A continuation.\n   *\n   * ```markdown\n   *   | * ```js\n   * > | b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n  return start;\n\n  /**\n   * Before eol, expecting blank line.\n   *\n   * ```markdown\n   * > | <div>\n   *          ^\n   *   |\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return effects.attempt(blankLine, ok, nok);\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n  name: 'htmlText',\n  tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n  const self = this;\n  /** @type {NonNullable<Code> | undefined} */\n  let marker;\n  /** @type {number} */\n  let index;\n  /** @type {State} */\n  let returnState;\n  return start;\n\n  /**\n   * Start of HTML (text).\n   *\n   * ```markdown\n   * > | a <b> c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"htmlText\");\n    effects.enter(\"htmlTextData\");\n    effects.consume(code);\n    return open;\n  }\n\n  /**\n   * After `<`, at tag name or other stuff.\n   *\n   * ```markdown\n   * > | a <b> c\n   *        ^\n   * > | a <!doctype> c\n   *        ^\n   * > | a <!--b--> c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 33) {\n      effects.consume(code);\n      return declarationOpen;\n    }\n    if (code === 47) {\n      effects.consume(code);\n      return tagCloseStart;\n    }\n    if (code === 63) {\n      effects.consume(code);\n      return instruction;\n    }\n\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return tagOpen;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `<!`, at declaration, comment, or CDATA.\n   *\n   * ```markdown\n   * > | a <!doctype> c\n   *         ^\n   * > | a <!--b--> c\n   *         ^\n   * > | a <![CDATA[>&<]]> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declarationOpen(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentOpenInside;\n    }\n    if (code === 91) {\n      effects.consume(code);\n      index = 0;\n      return cdataOpenInside;\n    }\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return declaration;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In a comment, after `<!-`, at another `-`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentOpenInside(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentEnd;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In comment.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function comment(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 45) {\n      effects.consume(code);\n      return commentClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = comment;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return comment;\n  }\n\n  /**\n   * In comment, after `-`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentClose(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return commentEnd;\n    }\n    return comment(code);\n  }\n\n  /**\n   * In comment, after `--`.\n   *\n   * ```markdown\n   * > | a <!--b--> c\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function commentEnd(code) {\n    return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n  }\n\n  /**\n   * After `<![`, in CDATA, expecting `CDATA[`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *          ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataOpenInside(code) {\n    const value = \"CDATA[\";\n    if (code === value.charCodeAt(index++)) {\n      effects.consume(code);\n      return index === value.length ? cdata : cdataOpenInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In CDATA.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                ^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdata(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 93) {\n      effects.consume(code);\n      return cdataClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = cdata;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return cdata;\n  }\n\n  /**\n   * In CDATA, after `]`, at another `]`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataClose(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return cdataEnd;\n    }\n    return cdata(code);\n  }\n\n  /**\n   * In CDATA, after `]]`, at `>`.\n   *\n   * ```markdown\n   * > | a <![CDATA[>&<]]> b\n   *                     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function cdataEnd(code) {\n    if (code === 62) {\n      return end(code);\n    }\n    if (code === 93) {\n      effects.consume(code);\n      return cdataEnd;\n    }\n    return cdata(code);\n  }\n\n  /**\n   * In declaration.\n   *\n   * ```markdown\n   * > | a <!b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function declaration(code) {\n    if (code === null || code === 62) {\n      return end(code);\n    }\n    if (markdownLineEnding(code)) {\n      returnState = declaration;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return declaration;\n  }\n\n  /**\n   * In instruction.\n   *\n   * ```markdown\n   * > | a <?b?> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function instruction(code) {\n    if (code === null) {\n      return nok(code);\n    }\n    if (code === 63) {\n      effects.consume(code);\n      return instructionClose;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = instruction;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return instruction;\n  }\n\n  /**\n   * In instruction, after `?`, at `>`.\n   *\n   * ```markdown\n   * > | a <?b?> c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function instructionClose(code) {\n    return code === 62 ? end(code) : instruction(code);\n  }\n\n  /**\n   * After `</`, in closing tag, at tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseStart(code) {\n    // ASCII alphabetical.\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return tagClose;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `</x`, in a tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagClose(code) {\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagClose;\n    }\n    return tagCloseBetween(code);\n  }\n\n  /**\n   * In closing tag, after tag name.\n   *\n   * ```markdown\n   * > | a </b> c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagCloseBetween(code) {\n    if (markdownLineEnding(code)) {\n      returnState = tagCloseBetween;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagCloseBetween;\n    }\n    return end(code);\n  }\n\n  /**\n   * After `<x`, in opening tag name.\n   *\n   * ```markdown\n   * > | a <b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpen(code) {\n    // ASCII alphanumerical and `-`.\n    if (code === 45 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagOpen;\n    }\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In opening tag, after tag name.\n   *\n   * ```markdown\n   * > | a <b> c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenBetween(code) {\n    if (code === 47) {\n      effects.consume(code);\n      return end;\n    }\n\n    // ASCII alphabetical and `:` and `_`.\n    if (code === 58 || code === 95 || asciiAlpha(code)) {\n      effects.consume(code);\n      return tagOpenAttributeName;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenBetween;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenBetween;\n    }\n    return end(code);\n  }\n\n  /**\n   * In attribute name.\n   *\n   * ```markdown\n   * > | a <b c> d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeName(code) {\n    // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n    if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n      effects.consume(code);\n      return tagOpenAttributeName;\n    }\n    return tagOpenAttributeNameAfter(code);\n  }\n\n  /**\n   * After attribute name, before initializer, the end of the tag, or\n   * whitespace.\n   *\n   * ```markdown\n   * > | a <b c> d\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeNameAfter(code) {\n    if (code === 61) {\n      effects.consume(code);\n      return tagOpenAttributeValueBefore;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeNameAfter;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenAttributeNameAfter;\n    }\n    return tagOpenBetween(code);\n  }\n\n  /**\n   * Before unquoted, double quoted, or single quoted attribute value, allowing\n   * whitespace.\n   *\n   * ```markdown\n   * > | a <b c=d> e\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueBefore(code) {\n    if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n      return nok(code);\n    }\n    if (code === 34 || code === 39) {\n      effects.consume(code);\n      marker = code;\n      return tagOpenAttributeValueQuoted;\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueBefore;\n      return lineEndingBefore(code);\n    }\n    if (markdownSpace(code)) {\n      effects.consume(code);\n      return tagOpenAttributeValueBefore;\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueUnquoted;\n  }\n\n  /**\n   * In double or single quoted attribute value.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueQuoted(code) {\n    if (code === marker) {\n      effects.consume(code);\n      marker = undefined;\n      return tagOpenAttributeValueQuotedAfter;\n    }\n    if (code === null) {\n      return nok(code);\n    }\n    if (markdownLineEnding(code)) {\n      returnState = tagOpenAttributeValueQuoted;\n      return lineEndingBefore(code);\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueQuoted;\n  }\n\n  /**\n   * In unquoted attribute value.\n   *\n   * ```markdown\n   * > | a <b c=d> e\n   *            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueUnquoted(code) {\n    if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n      return nok(code);\n    }\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    effects.consume(code);\n    return tagOpenAttributeValueUnquoted;\n  }\n\n  /**\n   * After double or single quoted attribute value, before whitespace or the end\n   * of the tag.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function tagOpenAttributeValueQuotedAfter(code) {\n    if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n      return tagOpenBetween(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In certain circumstances of a tag where only an `>` is allowed.\n   *\n   * ```markdown\n   * > | a <b c=\"d\"> e\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function end(code) {\n    if (code === 62) {\n      effects.consume(code);\n      effects.exit(\"htmlTextData\");\n      effects.exit(\"htmlText\");\n      return ok;\n    }\n    return nok(code);\n  }\n\n  /**\n   * At eol.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   * > | a <!--a\n   *            ^\n   *   | b-->\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingBefore(code) {\n    effects.exit(\"htmlTextData\");\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return lineEndingAfter;\n  }\n\n  /**\n   * After eol, at optional whitespace.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   *   | a <!--a\n   * > | b-->\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingAfter(code) {\n    // Always populated by defaults.\n\n    return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n  }\n\n  /**\n   * After eol, after optional whitespace.\n   *\n   * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n   * > empty tokens.\n   *\n   * ```markdown\n   *   | a <!--a\n   * > | b-->\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function lineEndingAfterPrefix(code) {\n    effects.enter(\"htmlTextData\");\n    return returnState(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   Event,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer,\n *   Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n  name: 'labelEnd',\n  resolveAll: resolveAllLabelEnd,\n  resolveTo: resolveToLabelEnd,\n  tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n  tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n  tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n  tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n  let index = -1;\n  /** @type {Array<Event>} */\n  const newEvents = [];\n  while (++index < events.length) {\n    const token = events[index][1];\n    newEvents.push(events[index]);\n    if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n      // Remove the marker.\n      const offset = token.type === \"labelImage\" ? 4 : 2;\n      token.type = \"data\";\n      index += offset;\n    }\n  }\n\n  // If the events are equal, we don't have to copy newEvents to events\n  if (events.length !== newEvents.length) {\n    splice(events, 0, events.length, newEvents);\n  }\n  return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n  let index = events.length;\n  let offset = 0;\n  /** @type {Token} */\n  let token;\n  /** @type {number | undefined} */\n  let open;\n  /** @type {number | undefined} */\n  let close;\n  /** @type {Array<Event>} */\n  let media;\n\n  // Find an opening.\n  while (index--) {\n    token = events[index][1];\n    if (open) {\n      // If we see another link, or inactive link label, we’ve been here before.\n      if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n        break;\n      }\n\n      // Mark other link openings as inactive, as we can’t have links in\n      // links.\n      if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n        token._inactive = true;\n      }\n    } else if (close) {\n      if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n        open = index;\n        if (token.type !== \"labelLink\") {\n          offset = 2;\n          break;\n        }\n      }\n    } else if (token.type === \"labelEnd\") {\n      close = index;\n    }\n  }\n  const group = {\n    type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n    start: {\n      ...events[open][1].start\n    },\n    end: {\n      ...events[events.length - 1][1].end\n    }\n  };\n  const label = {\n    type: \"label\",\n    start: {\n      ...events[open][1].start\n    },\n    end: {\n      ...events[close][1].end\n    }\n  };\n  const text = {\n    type: \"labelText\",\n    start: {\n      ...events[open + offset + 2][1].end\n    },\n    end: {\n      ...events[close - 2][1].start\n    }\n  };\n  media = [['enter', group, context], ['enter', label, context]];\n\n  // Opening marker.\n  media = push(media, events.slice(open + 1, open + offset + 3));\n\n  // Text open.\n  media = push(media, [['enter', text, context]]);\n\n  // Always populated by defaults.\n\n  // Between.\n  media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n  // Text close, marker close, label close.\n  media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n  // Reference, resource, or so.\n  media = push(media, events.slice(close + 1));\n\n  // Media close.\n  media = push(media, [['exit', group, context]]);\n  splice(events, open, events.length, media);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n  const self = this;\n  let index = self.events.length;\n  /** @type {Token} */\n  let labelStart;\n  /** @type {boolean} */\n  let defined;\n\n  // Find an opening.\n  while (index--) {\n    if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n      labelStart = self.events[index][1];\n      break;\n    }\n  }\n  return start;\n\n  /**\n   * Start of label end.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *       ^\n   * > | [a][b] c\n   *       ^\n   * > | [a][] b\n   *       ^\n   * > | [a] b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // If there is not an okay opening.\n    if (!labelStart) {\n      return nok(code);\n    }\n\n    // If the corresponding label (link) start is marked as inactive,\n    // it means we’d be wrapping a link, like this:\n    //\n    // ```markdown\n    // > | a [b [c](d) e](f) g.\n    //                  ^\n    // ```\n    //\n    // We can’t have that, so it’s just balanced brackets.\n    if (labelStart._inactive) {\n      return labelEndNok(code);\n    }\n    defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n      start: labelStart.end,\n      end: self.now()\n    })));\n    effects.enter(\"labelEnd\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelEnd\");\n    return after;\n  }\n\n  /**\n   * After `]`.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *       ^\n   * > | [a][b] c\n   *       ^\n   * > | [a][] b\n   *       ^\n   * > | [a] b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n    // an extension.\n\n    // Resource (`[asd](fgh)`)?\n    if (code === 40) {\n      return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n    }\n\n    // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n    if (code === 91) {\n      return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n    }\n\n    // Shortcut (`[asd]`) reference?\n    return defined ? labelEndOk(code) : labelEndNok(code);\n  }\n\n  /**\n   * After `]`, at `[`, but not at a full reference.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] b\n   *        ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceNotFull(code) {\n    return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n  }\n\n  /**\n   * Done, we found something.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *           ^\n   * > | [a][b] c\n   *           ^\n   * > | [a][] b\n   *          ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEndOk(code) {\n    // Note: `markdown-rs` does a bunch of stuff here.\n    return ok(code);\n  }\n\n  /**\n   * Done, it’s nothing.\n   *\n   * There was an okay opening, but we didn’t match anything.\n   *\n   * ```markdown\n   * > | [a](b c\n   *        ^\n   * > | [a][b c\n   *        ^\n   * > | [a] b\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEndNok(code) {\n    labelStart._balanced = true;\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n  return resourceStart;\n\n  /**\n   * At a resource.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceStart(code) {\n    effects.enter(\"resource\");\n    effects.enter(\"resourceMarker\");\n    effects.consume(code);\n    effects.exit(\"resourceMarker\");\n    return resourceBefore;\n  }\n\n  /**\n   * In resource, after `(`, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceBefore(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n  }\n\n  /**\n   * In resource, after optional whitespace, at `)` or a destination.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceOpen(code) {\n    if (code === 41) {\n      return resourceEnd(code);\n    }\n    return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n  }\n\n  /**\n   * In resource, after destination, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b) c\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceDestinationAfter(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n  }\n\n  /**\n   * At invalid destination.\n   *\n   * ```markdown\n   * > | [a](<<) b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceDestinationMissing(code) {\n    return nok(code);\n  }\n\n  /**\n   * In resource, after destination and whitespace, at `(` or title.\n   *\n   * ```markdown\n   * > | [a](b ) c\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceBetween(code) {\n    if (code === 34 || code === 39 || code === 40) {\n      return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n    }\n    return resourceEnd(code);\n  }\n\n  /**\n   * In resource, after title, at optional whitespace.\n   *\n   * ```markdown\n   * > | [a](b \"c\") d\n   *              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceTitleAfter(code) {\n    return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n  }\n\n  /**\n   * In resource, at `)`.\n   *\n   * ```markdown\n   * > | [a](b) d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function resourceEnd(code) {\n    if (code === 41) {\n      effects.enter(\"resourceMarker\");\n      effects.consume(code);\n      effects.exit(\"resourceMarker\");\n      effects.exit(\"resource\");\n      return ok;\n    }\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n  const self = this;\n  return referenceFull;\n\n  /**\n   * In a reference (full), at the `[`.\n   *\n   * ```markdown\n   * > | [a][b] d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFull(code) {\n    return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n  }\n\n  /**\n   * In a reference (full), after `]`.\n   *\n   * ```markdown\n   * > | [a][b] d\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFullAfter(code) {\n    return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n  }\n\n  /**\n   * In reference (full) that was missing.\n   *\n   * ```markdown\n   * > | [a][b d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceFullMissing(code) {\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n  return referenceCollapsedStart;\n\n  /**\n   * In reference (collapsed), at `[`.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] d\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function referenceCollapsedStart(code) {\n    // We only attempt a collapsed label if there’s a `[`.\n\n    effects.enter(\"reference\");\n    effects.enter(\"referenceMarker\");\n    effects.consume(code);\n    effects.exit(\"referenceMarker\");\n    return referenceCollapsedOpen;\n  }\n\n  /**\n   * In reference (collapsed), at `]`.\n   *\n   * > 👉 **Note**: we only get here if the label is defined.\n   *\n   * ```markdown\n   * > | [a][] d\n   *         ^\n   * ```\n   *\n   *  @type {State}\n   */\n  function referenceCollapsedOpen(code) {\n    if (code === 93) {\n      effects.enter(\"referenceMarker\");\n      effects.consume(code);\n      effects.exit(\"referenceMarker\");\n      effects.exit(\"reference\");\n      return ok;\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n  name: 'labelStartImage',\n  resolveAll: labelEnd.resolveAll,\n  tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of label (image) start.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"labelImage\");\n    effects.enter(\"labelImageMarker\");\n    effects.consume(code);\n    effects.exit(\"labelImageMarker\");\n    return open;\n  }\n\n  /**\n   * After `!`, at `[`.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (code === 91) {\n      effects.enter(\"labelMarker\");\n      effects.consume(code);\n      effects.exit(\"labelMarker\");\n      effects.exit(\"labelImage\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After `![`.\n   *\n   * ```markdown\n   * > | a ![b] c\n   *         ^\n   * ```\n   *\n   * This is needed in because, when GFM footnotes are enabled, images never\n   * form when started with a `^`.\n   * Instead, links form:\n   *\n   * ```markdown\n   * ![^a](b)\n   *\n   * ![^a][b]\n   *\n   * [b]: c\n   * ```\n   *\n   * ```html\n   * <p>!<a href=\\\"b\\\">^a</a></p>\n   * <p>!<a href=\\\"c\\\">^a</a></p>\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // To do: use a new field to do this, this is still needed for\n    // `micromark-extension-gfm-footnote`, but the `label-start-link`\n    // behavior isn’t.\n    // Hidden footnotes hook.\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n  name: 'labelStartLink',\n  resolveAll: labelEnd.resolveAll,\n  tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * Start of label (link) start.\n   *\n   * ```markdown\n   * > | a [b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"labelLink\");\n    effects.enter(\"labelMarker\");\n    effects.consume(code);\n    effects.exit(\"labelMarker\");\n    effects.exit(\"labelLink\");\n    return after;\n  }\n\n  /** @type {State} */\n  function after(code) {\n    // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n    // remove.\n    // Hidden footnotes hook.\n    /* c8 ignore next 3 */\n    return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n  }\n}","/**\n * @import {\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n  name: 'lineEnding',\n  tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    return factorySpace(effects, ok, \"linePrefix\");\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n  name: 'thematicBreak',\n  tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n  let size = 0;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * Start of thematic break.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter(\"thematicBreak\");\n    // To do: parse indent like `markdown-rs`.\n    return before(code);\n  }\n\n  /**\n   * After optional whitespace, at marker.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    marker = code;\n    return atBreak(code);\n  }\n\n  /**\n   * After something, before something else.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atBreak(code) {\n    if (code === marker) {\n      effects.enter(\"thematicBreakSequence\");\n      return sequence(code);\n    }\n    if (size >= 3 && (code === null || markdownLineEnding(code))) {\n      effects.exit(\"thematicBreak\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In sequence.\n   *\n   * ```markdown\n   * > | ***\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function sequence(code) {\n    if (code === marker) {\n      effects.consume(code);\n      size++;\n      return sequence;\n    }\n    effects.exit(\"thematicBreakSequence\");\n    return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   Exiter,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n  continuation: {\n    tokenize: tokenizeListContinuation\n  },\n  exit: tokenizeListEnd,\n  name: 'list',\n  tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n  partial: true,\n  tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n  partial: true,\n  tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n  const self = this;\n  const tail = self.events[self.events.length - 1];\n  let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n  let size = 0;\n  return start;\n\n  /** @type {State} */\n  function start(code) {\n    const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n    if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n      if (!self.containerState.type) {\n        self.containerState.type = kind;\n        effects.enter(kind, {\n          _container: true\n        });\n      }\n      if (kind === \"listUnordered\") {\n        effects.enter(\"listItemPrefix\");\n        return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n      }\n      if (!self.interrupt || code === 49) {\n        effects.enter(\"listItemPrefix\");\n        effects.enter(\"listItemValue\");\n        return inside(code);\n      }\n    }\n    return nok(code);\n  }\n\n  /** @type {State} */\n  function inside(code) {\n    if (asciiDigit(code) && ++size < 10) {\n      effects.consume(code);\n      return inside;\n    }\n    if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n      effects.exit(\"listItemValue\");\n      return atMarker(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * @type {State}\n   **/\n  function atMarker(code) {\n    effects.enter(\"listItemMarker\");\n    effects.consume(code);\n    effects.exit(\"listItemMarker\");\n    self.containerState.marker = self.containerState.marker || code;\n    return effects.check(blankLine,\n    // Can’t be empty when interrupting.\n    self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n  }\n\n  /** @type {State} */\n  function onBlank(code) {\n    self.containerState.initialBlankLine = true;\n    initialSize++;\n    return endOfPrefix(code);\n  }\n\n  /** @type {State} */\n  function otherPrefix(code) {\n    if (markdownSpace(code)) {\n      effects.enter(\"listItemPrefixWhitespace\");\n      effects.consume(code);\n      effects.exit(\"listItemPrefixWhitespace\");\n      return endOfPrefix;\n    }\n    return nok(code);\n  }\n\n  /** @type {State} */\n  function endOfPrefix(code) {\n    self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n  const self = this;\n  self.containerState._closeFlow = undefined;\n  return effects.check(blankLine, onBlank, notBlank);\n\n  /** @type {State} */\n  function onBlank(code) {\n    self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n    // We have a blank line.\n    // Still, try to consume at most the items size.\n    return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n  }\n\n  /** @type {State} */\n  function notBlank(code) {\n    if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n      self.containerState.furtherBlankLines = undefined;\n      self.containerState.initialBlankLine = undefined;\n      return notInCurrentItem(code);\n    }\n    self.containerState.furtherBlankLines = undefined;\n    self.containerState.initialBlankLine = undefined;\n    return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n  }\n\n  /** @type {State} */\n  function notInCurrentItem(code) {\n    // While we do continue, we signal that the flow should be closed.\n    self.containerState._closeFlow = true;\n    // As we’re closing flow, we’re no longer interrupting.\n    self.interrupt = undefined;\n    // Always populated by defaults.\n\n    return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this;\n  return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n  /** @type {State} */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n  effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n  const self = this;\n\n  // Always populated by defaults.\n\n  return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n  /** @type {State} */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n  }\n}","/**\n * @import {\n *   Code,\n *   Construct,\n *   Resolver,\n *   State,\n *   TokenizeContext,\n *   Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n  name: 'setextUnderline',\n  resolveTo: resolveToSetextUnderline,\n  tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n  // To do: resolve like `markdown-rs`.\n  let index = events.length;\n  /** @type {number | undefined} */\n  let content;\n  /** @type {number | undefined} */\n  let text;\n  /** @type {number | undefined} */\n  let definition;\n\n  // Find the opening of the content.\n  // It’ll always exist: we don’t tokenize if it isn’t there.\n  while (index--) {\n    if (events[index][0] === 'enter') {\n      if (events[index][1].type === \"content\") {\n        content = index;\n        break;\n      }\n      if (events[index][1].type === \"paragraph\") {\n        text = index;\n      }\n    }\n    // Exit\n    else {\n      if (events[index][1].type === \"content\") {\n        // Remove the content end (if needed we’ll add it later)\n        events.splice(index, 1);\n      }\n      if (!definition && events[index][1].type === \"definition\") {\n        definition = index;\n      }\n    }\n  }\n  const heading = {\n    type: \"setextHeading\",\n    start: {\n      ...events[content][1].start\n    },\n    end: {\n      ...events[events.length - 1][1].end\n    }\n  };\n\n  // Change the paragraph to setext heading text.\n  events[text][1].type = \"setextHeadingText\";\n\n  // If we have definitions in the content, we’ll keep on having content,\n  // but we need move it.\n  if (definition) {\n    events.splice(text, 0, ['enter', heading, context]);\n    events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n    events[content][1].end = {\n      ...events[definition][1].end\n    };\n  } else {\n    events[content][1] = heading;\n  }\n\n  // Add the heading exit at the end.\n  events.push(['exit', heading, context]);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n  const self = this;\n  /** @type {NonNullable<Code>} */\n  let marker;\n  return start;\n\n  /**\n   * At start of heading (setext) underline.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    let index = self.events.length;\n    /** @type {boolean | undefined} */\n    let paragraph;\n    // Find an opening.\n    while (index--) {\n      // Skip enter/exit of line ending, line prefix, and content.\n      // We can now either have a definition or a paragraph.\n      if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n        paragraph = self.events[index][1].type === \"paragraph\";\n        break;\n      }\n    }\n\n    // To do: handle lazy/pierce like `markdown-rs`.\n    // To do: parse indent like `markdown-rs`.\n    if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n      effects.enter(\"setextHeadingLine\");\n      marker = code;\n      return before(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * After optional whitespace, at `-` or `=`.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function before(code) {\n    effects.enter(\"setextHeadingLineSequence\");\n    return inside(code);\n  }\n\n  /**\n   * In sequence.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    if (code === marker) {\n      effects.consume(code);\n      return inside;\n    }\n    effects.exit(\"setextHeadingLineSequence\");\n    return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n  }\n\n  /**\n   * After sequence, after optional whitespace.\n   *\n   * ```markdown\n   *   | aa\n   * > | ==\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"setextHeadingLine\");\n      return ok(code);\n    }\n    return nok(code);\n  }\n}","/**\n * @import {\n *   InitialConstruct,\n *   Initializer,\n *   State,\n *   TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n  tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n *   Self.\n * @type {Initializer}\n *   Initializer.\n */\nfunction initializeFlow(effects) {\n  const self = this;\n  const initial = effects.attempt(\n  // Try to parse a blank line.\n  blankLine, atBlankEnding,\n  // Try to parse initial flow (essentially, only code).\n  effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n  return initial;\n\n  /** @type {State} */\n  function atBlankEnding(code) {\n    if (code === null) {\n      effects.consume(code);\n      return;\n    }\n    effects.enter(\"lineEndingBlank\");\n    effects.consume(code);\n    effects.exit(\"lineEndingBlank\");\n    self.currentConstruct = undefined;\n    return initial;\n  }\n\n  /** @type {State} */\n  function afterConstruct(code) {\n    if (code === null) {\n      effects.consume(code);\n      return;\n    }\n    effects.enter(\"lineEnding\");\n    effects.consume(code);\n    effects.exit(\"lineEnding\");\n    self.currentConstruct = undefined;\n    return initial;\n  }\n}","/**\n * @import {\n *   Code,\n *   InitialConstruct,\n *   Initializer,\n *   Resolver,\n *   State,\n *   TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n  resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n *   Field.\n * @returns {InitialConstruct}\n *   Construct.\n */\nfunction initializeFactory(field) {\n  return {\n    resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n    tokenize: initializeText\n  };\n\n  /**\n   * @this {TokenizeContext}\n   *   Context.\n   * @type {Initializer}\n   */\n  function initializeText(effects) {\n    const self = this;\n    const constructs = this.parser.constructs[field];\n    const text = effects.attempt(constructs, start, notText);\n    return start;\n\n    /** @type {State} */\n    function start(code) {\n      return atBreak(code) ? text(code) : notText(code);\n    }\n\n    /** @type {State} */\n    function notText(code) {\n      if (code === null) {\n        effects.consume(code);\n        return;\n      }\n      effects.enter(\"data\");\n      effects.consume(code);\n      return data;\n    }\n\n    /** @type {State} */\n    function data(code) {\n      if (atBreak(code)) {\n        effects.exit(\"data\");\n        return text(code);\n      }\n\n      // Data.\n      effects.consume(code);\n      return data;\n    }\n\n    /**\n     * @param {Code} code\n     *   Code.\n     * @returns {boolean}\n     *   Whether the code is a break.\n     */\n    function atBreak(code) {\n      if (code === null) {\n        return true;\n      }\n      const list = constructs[code];\n      let index = -1;\n      if (list) {\n        // Always populated by defaults.\n\n        while (++index < list.length) {\n          const item = list[index];\n          if (!item.previous || item.previous.call(self, self.previous)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n  }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n *   Resolver.\n * @returns {Resolver}\n *   Resolver.\n */\nfunction createResolver(extraResolver) {\n  return resolveAllText;\n\n  /** @type {Resolver} */\n  function resolveAllText(events, context) {\n    let index = -1;\n    /** @type {number | undefined} */\n    let enter;\n\n    // A rather boring computation (to merge adjacent `data` events) which\n    // improves mm performance by 29%.\n    while (++index <= events.length) {\n      if (enter === undefined) {\n        if (events[index] && events[index][1].type === \"data\") {\n          enter = index;\n          index++;\n        }\n      } else if (!events[index] || events[index][1].type !== \"data\") {\n        // Don’t do anything if there is one data token.\n        if (index !== enter + 2) {\n          events[enter][1].end = events[index - 1][1].end;\n          events.splice(enter + 2, index - enter - 2);\n          index = enter + 2;\n        }\n        enter = undefined;\n      }\n    }\n    return extraResolver ? extraResolver(events, context) : events;\n  }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n  let eventIndex = 0; // Skip first.\n\n  while (++eventIndex <= events.length) {\n    if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n      const data = events[eventIndex - 1][1];\n      const chunks = context.sliceStream(data);\n      let index = chunks.length;\n      let bufferIndex = -1;\n      let size = 0;\n      /** @type {boolean | undefined} */\n      let tabs;\n      while (index--) {\n        const chunk = chunks[index];\n        if (typeof chunk === 'string') {\n          bufferIndex = chunk.length;\n          while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n            size++;\n            bufferIndex--;\n          }\n          if (bufferIndex) break;\n          bufferIndex = -1;\n        }\n        // Number\n        else if (chunk === -2) {\n          tabs = true;\n          size++;\n        } else if (chunk === -1) {\n          // Empty\n        } else {\n          // Replacement character, exit.\n          index++;\n          break;\n        }\n      }\n\n      // Allow final trailing whitespace.\n      if (context._contentTypeTextTrailing && eventIndex === events.length) {\n        size = 0;\n      }\n      if (size) {\n        const token = {\n          type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n          start: {\n            _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n            _index: data.start._index + index,\n            line: data.end.line,\n            column: data.end.column - size,\n            offset: data.end.offset - size\n          },\n          end: {\n            ...data.end\n          }\n        };\n        data.end = {\n          ...token.start\n        };\n        if (data.start.offset === data.end.offset) {\n          Object.assign(data, token);\n        } else {\n          events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n          eventIndex += 2;\n        }\n      }\n      eventIndex++;\n    }\n  }\n  return events;\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n  [42]: list,\n  [43]: list,\n  [45]: list,\n  [48]: list,\n  [49]: list,\n  [50]: list,\n  [51]: list,\n  [52]: list,\n  [53]: list,\n  [54]: list,\n  [55]: list,\n  [56]: list,\n  [57]: list,\n  [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n  [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n  [-2]: codeIndented,\n  [-1]: codeIndented,\n  [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n  [35]: headingAtx,\n  [42]: thematicBreak,\n  [45]: [setextUnderline, thematicBreak],\n  [60]: htmlFlow,\n  [61]: setextUnderline,\n  [95]: thematicBreak,\n  [96]: codeFenced,\n  [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n  [38]: characterReference,\n  [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n  [-5]: lineEnding,\n  [-4]: lineEnding,\n  [-3]: lineEnding,\n  [33]: labelStartImage,\n  [38]: characterReference,\n  [42]: attention,\n  [60]: [autolink, htmlText],\n  [91]: labelStartLink,\n  [92]: [hardBreakEscape, characterEscape],\n  [93]: labelEnd,\n  [95]: attention,\n  [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n  null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n  null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n  null: []\n};","/**\n * @import {\n *   Chunk,\n *   Code,\n *   ConstructRecord,\n *   Construct,\n *   Effects,\n *   InitialConstruct,\n *   ParseContext,\n *   Point,\n *   State,\n *   TokenizeContext,\n *   Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n *   Restore the state.\n * @returns {undefined}\n *   Nothing.\n *\n * @typedef Info\n *   Info.\n * @property {Restore} restore\n *   Restore.\n * @property {number} from\n *   From.\n *\n * @callback ReturnHandle\n *   Handle a successful run.\n * @param {Construct} construct\n *   Construct.\n * @param {Info} info\n *   Info.\n * @returns {undefined}\n *   Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n *   Parser.\n * @param {InitialConstruct} initialize\n *   Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n *   Point (optional).\n * @returns {TokenizeContext}\n *   Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n  /** @type {Point} */\n  let point = {\n    _bufferIndex: -1,\n    _index: 0,\n    line: from && from.line || 1,\n    column: from && from.column || 1,\n    offset: from && from.offset || 0\n  };\n  /** @type {Record<string, number>} */\n  const columnStart = {};\n  /** @type {Array<Construct>} */\n  const resolveAllConstructs = [];\n  /** @type {Array<Chunk>} */\n  let chunks = [];\n  /** @type {Array<Token>} */\n  let stack = [];\n  /** @type {boolean | undefined} */\n  let consumed = true;\n\n  /**\n   * Tools used for tokenizing.\n   *\n   * @type {Effects}\n   */\n  const effects = {\n    attempt: constructFactory(onsuccessfulconstruct),\n    check: constructFactory(onsuccessfulcheck),\n    consume,\n    enter,\n    exit,\n    interrupt: constructFactory(onsuccessfulcheck, {\n      interrupt: true\n    })\n  };\n\n  /**\n   * State and tools for resolving and serializing.\n   *\n   * @type {TokenizeContext}\n   */\n  const context = {\n    code: null,\n    containerState: {},\n    defineSkip,\n    events: [],\n    now,\n    parser,\n    previous: null,\n    sliceSerialize,\n    sliceStream,\n    write\n  };\n\n  /**\n   * The state function.\n   *\n   * @type {State | undefined}\n   */\n  let state = initialize.tokenize.call(context, effects);\n\n  /**\n   * Track which character we expect to be consumed, to catch bugs.\n   *\n   * @type {Code}\n   */\n  let expectedCode;\n  if (initialize.resolveAll) {\n    resolveAllConstructs.push(initialize);\n  }\n  return context;\n\n  /** @type {TokenizeContext['write']} */\n  function write(slice) {\n    chunks = push(chunks, slice);\n    main();\n\n    // Exit if we’re not done, resolve might change stuff.\n    if (chunks[chunks.length - 1] !== null) {\n      return [];\n    }\n    addResult(initialize, 0);\n\n    // Otherwise, resolve, and exit.\n    context.events = resolveAll(resolveAllConstructs, context.events, context);\n    return context.events;\n  }\n\n  //\n  // Tools.\n  //\n\n  /** @type {TokenizeContext['sliceSerialize']} */\n  function sliceSerialize(token, expandTabs) {\n    return serializeChunks(sliceStream(token), expandTabs);\n  }\n\n  /** @type {TokenizeContext['sliceStream']} */\n  function sliceStream(token) {\n    return sliceChunks(chunks, token);\n  }\n\n  /** @type {TokenizeContext['now']} */\n  function now() {\n    // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n    const {\n      _bufferIndex,\n      _index,\n      line,\n      column,\n      offset\n    } = point;\n    return {\n      _bufferIndex,\n      _index,\n      line,\n      column,\n      offset\n    };\n  }\n\n  /** @type {TokenizeContext['defineSkip']} */\n  function defineSkip(value) {\n    columnStart[value.line] = value.column;\n    accountForPotentialSkip();\n  }\n\n  //\n  // State management.\n  //\n\n  /**\n   * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n   * `consume`).\n   * Here is where we walk through the chunks, which either include strings of\n   * several characters, or numerical character codes.\n   * The reason to do this in a loop instead of a call is so the stack can\n   * drain.\n   *\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function main() {\n    /** @type {number} */\n    let chunkIndex;\n    while (point._index < chunks.length) {\n      const chunk = chunks[point._index];\n\n      // If we’re in a buffer chunk, loop through it.\n      if (typeof chunk === 'string') {\n        chunkIndex = point._index;\n        if (point._bufferIndex < 0) {\n          point._bufferIndex = 0;\n        }\n        while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n          go(chunk.charCodeAt(point._bufferIndex));\n        }\n      } else {\n        go(chunk);\n      }\n    }\n  }\n\n  /**\n   * Deal with one code.\n   *\n   * @param {Code} code\n   *   Code.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function go(code) {\n    consumed = undefined;\n    expectedCode = code;\n    state = state(code);\n  }\n\n  /** @type {Effects['consume']} */\n  function consume(code) {\n    if (markdownLineEnding(code)) {\n      point.line++;\n      point.column = 1;\n      point.offset += code === -3 ? 2 : 1;\n      accountForPotentialSkip();\n    } else if (code !== -1) {\n      point.column++;\n      point.offset++;\n    }\n\n    // Not in a string chunk.\n    if (point._bufferIndex < 0) {\n      point._index++;\n    } else {\n      point._bufferIndex++;\n\n      // At end of string chunk.\n      if (point._bufferIndex ===\n      // Points w/ non-negative `_bufferIndex` reference\n      // strings.\n      /** @type {string} */\n      chunks[point._index].length) {\n        point._bufferIndex = -1;\n        point._index++;\n      }\n    }\n\n    // Expose the previous character.\n    context.previous = code;\n\n    // Mark as consumed.\n    consumed = true;\n  }\n\n  /** @type {Effects['enter']} */\n  function enter(type, fields) {\n    /** @type {Token} */\n    // @ts-expect-error Patch instead of assign required fields to help GC.\n    const token = fields || {};\n    token.type = type;\n    token.start = now();\n    context.events.push(['enter', token, context]);\n    stack.push(token);\n    return token;\n  }\n\n  /** @type {Effects['exit']} */\n  function exit(type) {\n    const token = stack.pop();\n    token.end = now();\n    context.events.push(['exit', token, context]);\n    return token;\n  }\n\n  /**\n   * Use results.\n   *\n   * @type {ReturnHandle}\n   */\n  function onsuccessfulconstruct(construct, info) {\n    addResult(construct, info.from);\n  }\n\n  /**\n   * Discard results.\n   *\n   * @type {ReturnHandle}\n   */\n  function onsuccessfulcheck(_, info) {\n    info.restore();\n  }\n\n  /**\n   * Factory to attempt/check/interrupt.\n   *\n   * @param {ReturnHandle} onreturn\n   *   Callback.\n   * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n   *   Fields.\n   */\n  function constructFactory(onreturn, fields) {\n    return hook;\n\n    /**\n     * Handle either an object mapping codes to constructs, a list of\n     * constructs, or a single construct.\n     *\n     * @param {Array<Construct> | ConstructRecord | Construct} constructs\n     *   Constructs.\n     * @param {State} returnState\n     *   State.\n     * @param {State | undefined} [bogusState]\n     *   State.\n     * @returns {State}\n     *   State.\n     */\n    function hook(constructs, returnState, bogusState) {\n      /** @type {ReadonlyArray<Construct>} */\n      let listOfConstructs;\n      /** @type {number} */\n      let constructIndex;\n      /** @type {Construct} */\n      let currentConstruct;\n      /** @type {Info} */\n      let info;\n      return Array.isArray(constructs) ? /* c8 ignore next 1 */\n      handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n      // Looks like a construct.\n      handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n      /**\n       * Handle a list of construct.\n       *\n       * @param {ConstructRecord} map\n       *   Constructs.\n       * @returns {State}\n       *   State.\n       */\n      function handleMapOfConstructs(map) {\n        return start;\n\n        /** @type {State} */\n        function start(code) {\n          const left = code !== null && map[code];\n          const all = code !== null && map.null;\n          const list = [\n          // To do: add more extension tests.\n          /* c8 ignore next 2 */\n          ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n          return handleListOfConstructs(list)(code);\n        }\n      }\n\n      /**\n       * Handle a list of construct.\n       *\n       * @param {ReadonlyArray<Construct>} list\n       *   Constructs.\n       * @returns {State}\n       *   State.\n       */\n      function handleListOfConstructs(list) {\n        listOfConstructs = list;\n        constructIndex = 0;\n        if (list.length === 0) {\n          return bogusState;\n        }\n        return handleConstruct(list[constructIndex]);\n      }\n\n      /**\n       * Handle a single construct.\n       *\n       * @param {Construct} construct\n       *   Construct.\n       * @returns {State}\n       *   State.\n       */\n      function handleConstruct(construct) {\n        return start;\n\n        /** @type {State} */\n        function start(code) {\n          // To do: not needed to store if there is no bogus state, probably?\n          // Currently doesn’t work because `inspect` in document does a check\n          // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n          // by not storing.\n          info = store();\n          currentConstruct = construct;\n          if (!construct.partial) {\n            context.currentConstruct = construct;\n          }\n\n          // Always populated by defaults.\n\n          if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n            return nok(code);\n          }\n          return construct.tokenize.call(\n          // If we do have fields, create an object w/ `context` as its\n          // prototype.\n          // This allows a “live binding”, which is needed for `interrupt`.\n          fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n        }\n      }\n\n      /** @type {State} */\n      function ok(code) {\n        consumed = true;\n        onreturn(currentConstruct, info);\n        return returnState;\n      }\n\n      /** @type {State} */\n      function nok(code) {\n        consumed = true;\n        info.restore();\n        if (++constructIndex < listOfConstructs.length) {\n          return handleConstruct(listOfConstructs[constructIndex]);\n        }\n        return bogusState;\n      }\n    }\n  }\n\n  /**\n   * @param {Construct} construct\n   *   Construct.\n   * @param {number} from\n   *   From.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function addResult(construct, from) {\n    if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n      resolveAllConstructs.push(construct);\n    }\n    if (construct.resolve) {\n      splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n    }\n    if (construct.resolveTo) {\n      context.events = construct.resolveTo(context.events, context);\n    }\n  }\n\n  /**\n   * Store state.\n   *\n   * @returns {Info}\n   *   Info.\n   */\n  function store() {\n    const startPoint = now();\n    const startPrevious = context.previous;\n    const startCurrentConstruct = context.currentConstruct;\n    const startEventsIndex = context.events.length;\n    const startStack = Array.from(stack);\n    return {\n      from: startEventsIndex,\n      restore\n    };\n\n    /**\n     * Restore state.\n     *\n     * @returns {undefined}\n     *   Nothing.\n     */\n    function restore() {\n      point = startPoint;\n      context.previous = startPrevious;\n      context.currentConstruct = startCurrentConstruct;\n      context.events.length = startEventsIndex;\n      stack = startStack;\n      accountForPotentialSkip();\n    }\n  }\n\n  /**\n   * Move the current point a bit forward in the line when it’s on a column\n   * skip.\n   *\n   * @returns {undefined}\n   *   Nothing.\n   */\n  function accountForPotentialSkip() {\n    if (point.line in columnStart && point.column < 2) {\n      point.column = columnStart[point.line];\n      point.offset += columnStart[point.line] - 1;\n    }\n  }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n *   Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n *   Token.\n * @returns {Array<Chunk>}\n *   Chunks.\n */\nfunction sliceChunks(chunks, token) {\n  const startIndex = token.start._index;\n  const startBufferIndex = token.start._bufferIndex;\n  const endIndex = token.end._index;\n  const endBufferIndex = token.end._bufferIndex;\n  /** @type {Array<Chunk>} */\n  let view;\n  if (startIndex === endIndex) {\n    // @ts-expect-error `_bufferIndex` is used on string chunks.\n    view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n  } else {\n    view = chunks.slice(startIndex, endIndex);\n    if (startBufferIndex > -1) {\n      const head = view[0];\n      if (typeof head === 'string') {\n        view[0] = head.slice(startBufferIndex);\n        /* c8 ignore next 4 -- used to be used, no longer */\n      } else {\n        view.shift();\n      }\n    }\n    if (endBufferIndex > 0) {\n      // @ts-expect-error `_bufferIndex` is used on string chunks.\n      view.push(chunks[endIndex].slice(0, endBufferIndex));\n    }\n  }\n  return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n *   Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n *   Whether to expand tabs (default: `false`).\n * @returns {string}\n *   Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n  let index = -1;\n  /** @type {Array<string>} */\n  const result = [];\n  /** @type {boolean | undefined} */\n  let atTab;\n  while (++index < chunks.length) {\n    const chunk = chunks[index];\n    /** @type {string} */\n    let value;\n    if (typeof chunk === 'string') {\n      value = chunk;\n    } else switch (chunk) {\n      case -5:\n        {\n          value = \"\\r\";\n          break;\n        }\n      case -4:\n        {\n          value = \"\\n\";\n          break;\n        }\n      case -3:\n        {\n          value = \"\\r\" + \"\\n\";\n          break;\n        }\n      case -2:\n        {\n          value = expandTabs ? \" \" : \"\\t\";\n          break;\n        }\n      case -1:\n        {\n          if (!expandTabs && atTab) continue;\n          value = \" \";\n          break;\n        }\n      default:\n        {\n          // Currently only replacement character.\n          value = String.fromCharCode(chunk);\n        }\n    }\n    atTab = chunk === -2;\n    result.push(value);\n  }\n  return result.join('');\n}","/**\n * @import {\n *   Create,\n *   FullNormalizedExtension,\n *   InitialConstruct,\n *   ParseContext,\n *   ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n *   Configuration (optional).\n * @returns {ParseContext}\n *   Parser.\n */\nexport function parse(options) {\n  const settings = options || {};\n  const constructs = /** @type {FullNormalizedExtension} */\n  combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n  /** @type {ParseContext} */\n  const parser = {\n    constructs,\n    content: create(content),\n    defined: [],\n    document: create(document),\n    flow: create(flow),\n    lazy: {},\n    string: create(string),\n    text: create(text)\n  };\n  return parser;\n\n  /**\n   * @param {InitialConstruct} initial\n   *   Construct to start with.\n   * @returns {Create}\n   *   Create a tokenizer.\n   */\n  function create(initial) {\n    return creator;\n    /** @type {Create} */\n    function creator(from) {\n      return createTokenizer(parser, initial, from);\n    }\n  }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n *   Events.\n * @returns {Array<Event>}\n *   Events.\n */\nexport function postprocess(events) {\n  while (!subtokenize(events)) {\n    // Empty\n  }\n  return events;\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n *   Preprocess a value.\n * @param {Value} value\n *   Value.\n * @param {Encoding | null | undefined} [encoding]\n *   Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n *   Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n *   Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n *   Preprocess a value.\n */\nexport function preprocess() {\n  let column = 1;\n  let buffer = '';\n  /** @type {boolean | undefined} */\n  let start = true;\n  /** @type {boolean | undefined} */\n  let atCarriageReturn;\n  return preprocessor;\n\n  /** @type {Preprocessor} */\n  // eslint-disable-next-line complexity\n  function preprocessor(value, encoding, end) {\n    /** @type {Array<Chunk>} */\n    const chunks = [];\n    /** @type {RegExpMatchArray | null} */\n    let match;\n    /** @type {number} */\n    let next;\n    /** @type {number} */\n    let startPosition;\n    /** @type {number} */\n    let endPosition;\n    /** @type {Code} */\n    let code;\n    value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n    startPosition = 0;\n    buffer = '';\n    if (start) {\n      // To do: `markdown-rs` actually parses BOMs (byte order mark).\n      if (value.charCodeAt(0) === 65279) {\n        startPosition++;\n      }\n      start = undefined;\n    }\n    while (startPosition < value.length) {\n      search.lastIndex = startPosition;\n      match = search.exec(value);\n      endPosition = match && match.index !== undefined ? match.index : value.length;\n      code = value.charCodeAt(endPosition);\n      if (!match) {\n        buffer = value.slice(startPosition);\n        break;\n      }\n      if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n        chunks.push(-3);\n        atCarriageReturn = undefined;\n      } else {\n        if (atCarriageReturn) {\n          chunks.push(-5);\n          atCarriageReturn = undefined;\n        }\n        if (startPosition < endPosition) {\n          chunks.push(value.slice(startPosition, endPosition));\n          column += endPosition - startPosition;\n        }\n        switch (code) {\n          case 0:\n            {\n              chunks.push(65533);\n              column++;\n              break;\n            }\n          case 9:\n            {\n              next = Math.ceil(column / 4) * 4;\n              chunks.push(-2);\n              while (column++ < next) chunks.push(-1);\n              break;\n            }\n          case 10:\n            {\n              chunks.push(-4);\n              column = 1;\n              break;\n            }\n          default:\n            {\n              atCarriageReturn = true;\n              column = 1;\n            }\n        }\n      }\n      startPosition = endPosition + 1;\n    }\n    if (end) {\n      if (atCarriageReturn) chunks.push(-5);\n      if (buffer) chunks.push(buffer);\n      chunks.push(null);\n    }\n    return chunks;\n  }\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n *   Value to decode.\n * @returns {string}\n *   Decoded value.\n */\nexport function decodeString(value) {\n  return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n *   Match.\n * @param {string} $1\n *   Character escape.\n * @param {string} $2\n *   Character reference.\n * @returns {string}\n *   Decoded value\n */\nfunction decode($0, $1, $2) {\n  if ($1) {\n    // Escape.\n    return $1;\n  }\n\n  // Reference.\n  const head = $2.charCodeAt(0);\n  if (head === 35) {\n    const head = $2.charCodeAt(1);\n    const hex = head === 120 || head === 88;\n    return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n  }\n  return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n *   Break,\n *   Blockquote,\n *   Code,\n *   Definition,\n *   Emphasis,\n *   Heading,\n *   Html,\n *   Image,\n *   InlineCode,\n *   Link,\n *   ListItem,\n *   List,\n *   Nodes,\n *   Paragraph,\n *   PhrasingContent,\n *   ReferenceType,\n *   Root,\n *   Strong,\n *   Text,\n *   ThematicBreak\n * } from 'mdast'\n * @import {\n *   Encoding,\n *   Event,\n *   Token,\n *   Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n *   CompileContext,\n *   CompileData,\n *   Config,\n *   Extension,\n *   Handle,\n *   OnEnterError,\n *   Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n *   Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n *   Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {Root}\n *   mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n  if (typeof encoding !== 'string') {\n    options = encoding;\n    encoding = undefined;\n  }\n  return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n  /** @type {Config} */\n  const config = {\n    transforms: [],\n    canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n    enter: {\n      autolink: opener(link),\n      autolinkProtocol: onenterdata,\n      autolinkEmail: onenterdata,\n      atxHeading: opener(heading),\n      blockQuote: opener(blockQuote),\n      characterEscape: onenterdata,\n      characterReference: onenterdata,\n      codeFenced: opener(codeFlow),\n      codeFencedFenceInfo: buffer,\n      codeFencedFenceMeta: buffer,\n      codeIndented: opener(codeFlow, buffer),\n      codeText: opener(codeText, buffer),\n      codeTextData: onenterdata,\n      data: onenterdata,\n      codeFlowValue: onenterdata,\n      definition: opener(definition),\n      definitionDestinationString: buffer,\n      definitionLabelString: buffer,\n      definitionTitleString: buffer,\n      emphasis: opener(emphasis),\n      hardBreakEscape: opener(hardBreak),\n      hardBreakTrailing: opener(hardBreak),\n      htmlFlow: opener(html, buffer),\n      htmlFlowData: onenterdata,\n      htmlText: opener(html, buffer),\n      htmlTextData: onenterdata,\n      image: opener(image),\n      label: buffer,\n      link: opener(link),\n      listItem: opener(listItem),\n      listItemValue: onenterlistitemvalue,\n      listOrdered: opener(list, onenterlistordered),\n      listUnordered: opener(list),\n      paragraph: opener(paragraph),\n      reference: onenterreference,\n      referenceString: buffer,\n      resourceDestinationString: buffer,\n      resourceTitleString: buffer,\n      setextHeading: opener(heading),\n      strong: opener(strong),\n      thematicBreak: opener(thematicBreak)\n    },\n    exit: {\n      atxHeading: closer(),\n      atxHeadingSequence: onexitatxheadingsequence,\n      autolink: closer(),\n      autolinkEmail: onexitautolinkemail,\n      autolinkProtocol: onexitautolinkprotocol,\n      blockQuote: closer(),\n      characterEscapeValue: onexitdata,\n      characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n      characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n      characterReferenceValue: onexitcharacterreferencevalue,\n      characterReference: onexitcharacterreference,\n      codeFenced: closer(onexitcodefenced),\n      codeFencedFence: onexitcodefencedfence,\n      codeFencedFenceInfo: onexitcodefencedfenceinfo,\n      codeFencedFenceMeta: onexitcodefencedfencemeta,\n      codeFlowValue: onexitdata,\n      codeIndented: closer(onexitcodeindented),\n      codeText: closer(onexitcodetext),\n      codeTextData: onexitdata,\n      data: onexitdata,\n      definition: closer(),\n      definitionDestinationString: onexitdefinitiondestinationstring,\n      definitionLabelString: onexitdefinitionlabelstring,\n      definitionTitleString: onexitdefinitiontitlestring,\n      emphasis: closer(),\n      hardBreakEscape: closer(onexithardbreak),\n      hardBreakTrailing: closer(onexithardbreak),\n      htmlFlow: closer(onexithtmlflow),\n      htmlFlowData: onexitdata,\n      htmlText: closer(onexithtmltext),\n      htmlTextData: onexitdata,\n      image: closer(onexitimage),\n      label: onexitlabel,\n      labelText: onexitlabeltext,\n      lineEnding: onexitlineending,\n      link: closer(onexitlink),\n      listItem: closer(),\n      listOrdered: closer(),\n      listUnordered: closer(),\n      paragraph: closer(),\n      referenceString: onexitreferencestring,\n      resourceDestinationString: onexitresourcedestinationstring,\n      resourceTitleString: onexitresourcetitlestring,\n      resource: onexitresource,\n      setextHeading: closer(onexitsetextheading),\n      setextHeadingLineSequence: onexitsetextheadinglinesequence,\n      setextHeadingText: onexitsetextheadingtext,\n      strong: closer(),\n      thematicBreak: closer()\n    }\n  };\n  configure(config, (options || {}).mdastExtensions || []);\n\n  /** @type {CompileData} */\n  const data = {};\n  return compile;\n\n  /**\n   * Turn micromark events into an mdast tree.\n   *\n   * @param {Array<Event>} events\n   *   Events.\n   * @returns {Root}\n   *   mdast tree.\n   */\n  function compile(events) {\n    /** @type {Root} */\n    let tree = {\n      type: 'root',\n      children: []\n    };\n    /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n    const context = {\n      stack: [tree],\n      tokenStack: [],\n      config,\n      enter,\n      exit,\n      buffer,\n      resume,\n      data\n    };\n    /** @type {Array<number>} */\n    const listStack = [];\n    let index = -1;\n    while (++index < events.length) {\n      // We preprocess lists to add `listItem` tokens, and to infer whether\n      // items the list itself are spread out.\n      if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n        if (events[index][0] === 'enter') {\n          listStack.push(index);\n        } else {\n          const tail = listStack.pop();\n          index = prepareList(events, tail, index);\n        }\n      }\n    }\n    index = -1;\n    while (++index < events.length) {\n      const handler = config[events[index][0]];\n      if (own.call(handler, events[index][1].type)) {\n        handler[events[index][1].type].call(Object.assign({\n          sliceSerialize: events[index][2].sliceSerialize\n        }, context), events[index][1]);\n      }\n    }\n\n    // Handle tokens still being open.\n    if (context.tokenStack.length > 0) {\n      const tail = context.tokenStack[context.tokenStack.length - 1];\n      const handler = tail[1] || defaultOnError;\n      handler.call(context, undefined, tail[0]);\n    }\n\n    // Figure out `root` position.\n    tree.position = {\n      start: point(events.length > 0 ? events[0][1].start : {\n        line: 1,\n        column: 1,\n        offset: 0\n      }),\n      end: point(events.length > 0 ? events[events.length - 2][1].end : {\n        line: 1,\n        column: 1,\n        offset: 0\n      })\n    };\n\n    // Call transforms.\n    index = -1;\n    while (++index < config.transforms.length) {\n      tree = config.transforms[index](tree) || tree;\n    }\n    return tree;\n  }\n\n  /**\n   * @param {Array<Event>} events\n   * @param {number} start\n   * @param {number} length\n   * @returns {number}\n   */\n  function prepareList(events, start, length) {\n    let index = start - 1;\n    let containerBalance = -1;\n    let listSpread = false;\n    /** @type {Token | undefined} */\n    let listItem;\n    /** @type {number | undefined} */\n    let lineIndex;\n    /** @type {number | undefined} */\n    let firstBlankLineIndex;\n    /** @type {boolean | undefined} */\n    let atMarker;\n    while (++index <= length) {\n      const event = events[index];\n      switch (event[1].type) {\n        case \"listUnordered\":\n        case \"listOrdered\":\n        case \"blockQuote\":\n          {\n            if (event[0] === 'enter') {\n              containerBalance++;\n            } else {\n              containerBalance--;\n            }\n            atMarker = undefined;\n            break;\n          }\n        case \"lineEndingBlank\":\n          {\n            if (event[0] === 'enter') {\n              if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n                firstBlankLineIndex = index;\n              }\n              atMarker = undefined;\n            }\n            break;\n          }\n        case \"linePrefix\":\n        case \"listItemValue\":\n        case \"listItemMarker\":\n        case \"listItemPrefix\":\n        case \"listItemPrefixWhitespace\":\n          {\n            // Empty.\n\n            break;\n          }\n        default:\n          {\n            atMarker = undefined;\n          }\n      }\n      if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n        if (listItem) {\n          let tailIndex = index;\n          lineIndex = undefined;\n          while (tailIndex--) {\n            const tailEvent = events[tailIndex];\n            if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n              if (tailEvent[0] === 'exit') continue;\n              if (lineIndex) {\n                events[lineIndex][1].type = \"lineEndingBlank\";\n                listSpread = true;\n              }\n              tailEvent[1].type = \"lineEnding\";\n              lineIndex = tailIndex;\n            } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n              // Empty\n            } else {\n              break;\n            }\n          }\n          if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n            listItem._spread = true;\n          }\n\n          // Fix position.\n          listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n          events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n          index++;\n          length++;\n        }\n\n        // Create a new list item.\n        if (event[1].type === \"listItemPrefix\") {\n          /** @type {Token} */\n          const item = {\n            type: 'listItem',\n            _spread: false,\n            start: Object.assign({}, event[1].start),\n            // @ts-expect-error: we’ll add `end` in a second.\n            end: undefined\n          };\n          listItem = item;\n          events.splice(index, 0, ['enter', item, event[2]]);\n          index++;\n          length++;\n          firstBlankLineIndex = undefined;\n          atMarker = true;\n        }\n      }\n    }\n    events[start][1]._spread = listSpread;\n    return length;\n  }\n\n  /**\n   * Create an opener handle.\n   *\n   * @param {(token: Token) => Nodes} create\n   *   Create a node.\n   * @param {Handle | undefined} [and]\n   *   Optional function to also run.\n   * @returns {Handle}\n   *   Handle.\n   */\n  function opener(create, and) {\n    return open;\n\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {undefined}\n     */\n    function open(token) {\n      enter.call(this, create(token), token);\n      if (and) and.call(this, token);\n    }\n  }\n\n  /**\n   * @type {CompileContext['buffer']}\n   */\n  function buffer() {\n    this.stack.push({\n      type: 'fragment',\n      children: []\n    });\n  }\n\n  /**\n   * @type {CompileContext['enter']}\n   */\n  function enter(node, token, errorHandler) {\n    const parent = this.stack[this.stack.length - 1];\n    /** @type {Array<Nodes>} */\n    const siblings = parent.children;\n    siblings.push(node);\n    this.stack.push(node);\n    this.tokenStack.push([token, errorHandler || undefined]);\n    node.position = {\n      start: point(token.start),\n      // @ts-expect-error: `end` will be patched later.\n      end: undefined\n    };\n  }\n\n  /**\n   * Create a closer handle.\n   *\n   * @param {Handle | undefined} [and]\n   *   Optional function to also run.\n   * @returns {Handle}\n   *   Handle.\n   */\n  function closer(and) {\n    return close;\n\n    /**\n     * @this {CompileContext}\n     * @param {Token} token\n     * @returns {undefined}\n     */\n    function close(token) {\n      if (and) and.call(this, token);\n      exit.call(this, token);\n    }\n  }\n\n  /**\n   * @type {CompileContext['exit']}\n   */\n  function exit(token, onExitError) {\n    const node = this.stack.pop();\n    const open = this.tokenStack.pop();\n    if (!open) {\n      throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n        start: token.start,\n        end: token.end\n      }) + '): it’s not open');\n    } else if (open[0].type !== token.type) {\n      if (onExitError) {\n        onExitError.call(this, token, open[0]);\n      } else {\n        const handler = open[1] || defaultOnError;\n        handler.call(this, token, open[0]);\n      }\n    }\n    node.position.end = point(token.end);\n  }\n\n  /**\n   * @type {CompileContext['resume']}\n   */\n  function resume() {\n    return toString(this.stack.pop());\n  }\n\n  //\n  // Handlers.\n  //\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onenterlistordered() {\n    this.data.expectingFirstListItemValue = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onenterlistitemvalue(token) {\n    if (this.data.expectingFirstListItemValue) {\n      const ancestor = this.stack[this.stack.length - 2];\n      ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n      this.data.expectingFirstListItemValue = undefined;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfenceinfo() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.lang = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfencemeta() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.meta = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefencedfence() {\n    // Exit if this is the closing fence.\n    if (this.data.flowCodeInside) return;\n    this.buffer();\n    this.data.flowCodeInside = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodefenced() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n    this.data.flowCodeInside = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcodeindented() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitionlabelstring(token) {\n    const label = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.label = label;\n    node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitiontitlestring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.title = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitdefinitiondestinationstring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.url = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitatxheadingsequence(token) {\n    const node = this.stack[this.stack.length - 1];\n    if (!node.depth) {\n      const depth = this.sliceSerialize(token).length;\n      node.depth = depth;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheadingtext() {\n    this.data.setextHeadingSlurpLineEnding = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheadinglinesequence(token) {\n    const node = this.stack[this.stack.length - 1];\n    node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitsetextheading() {\n    this.data.setextHeadingSlurpLineEnding = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onenterdata(token) {\n    const node = this.stack[this.stack.length - 1];\n    /** @type {Array<Nodes>} */\n    const siblings = node.children;\n    let tail = siblings[siblings.length - 1];\n    if (!tail || tail.type !== 'text') {\n      // Add a new text node.\n      tail = text();\n      tail.position = {\n        start: point(token.start),\n        // @ts-expect-error: we’ll add `end` later.\n        end: undefined\n      };\n      siblings.push(tail);\n    }\n    this.stack.push(tail);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitdata(token) {\n    const tail = this.stack.pop();\n    tail.value += this.sliceSerialize(token);\n    tail.position.end = point(token.end);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlineending(token) {\n    const context = this.stack[this.stack.length - 1];\n    // If we’re at a hard break, include the line ending in there.\n    if (this.data.atHardBreak) {\n      const tail = context.children[context.children.length - 1];\n      tail.position.end = point(token.end);\n      this.data.atHardBreak = undefined;\n      return;\n    }\n    if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n      onenterdata.call(this, token);\n      onexitdata.call(this, token);\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithardbreak() {\n    this.data.atHardBreak = true;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithtmlflow() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexithtmltext() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitcodetext() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.value = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlink() {\n    const node = this.stack[this.stack.length - 1];\n    // Note: there are also `identifier` and `label` fields on this link node!\n    // These are used / cleaned here.\n\n    // To do: clean.\n    if (this.data.inReference) {\n      /** @type {ReferenceType} */\n      const referenceType = this.data.referenceType || 'shortcut';\n      node.type += 'Reference';\n      // @ts-expect-error: mutate.\n      node.referenceType = referenceType;\n      // @ts-expect-error: mutate.\n      delete node.url;\n      delete node.title;\n    } else {\n      // @ts-expect-error: mutate.\n      delete node.identifier;\n      // @ts-expect-error: mutate.\n      delete node.label;\n    }\n    this.data.referenceType = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitimage() {\n    const node = this.stack[this.stack.length - 1];\n    // Note: there are also `identifier` and `label` fields on this link node!\n    // These are used / cleaned here.\n\n    // To do: clean.\n    if (this.data.inReference) {\n      /** @type {ReferenceType} */\n      const referenceType = this.data.referenceType || 'shortcut';\n      node.type += 'Reference';\n      // @ts-expect-error: mutate.\n      node.referenceType = referenceType;\n      // @ts-expect-error: mutate.\n      delete node.url;\n      delete node.title;\n    } else {\n      // @ts-expect-error: mutate.\n      delete node.identifier;\n      // @ts-expect-error: mutate.\n      delete node.label;\n    }\n    this.data.referenceType = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlabeltext(token) {\n    const string = this.sliceSerialize(token);\n    const ancestor = this.stack[this.stack.length - 2];\n    // @ts-expect-error: stash this on the node, as it might become a reference\n    // later.\n    ancestor.label = decodeString(string);\n    // @ts-expect-error: same as above.\n    ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitlabel() {\n    const fragment = this.stack[this.stack.length - 1];\n    const value = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    // Assume a reference.\n    this.data.inReference = true;\n    if (node.type === 'link') {\n      /** @type {Array<PhrasingContent>} */\n      const children = fragment.children;\n      node.children = children;\n    } else {\n      node.alt = value;\n    }\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresourcedestinationstring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.url = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresourcetitlestring() {\n    const data = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    node.title = data;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitresource() {\n    this.data.inReference = undefined;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onenterreference() {\n    this.data.referenceType = 'collapsed';\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitreferencestring(token) {\n    const label = this.resume();\n    const node = this.stack[this.stack.length - 1];\n    // @ts-expect-error: stash this on the node, as it might become a reference\n    // later.\n    node.label = label;\n    // @ts-expect-error: same as above.\n    node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n    this.data.referenceType = 'full';\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n\n  function onexitcharacterreferencemarker(token) {\n    this.data.characterReferenceType = token.type;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcharacterreferencevalue(token) {\n    const data = this.sliceSerialize(token);\n    const type = this.data.characterReferenceType;\n    /** @type {string} */\n    let value;\n    if (type) {\n      value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n      this.data.characterReferenceType = undefined;\n    } else {\n      const result = decodeNamedCharacterReference(data);\n      value = result;\n    }\n    const tail = this.stack[this.stack.length - 1];\n    tail.value += value;\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitcharacterreference(token) {\n    const tail = this.stack.pop();\n    tail.position.end = point(token.end);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitautolinkprotocol(token) {\n    onexitdata.call(this, token);\n    const node = this.stack[this.stack.length - 1];\n    node.url = this.sliceSerialize(token);\n  }\n\n  /**\n   * @this {CompileContext}\n   * @type {Handle}\n   */\n  function onexitautolinkemail(token) {\n    onexitdata.call(this, token);\n    const node = this.stack[this.stack.length - 1];\n    node.url = 'mailto:' + this.sliceSerialize(token);\n  }\n\n  //\n  // Creaters.\n  //\n\n  /** @returns {Blockquote} */\n  function blockQuote() {\n    return {\n      type: 'blockquote',\n      children: []\n    };\n  }\n\n  /** @returns {Code} */\n  function codeFlow() {\n    return {\n      type: 'code',\n      lang: null,\n      meta: null,\n      value: ''\n    };\n  }\n\n  /** @returns {InlineCode} */\n  function codeText() {\n    return {\n      type: 'inlineCode',\n      value: ''\n    };\n  }\n\n  /** @returns {Definition} */\n  function definition() {\n    return {\n      type: 'definition',\n      identifier: '',\n      label: null,\n      title: null,\n      url: ''\n    };\n  }\n\n  /** @returns {Emphasis} */\n  function emphasis() {\n    return {\n      type: 'emphasis',\n      children: []\n    };\n  }\n\n  /** @returns {Heading} */\n  function heading() {\n    return {\n      type: 'heading',\n      // @ts-expect-error `depth` will be set later.\n      depth: 0,\n      children: []\n    };\n  }\n\n  /** @returns {Break} */\n  function hardBreak() {\n    return {\n      type: 'break'\n    };\n  }\n\n  /** @returns {Html} */\n  function html() {\n    return {\n      type: 'html',\n      value: ''\n    };\n  }\n\n  /** @returns {Image} */\n  function image() {\n    return {\n      type: 'image',\n      title: null,\n      url: '',\n      alt: null\n    };\n  }\n\n  /** @returns {Link} */\n  function link() {\n    return {\n      type: 'link',\n      title: null,\n      url: '',\n      children: []\n    };\n  }\n\n  /**\n   * @param {Token} token\n   * @returns {List}\n   */\n  function list(token) {\n    return {\n      type: 'list',\n      ordered: token.type === 'listOrdered',\n      start: null,\n      spread: token._spread,\n      children: []\n    };\n  }\n\n  /**\n   * @param {Token} token\n   * @returns {ListItem}\n   */\n  function listItem(token) {\n    return {\n      type: 'listItem',\n      spread: token._spread,\n      checked: null,\n      children: []\n    };\n  }\n\n  /** @returns {Paragraph} */\n  function paragraph() {\n    return {\n      type: 'paragraph',\n      children: []\n    };\n  }\n\n  /** @returns {Strong} */\n  function strong() {\n    return {\n      type: 'strong',\n      children: []\n    };\n  }\n\n  /** @returns {Text} */\n  function text() {\n    return {\n      type: 'text',\n      value: ''\n    };\n  }\n\n  /** @returns {ThematicBreak} */\n  function thematicBreak() {\n    return {\n      type: 'thematicBreak'\n    };\n  }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n *   Point-like value.\n * @returns {Point}\n *   unist point.\n */\nfunction point(d) {\n  return {\n    line: d.line,\n    column: d.column,\n    offset: d.offset\n  };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n  let index = -1;\n  while (++index < extensions.length) {\n    const value = extensions[index];\n    if (Array.isArray(value)) {\n      configure(combined, value);\n    } else {\n      extension(combined, value);\n    }\n  }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n  /** @type {keyof Extension} */\n  let key;\n  for (key in extension) {\n    if (own.call(extension, key)) {\n      switch (key) {\n        case 'canContainEols':\n          {\n            const right = extension[key];\n            if (right) {\n              combined[key].push(...right);\n            }\n            break;\n          }\n        case 'transforms':\n          {\n            const right = extension[key];\n            if (right) {\n              combined[key].push(...right);\n            }\n            break;\n          }\n        case 'enter':\n        case 'exit':\n          {\n            const right = extension[key];\n            if (right) {\n              Object.assign(combined[key], right);\n            }\n            break;\n          }\n        // No default\n      }\n    }\n  }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n  if (left) {\n    throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n      start: left.start,\n      end: left.end\n    }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n      start: right.start,\n      end: right.end\n    }) + ') is open');\n  } else {\n    throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n      start: right.start,\n      end: right.end\n    }) + ') is still open');\n  }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n *   Configuration (optional).\n * @returns {undefined}\n *   Nothing.\n */\nexport default function remarkParse(options) {\n  /** @type {Processor} */\n  // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n  const self = this\n\n  self.parser = parser\n\n  /**\n   * @type {Parser}\n   */\n  function parser(doc) {\n    return fromMarkdown(doc, {\n      ...self.data('settings'),\n      ...options,\n      // Note: these options are not in the readme.\n      // The goal is for them to be set by plugins on `data` instead of being\n      // passed by users.\n      extensions: self.data('micromarkExtensions') || [],\n      mdastExtensions: self.data('fromMarkdownExtensions') || []\n    })\n  }\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Blockquote} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function blockquote(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'blockquote',\n    properties: {},\n    children: state.wrap(state.all(node), true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Break} node\n *   mdast node.\n * @returns {Array<Element | Text>}\n *   hast element content.\n */\nexport function hardBreak(state, node) {\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n  state.patch(node, result)\n  return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Code} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function code(state, node) {\n  const value = node.value ? node.value + '\\n' : ''\n  /** @type {Properties} */\n  const properties = {}\n  // Someone can write `js&#x20;python&#x9;ruby`.\n  const language = node.lang ? node.lang.split(/\\s+/) : []\n\n  // GH/CM still drop the non-first languages.\n  if (language.length > 0) {\n    properties.className = ['language-' + language[0]]\n  }\n\n  // Create `<code>`.\n  /** @type {Element} */\n  let result = {\n    type: 'element',\n    tagName: 'code',\n    properties,\n    children: [{type: 'text', value}]\n  }\n\n  if (node.meta) {\n    result.data = {meta: node.meta}\n  }\n\n  state.patch(node, result)\n  result = state.applyData(node, result)\n\n  // Create `<pre>`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Extract<Nodes, Reference>} node\n *   Reference node (image, link).\n * @returns {Array<ElementContent>}\n *   hast content.\n */\nexport function revert(state, node) {\n  const subtype = node.referenceType\n  let suffix = ']'\n\n  if (subtype === 'collapsed') {\n    suffix += '[]'\n  } else if (subtype === 'full') {\n    suffix += '[' + (node.label || node.identifier) + ']'\n  }\n\n  if (node.type === 'imageReference') {\n    return [{type: 'text', value: '![' + node.alt + suffix}]\n  }\n\n  const contents = state.all(node)\n  const head = contents[0]\n\n  if (head && head.type === 'text') {\n    head.value = '[' + head.value\n  } else {\n    contents.unshift({type: 'text', value: '['})\n  }\n\n  const tail = contents[contents.length - 1]\n\n  if (tail && tail.type === 'text') {\n    tail.value += suffix\n  } else {\n    contents.push({type: 'text', value: suffix})\n  }\n\n  return contents\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ListItem} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function listItem(state, node, parent) {\n  const results = state.all(node)\n  const loose = parent ? listLoose(parent) : listItemLoose(node)\n  /** @type {Properties} */\n  const properties = {}\n  /** @type {Array<ElementContent>} */\n  const children = []\n\n  if (typeof node.checked === 'boolean') {\n    const head = results[0]\n    /** @type {Element} */\n    let paragraph\n\n    if (head && head.type === 'element' && head.tagName === 'p') {\n      paragraph = head\n    } else {\n      paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n      results.unshift(paragraph)\n    }\n\n    if (paragraph.children.length > 0) {\n      paragraph.children.unshift({type: 'text', value: ' '})\n    }\n\n    paragraph.children.unshift({\n      type: 'element',\n      tagName: 'input',\n      properties: {type: 'checkbox', checked: node.checked, disabled: true},\n      children: []\n    })\n\n    // According to github-markdown-css, this class hides bullet.\n    // See: <https://github.com/sindresorhus/github-markdown-css>.\n    properties.className = ['task-list-item']\n  }\n\n  let index = -1\n\n  while (++index < results.length) {\n    const child = results[index]\n\n    // Add eols before nodes, except if this is a loose, first paragraph.\n    if (\n      loose ||\n      index !== 0 ||\n      child.type !== 'element' ||\n      child.tagName !== 'p'\n    ) {\n      children.push({type: 'text', value: '\\n'})\n    }\n\n    if (child.type === 'element' && child.tagName === 'p' && !loose) {\n      children.push(...child.children)\n    } else {\n      children.push(child)\n    }\n  }\n\n  const tail = results[results.length - 1]\n\n  // Add a final eol.\n  if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n    children.push({type: 'text', value: '\\n'})\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'li', properties, children}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n  let loose = false\n  if (node.type === 'list') {\n    loose = node.spread || false\n    const children = node.children\n    let index = -1\n\n    while (!loose && ++index < children.length) {\n      loose = listItemLoose(children[index])\n    }\n  }\n\n  return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n  const spread = node.spread\n\n  return spread === null || spread === undefined\n    ? node.children.length > 1\n    : spread\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array<Element>} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array<ElementContent>} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Trimmed value.\n */\nexport function trimLines(value) {\n  const source = String(value)\n  const search = /\\r?\\n|\\r/g\n  let match = search.exec(source)\n  let last = 0\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (match) {\n    lines.push(\n      trimLine(source.slice(last, match.index), last > 0, true),\n      match[0]\n    )\n\n    last = match.index + match[0].length\n    match = search.exec(source)\n  }\n\n  lines.push(trimLine(source.slice(last), last > 0, false))\n\n  return lines.join('')\n}\n\n/**\n * @param {string} value\n *   Line to trim.\n * @param {boolean} start\n *   Whether to trim the start of the line.\n * @param {boolean} end\n *   Whether to trim the end of the line.\n * @returns {string}\n *   Trimmed line.\n */\nfunction trimLine(value, start, end) {\n  let startIndex = 0\n  let endIndex = value.length\n\n  if (start) {\n    let code = value.codePointAt(startIndex)\n\n    while (code === tab || code === space) {\n      startIndex++\n      code = value.codePointAt(startIndex)\n    }\n  }\n\n  if (end) {\n    let code = value.codePointAt(endIndex - 1)\n\n    while (code === tab || code === space) {\n      endIndex--\n      code = value.codePointAt(endIndex - 1)\n    }\n  }\n\n  return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n  blockquote,\n  break: hardBreak,\n  code,\n  delete: strikethrough,\n  emphasis,\n  footnoteReference,\n  heading,\n  html,\n  imageReference,\n  image,\n  inlineCode,\n  linkReference,\n  link,\n  listItem,\n  list,\n  paragraph,\n  // @ts-expect-error: root is different, but hard to type.\n  root,\n  strong,\n  table,\n  tableCell,\n  tableRow,\n  text,\n  thematicBreak,\n  toml: ignore,\n  yaml: ignore,\n  definition: ignore,\n  footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n  return undefined\n}\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n  const as = (out, index) => {\n    $.set(index, out);\n    return out;\n  };\n\n  const unpair = index => {\n    if ($.has(index))\n      return $.get(index);\n\n    const [type, value] = _[index];\n    switch (type) {\n      case PRIMITIVE:\n      case VOID:\n        return as(value, index);\n      case ARRAY: {\n        const arr = as([], index);\n        for (const index of value)\n          arr.push(unpair(index));\n        return arr;\n      }\n      case OBJECT: {\n        const object = as({}, index);\n        for (const [key, index] of value)\n          object[unpair(key)] = unpair(index);\n        return object;\n      }\n      case DATE:\n        return as(new Date(value), index);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as(new RegExp(source, flags), index);\n      }\n      case MAP: {\n        const map = as(new Map, index);\n        for (const [key, index] of value)\n          map.set(unpair(key), unpair(index));\n        return map;\n      }\n      case SET: {\n        const set = as(new Set, index);\n        for (const index of value)\n          set.add(unpair(index));\n        return set;\n      }\n      case ERROR: {\n        const {name, message} = value;\n        return as(new env[name](message), index);\n      }\n      case BIGINT:\n        return as(BigInt(value), index);\n      case 'BigInt':\n        return as(Object(BigInt(value)), index);\n      case 'ArrayBuffer':\n        return as(new Uint8Array(value).buffer, value);\n      case 'DataView': {\n        const { buffer } = new Uint8Array(value);\n        return as(new DataView(buffer), value);\n      }\n    }\n    return as(new env[type](value), index);\n  };\n\n  return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n  VOID, PRIMITIVE,\n  ARRAY, OBJECT,\n  DATE, REGEXP, MAP, SET,\n  ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n  const type = typeof value;\n  if (type !== 'object' || !value)\n    return [PRIMITIVE, type];\n\n  const asString = toString.call(value).slice(8, -1);\n  switch (asString) {\n    case 'Array':\n      return [ARRAY, EMPTY];\n    case 'Object':\n      return [OBJECT, EMPTY];\n    case 'Date':\n      return [DATE, EMPTY];\n    case 'RegExp':\n      return [REGEXP, EMPTY];\n    case 'Map':\n      return [MAP, EMPTY];\n    case 'Set':\n      return [SET, EMPTY];\n    case 'DataView':\n      return [ARRAY, asString];\n  }\n\n  if (asString.includes('Array'))\n    return [ARRAY, asString];\n\n  if (asString.includes('Error'))\n    return [ERROR, asString];\n\n  return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n  TYPE === PRIMITIVE &&\n  (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n  const as = (out, value) => {\n    const index = _.push(out) - 1;\n    $.set(value, index);\n    return index;\n  };\n\n  const pair = value => {\n    if ($.has(value))\n      return $.get(value);\n\n    let [TYPE, type] = typeOf(value);\n    switch (TYPE) {\n      case PRIMITIVE: {\n        let entry = value;\n        switch (type) {\n          case 'bigint':\n            TYPE = BIGINT;\n            entry = value.toString();\n            break;\n          case 'function':\n          case 'symbol':\n            if (strict)\n              throw new TypeError('unable to serialize ' + type);\n            entry = null;\n            break;\n          case 'undefined':\n            return as([VOID], value);\n        }\n        return as([TYPE, entry], value);\n      }\n      case ARRAY: {\n        if (type) {\n          let spread = value;\n          if (type === 'DataView') {\n            spread = new Uint8Array(value.buffer);\n          }\n          else if (type === 'ArrayBuffer') {\n            spread = new Uint8Array(value);\n          }\n          return as([type, [...spread]], value);\n        }\n\n        const arr = [];\n        const index = as([TYPE, arr], value);\n        for (const entry of value)\n          arr.push(pair(entry));\n        return index;\n      }\n      case OBJECT: {\n        if (type) {\n          switch (type) {\n            case 'BigInt':\n              return as([type, value.toString()], value);\n            case 'Boolean':\n            case 'Number':\n            case 'String':\n              return as([type, value.valueOf()], value);\n          }\n        }\n\n        if (json && ('toJSON' in value))\n          return pair(value.toJSON());\n\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const key of keys(value)) {\n          if (strict || !shouldSkip(typeOf(value[key])))\n            entries.push([pair(key), pair(value[key])]);\n        }\n        return index;\n      }\n      case DATE:\n        return as([TYPE, value.toISOString()], value);\n      case REGEXP: {\n        const {source, flags} = value;\n        return as([TYPE, {source, flags}], value);\n      }\n      case MAP: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const [key, entry] of value) {\n          if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n            entries.push([pair(key), pair(entry)]);\n        }\n        return index;\n      }\n      case SET: {\n        const entries = [];\n        const index = as([TYPE, entries], value);\n        for (const entry of value) {\n          if (strict || !shouldSkip(typeOf(entry)))\n            entries.push(pair(entry));\n        }\n        return index;\n      }\n    }\n\n    const {message} = value;\n    return as([TYPE, {name: type, message}], value);\n  };\n\n  return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n *  if `true`, will not throw errors on incompatible types, and behave more\n *  like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n  const _ = [];\n  return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n  /* c8 ignore start */\n  (any, options) => (\n    options && ('json' in options || 'lossy' in options) ?\n      deserialize(serialize(any, options)) : structuredClone(any)\n  ) :\n  (any, options) => deserialize(serialize(any, options));\n  /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n *   Generate content for the backreference dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n *   Content for the backreference when linking back from definitions to their\n *   reference.\n *\n * @callback FootnoteBackLabelTemplate\n *   Generate a back label dynamically.\n *\n *   For the following markdown:\n *\n *   ```markdown\n *   Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n *   [^remark]: things about remark\n *   [^micromark]: things about micromark\n *   ```\n *\n *   This function will be called with:\n *\n *   *  `0` and `0` for the backreference from `things about micromark` to\n *      `alpha`, as it is the first used definition, and the first call to it\n *   *  `0` and `1` for the backreference from `things about micromark` to\n *      `bravo`, as it is the first used definition, and the second call to it\n *   *  `1` and `0` for the backreference from `things about remark` to\n *      `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n *   Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n  /** @type {Array<ElementContent>} */\n  const result = [{type: 'text', value: '↩'}]\n\n  if (rereferenceIndex > 1) {\n    result.push({\n      type: 'element',\n      tagName: 'sup',\n      properties: {},\n      children: [{type: 'text', value: String(rereferenceIndex)}]\n    })\n  }\n\n  return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n *   Index of the definition in the order that they are first referenced,\n *   0-indexed.\n * @param {number} rereferenceIndex\n *   Index of calls to the same definition, 0-indexed.\n * @returns {string}\n *   Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n  return (\n    'Back to reference ' +\n    (referenceIndex + 1) +\n    (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n  )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n *   Info passed around.\n * @returns {Element | undefined}\n *   `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const footnoteBackContent =\n    state.options.footnoteBackContent || defaultFootnoteBackContent\n  const footnoteBackLabel =\n    state.options.footnoteBackLabel || defaultFootnoteBackLabel\n  const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n  const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n  const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n    className: ['sr-only']\n  }\n  /** @type {Array<ElementContent>} */\n  const listItems = []\n  let referenceIndex = -1\n\n  while (++referenceIndex < state.footnoteOrder.length) {\n    const definition = state.footnoteById.get(\n      state.footnoteOrder[referenceIndex]\n    )\n\n    if (!definition) {\n      continue\n    }\n\n    const content = state.all(definition)\n    const id = String(definition.identifier).toUpperCase()\n    const safeId = normalizeUri(id.toLowerCase())\n    let rereferenceIndex = 0\n    /** @type {Array<ElementContent>} */\n    const backReferences = []\n    const counts = state.footnoteCounts.get(id)\n\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (counts !== undefined && ++rereferenceIndex <= counts) {\n      if (backReferences.length > 0) {\n        backReferences.push({type: 'text', value: ' '})\n      }\n\n      let children =\n        typeof footnoteBackContent === 'string'\n          ? footnoteBackContent\n          : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n      if (typeof children === 'string') {\n        children = {type: 'text', value: children}\n      }\n\n      backReferences.push({\n        type: 'element',\n        tagName: 'a',\n        properties: {\n          href:\n            '#' +\n            clobberPrefix +\n            'fnref-' +\n            safeId +\n            (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n          dataFootnoteBackref: '',\n          ariaLabel:\n            typeof footnoteBackLabel === 'string'\n              ? footnoteBackLabel\n              : footnoteBackLabel(referenceIndex, rereferenceIndex),\n          className: ['data-footnote-backref']\n        },\n        children: Array.isArray(children) ? children : [children]\n      })\n    }\n\n    const tail = content[content.length - 1]\n\n    if (tail && tail.type === 'element' && tail.tagName === 'p') {\n      const tailTail = tail.children[tail.children.length - 1]\n      if (tailTail && tailTail.type === 'text') {\n        tailTail.value += ' '\n      } else {\n        tail.children.push({type: 'text', value: ' '})\n      }\n\n      tail.children.push(...backReferences)\n    } else {\n      content.push(...backReferences)\n    }\n\n    /** @type {Element} */\n    const listItem = {\n      type: 'element',\n      tagName: 'li',\n      properties: {id: clobberPrefix + 'fn-' + safeId},\n      children: state.wrap(content, true)\n    }\n\n    state.patch(definition, listItem)\n\n    listItems.push(listItem)\n  }\n\n  if (listItems.length === 0) {\n    return\n  }\n\n  return {\n    type: 'element',\n    tagName: 'section',\n    properties: {dataFootnotes: true, className: ['footnotes']},\n    children: [\n      {\n        type: 'element',\n        tagName: footnoteLabelTagName,\n        properties: {\n          ...structuredClone(footnoteLabelProperties),\n          id: 'footnote-label'\n        },\n        children: [{type: 'text', value: footnoteLabel}]\n      },\n      {type: 'text', value: '\\n'},\n      {\n        type: 'element',\n        tagName: 'ol',\n        properties: {},\n        children: state.wrap(listItems, true)\n      },\n      {type: 'text', value: '\\n'}\n    ]\n  }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @import {\n *   ElementContent as HastElementContent,\n *   Element as HastElement,\n *   Nodes as HastNodes,\n *   Properties as HastProperties,\n *   RootContent as HastRootContent,\n *   Text as HastText\n * } from 'hast'\n * @import {\n *   Definition as MdastDefinition,\n *   FootnoteDefinition as MdastFootnoteDefinition,\n *   Nodes as MdastNodes,\n *   Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n *   FootnoteBackContentTemplate,\n *   FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   <p id=\"x\"></p>\n *   <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n *   ```\n *\n *   The above example shows that elements are made available by browsers, by\n *   their ID, on the `window` object.\n *   This is a security risk because you might be expecting some other variable\n *   at that place.\n *   It can also break polyfills.\n *   Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n *   Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n *   Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n *   The default value is:\n *\n *   ```js\n *   function defaultFootnoteBackContent(_, rereferenceIndex) {\n *     const result = [{type: 'text', value: '↩'}]\n *\n *     if (rereferenceIndex > 1) {\n *       result.push({\n *         type: 'element',\n *         tagName: 'sup',\n *         properties: {},\n *         children: [{type: 'text', value: String(rereferenceIndex)}]\n *       })\n *     }\n *\n *     return result\n *   }\n *   ```\n *\n *   This content is used in the `a` element of each backreference (the `↩`\n *   links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n *   Label to describe the backreference back to references (default:\n *   `defaultFootnoteBackLabel`).\n *\n *   The default value is:\n *\n *   ```js\n *   function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n *    return (\n *      'Back to reference ' +\n *      (referenceIndex + 1) +\n *      (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n *    )\n *   }\n *   ```\n *\n *   Change it when the markdown is not in English.\n *\n *   This label is used in the `ariaLabel` property on each backreference\n *   (the `↩` links).\n *   It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n *   Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n *   Change it when the markdown is not in English.\n *\n *   This label is typically hidden visually (assuming a `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n *   Properties to use on the footnote label (default: `{className:\n *   ['sr-only']}`).\n *\n *   Change it to show the label and add other properties.\n *\n *   This label is typically hidden visually (assuming an `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass an empty string.\n *   You can also add different properties.\n *\n *   > **Note**: `id: 'footnote-label'` is always added, because footnote\n *   > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n *   HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n *   Change it to match your document structure.\n *\n *   This label is typically hidden visually (assuming a `sr-only` CSS class\n *   is defined that does that) and so affects screen readers only.\n *   If you do have such a class, but want to show this section to everyone,\n *   pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n *   Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n *   List of custom mdast node types to pass through (keep) in hast (note that\n *   the node itself is passed, but eventual children are transformed)\n *   (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n *   Handler for all unknown nodes (optional).\n *\n * @typedef State\n *   Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n *   Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n *   Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n *   Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n *   Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n *   Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n *   Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n *   Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n *   Transform an mdast node to hast.\n * @property {Options} options\n *   Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n *   Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n *   Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n *   mdast node to transform.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {State}\n *   `state` function.\n */\nexport function createState(tree, options) {\n  const settings = options || emptyOptions\n  /** @type {Map<string, MdastDefinition>} */\n  const definitionById = new Map()\n  /** @type {Map<string, MdastFootnoteDefinition>} */\n  const footnoteById = new Map()\n  /** @type {Map<string, number>} */\n  const footnoteCounts = new Map()\n  /** @type {Handlers} */\n  // @ts-expect-error: the root handler returns a root.\n  // Hard to type.\n  const handlers = {...defaultHandlers, ...settings.handlers}\n\n  /** @type {State} */\n  const state = {\n    all,\n    applyData,\n    definitionById,\n    footnoteById,\n    footnoteCounts,\n    footnoteOrder: [],\n    handlers,\n    one,\n    options: settings,\n    patch,\n    wrap\n  }\n\n  visit(tree, function (node) {\n    if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n      const map = node.type === 'definition' ? definitionById : footnoteById\n      const id = String(node.identifier).toUpperCase()\n\n      // Mimick CM behavior of link definitions.\n      // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n      if (!map.has(id)) {\n        // @ts-expect-error: node type matches map.\n        map.set(id, node)\n      }\n    }\n  })\n\n  return state\n\n  /**\n   * Transform an mdast node into a hast node.\n   *\n   * @param {MdastNodes} node\n   *   mdast node.\n   * @param {MdastParents | undefined} [parent]\n   *   Parent of `node`.\n   * @returns {Array<HastElementContent> | HastElementContent | undefined}\n   *   Resulting hast node.\n   */\n  function one(node, parent) {\n    const type = node.type\n    const handle = state.handlers[type]\n\n    if (own.call(state.handlers, type) && handle) {\n      return handle(state, node, parent)\n    }\n\n    if (state.options.passThrough && state.options.passThrough.includes(type)) {\n      if ('children' in node) {\n        const {children, ...shallow} = node\n        const result = structuredClone(shallow)\n        // @ts-expect-error: TS doesn’t understand…\n        result.children = state.all(node)\n        // @ts-expect-error: TS doesn’t understand…\n        return result\n      }\n\n      // @ts-expect-error: it’s custom.\n      return structuredClone(node)\n    }\n\n    const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n    return unknown(state, node, parent)\n  }\n\n  /**\n   * Transform the children of an mdast node into hast nodes.\n   *\n   * @param {MdastNodes} parent\n   *   mdast node to compile\n   * @returns {Array<HastElementContent>}\n   *   Resulting hast nodes.\n   */\n  function all(parent) {\n    /** @type {Array<HastElementContent>} */\n    const values = []\n\n    if ('children' in parent) {\n      const nodes = parent.children\n      let index = -1\n      while (++index < nodes.length) {\n        const result = state.one(nodes[index], parent)\n\n        // To do: see if we van clean this? Can we merge texts?\n        if (result) {\n          if (index && nodes[index - 1].type === 'break') {\n            if (!Array.isArray(result) && result.type === 'text') {\n              result.value = trimMarkdownSpaceStart(result.value)\n            }\n\n            if (!Array.isArray(result) && result.type === 'element') {\n              const head = result.children[0]\n\n              if (head && head.type === 'text') {\n                head.value = trimMarkdownSpaceStart(head.value)\n              }\n            }\n          }\n\n          if (Array.isArray(result)) {\n            values.push(...result)\n          } else {\n            values.push(result)\n          }\n        }\n      }\n    }\n\n    return values\n  }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n *   mdast node to copy from.\n * @param {HastNodes} to\n *   hast node to copy into.\n * @returns {undefined}\n *   Nothing.\n */\nfunction patch(from, to) {\n  if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n *   Node type.\n * @param {MdastNodes} from\n *   mdast node to use data from.\n * @param {Type} to\n *   hast node to change.\n * @returns {HastElement | Type}\n *   Nothing.\n */\nfunction applyData(from, to) {\n  /** @type {HastElement | Type} */\n  let result = to\n\n  // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n  if (from && from.data) {\n    const hName = from.data.hName\n    const hChildren = from.data.hChildren\n    const hProperties = from.data.hProperties\n\n    if (typeof hName === 'string') {\n      // Transforming the node resulted in an element with a different name\n      // than wanted:\n      if (result.type === 'element') {\n        result.tagName = hName\n      }\n      // Transforming the node resulted in a non-element, which happens for\n      // raw, text, and root nodes (unless custom handlers are passed).\n      // The intent of `hName` is to create an element, but likely also to keep\n      // the content around (otherwise: pass `hChildren`).\n      else {\n        /** @type {Array<HastElementContent>} */\n        // @ts-expect-error: assume no doctypes in `root`.\n        const children = 'children' in result ? result.children : [result]\n        result = {type: 'element', tagName: hName, properties: {}, children}\n      }\n    }\n\n    if (result.type === 'element' && hProperties) {\n      Object.assign(result.properties, structuredClone(hProperties))\n    }\n\n    if (\n      'children' in result &&\n      result.children &&\n      hChildren !== null &&\n      hChildren !== undefined\n    ) {\n      result.children = hChildren\n    }\n  }\n\n  return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastNodes} node\n *   Unknown mdast node.\n * @returns {HastElement | HastText}\n *   Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n  const data = node.data || {}\n  /** @type {HastElement | HastText} */\n  const result =\n    'value' in node &&\n    !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n      ? {type: 'text', value: node.value}\n      : {\n          type: 'element',\n          tagName: 'div',\n          properties: {},\n          children: state.all(node)\n        }\n\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n *   Node type.\n * @param {Array<Type>} nodes\n *   List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n *   Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n *   Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n  /** @type {Array<HastText | Type>} */\n  const result = []\n  let index = -1\n\n  if (loose) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  while (++index < nodes.length) {\n    if (index) result.push({type: 'text', value: '\\n'})\n    result.push(nodes[index])\n  }\n\n  if (loose && nodes.length > 0) {\n    result.push({type: 'text', value: '\\n'})\n  }\n\n  return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n *   Value to trim.\n * @returns {string}\n *   Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n  let index = 0\n  let code = value.charCodeAt(index)\n\n  while (code === 9 || code === 32) {\n    index++\n    code = value.charCodeAt(index)\n  }\n\n  return value.slice(index)\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * *   `hast-util-to-html` also has an option `allowDangerousHtml` which will\n *     output the raw HTML.\n *     This is typically discouraged as noted by the option name but is useful\n *     if you completely trust authors\n * *   `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n *     into standard hast nodes (`element`, `text`, etc).\n *     This is a heavy task as it needs a full HTML parser, but it is the only\n *     way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * *   when the node has a `value` (and doesn’t have `data.hName`,\n *     `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n *     node\n * *   otherwise, create a `<div>` element (which could be changed with\n *     `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n *   mdast tree.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {HastNodes}\n *   hast tree.\n */\nexport function toHast(tree, options) {\n  const state = createState(tree, options)\n  const node = state.one(tree, undefined)\n  const foot = footer(state)\n  /** @type {HastNodes} */\n  const result = Array.isArray(node)\n    ? {type: 'root', children: node}\n    : node || {type: 'root', children: []}\n\n  if (foot) {\n    // If there’s a footer, there were definitions, meaning block\n    // content.\n    // So `result` is a parent node.\n    assert('children' in result)\n    result.children.push({type: 'text', value: '\\n'}, foot)\n  }\n\n  return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n *   Bridge-mode.\n *\n *   Runs the destination with the new hast tree.\n *   Discards result.\n * @param {MdastRoot} tree\n *   Tree.\n * @param {VFile} file\n *   File.\n * @returns {Promise<undefined>}\n *   Nothing.\n *\n * @callback TransformMutate\n *  Mutate-mode.\n *\n *  Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n *   Tree.\n * @param {VFile} file\n *   File.\n * @returns {HastRoot}\n *   Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n *   runs the (rehype) plugins used on it with a hast tree,\n *   then discards the result (*bridge mode*)\n * * otherwise,\n *   returns a hast tree,\n *   the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n *   output the raw HTML.\n *   This is typically discouraged as noted by the option name but is useful if\n *   you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n *   into standard hast nodes (`element`, `text`, etc);\n *   this is a heavy task as it needs a full HTML parser,\n *   but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n *   (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n *   see later),\n *   create a hast `text` node\n * * otherwise,\n *   create a `<div>` element (which could be changed with `data.hName`),\n *   with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n *   Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n *   When a processor was given,\n *   configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n *   Transform.\n */\nexport default function remarkRehype(destination, options) {\n  if (destination && 'run' in destination) {\n    /**\n     * @type {TransformBridge}\n     */\n    return async function (tree, file) {\n      // Cast because root in -> root out.\n      const hastTree = /** @type {HastRoot} */ (\n        toHast(tree, {file, ...options})\n      )\n      await destination.run(hastTree, file)\n    }\n  }\n\n  /**\n   * @type {TransformMutate}\n   */\n  return function (tree, file) {\n    // Cast because root in -> root out.\n    // To do: in the future, disallow ` || options` fallback.\n    // With `unified-engine`, `destination` can be `undefined` but\n    // `options` will be the file set.\n    // We should not pass that as `options`.\n    return /** @type {HastRoot} */ (\n      toHast(tree, {file, ...(destination || options)})\n    )\n  }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n *   Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n  if (error) {\n    throw error\n  }\n}\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n *   Acceptable results from compilers.\n *\n *   To register custom results, add them to\n *   {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n *   The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n *   A **compiler** handles the compiling of a syntax tree to something else\n *   (in most cases, text) (TypeScript type).\n *\n *   It is used in the stringify phase and called with a {@linkcode Node}\n *   and {@linkcode VFile} representation of the document to compile.\n *   It should return the textual representation of the given tree (typically\n *   `string`).\n *\n *   > **Note**: unified typically compiles by serializing: most compilers\n *   > return `string` (or `Uint8Array`).\n *   > Some compilers, such as the one configured with\n *   > [`rehype-react`][rehype-react], return other values (in this case, a\n *   > React tree).\n *   > If you’re using a compiler that doesn’t serialize, expect different\n *   > result values.\n *   >\n *   > To register custom results in TypeScript, add them to\n *   > {@linkcode CompileResultMap}.\n *\n *   [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n *   Tree to compile.\n * @param {VFile} file\n *   File associated with `tree`.\n * @returns {Result}\n *   New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n *   something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The node that the parser yields (default: `Node`)\n * @callback Parser\n *   A **parser** handles the parsing of text to a syntax tree.\n *\n *   It is used in the parse phase and is called with a `string` and\n *   {@linkcode VFile} of the document to parse.\n *   It must return the syntax tree representation of the given file\n *   ({@linkcode Node}).\n * @param {string} document\n *   Document to parse.\n * @param {VFile} file\n *   File associated with `document`.\n * @returns {Tree}\n *   Node representing the given file.\n */\n\n/**\n * @typedef {(\n *   Plugin<Array<any>, any, any> |\n *   PluginTuple<Array<any>, any, any> |\n *   Preset\n * )} Pluggable\n *   Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n *   List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n//  <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n *   Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n *   Value that is expected as input (default: `Node`).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node it expects.\n *   *   If the plugin sets a {@linkcode Parser}, this should be\n *       `string`.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be the\n *       node it expects.\n * @template [Output=Input]\n *   Value that is yielded as output (default: `Input`).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node that that yields.\n *   *   If the plugin sets a {@linkcode Parser}, this should be the\n *       node that it yields.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be\n *       result it yields.\n * @typedef {(\n *   (this: Processor, ...parameters: PluginParameters) =>\n *     Input extends string ? // Parser.\n *        Output extends Node | undefined ? undefined | void : never :\n *     Output extends CompileResults ? // Compiler.\n *        Input extends Node | undefined ? undefined | void : never :\n *     Transformer<\n *       Input extends Node ? Input : Node,\n *       Output extends Node ? Output : Node\n *     > | undefined | void\n * )} Plugin\n *   Single plugin.\n *\n *   Plugins configure the processors they are applied on in the following\n *   ways:\n *\n *   *   they change the processor, such as the parser, the compiler, or by\n *       configuring data\n *   *   they specify how to handle trees and files\n *\n *   In practice, they are functions that can receive options and configure the\n *   processor (`this`).\n *\n *   > **Note**: plugins are called when the processor is *frozen*, not when\n *   > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n *   Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n *   Value that is expected as input (optional).\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node it expects.\n *   *   If the plugin sets a {@linkcode Parser}, this should be\n *       `string`.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be the\n *       node it expects.\n * @template [Output=undefined] (optional).\n *   Value that is yielded as output.\n *\n *   *   If the plugin returns a {@linkcode Transformer}, this\n *       should be the node that that yields.\n *   *   If the plugin sets a {@linkcode Parser}, this should be the\n *       node that it yields.\n *   *   If the plugin sets a {@linkcode Compiler}, this should be\n *       result it yields.\n * @typedef {(\n *   [\n *     plugin: Plugin<TupleParameters, Input, Output>,\n *     ...parameters: TupleParameters\n *   ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n *   Sharable configuration.\n *\n *   They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n *   List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n *   Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n *   The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n *   Callback called when the process is done.\n *\n *   Called with either an error or a result.\n * @param {Error | undefined} [error]\n *   Fatal error (optional).\n * @param {File | undefined} [file]\n *   Processed file (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n *   The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n *   Callback called when transformers are done.\n *\n *   Called with either an error or results.\n * @param {Error | undefined} [error]\n *   Fatal error (optional).\n * @param {Tree | undefined} [tree]\n *   Transformed tree (optional).\n * @param {VFile | undefined} [file]\n *   File (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n *   Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n *   Callback passed to transforms.\n *\n *   If the signature of a `transformer` accepts a third argument, the\n *   transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n *   Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n *   New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n *   New, changed, file (optional).\n * @returns {undefined}\n *   Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n *   Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n *   Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n *   Transformers handle syntax trees and files.\n *\n *   They are functions that are called each time a syntax tree and file are\n *   passed through the run phase.\n *   When an error occurs in them (either because it’s thrown, returned,\n *   rejected, or passed to `next`), the process stops.\n *\n *   The run phase is handled by [`trough`][trough], see its documentation for\n *   the exact semantics of these functions.\n *\n *   > **Note**: you should likely ignore `next`: don’t accept it.\n *   > it supports callback-style async work.\n *   > But promises are likely easier to reason about.\n *\n *   [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n *   Tree to handle.\n * @param {VFile} file\n *   File to handle.\n * @param {TransformCallback<Output>} next\n *   Callback.\n * @returns {(\n *   Promise<Output | undefined | void> |\n *   Promise<never> | // For some reason this is needed separately.\n *   Output |\n *   Error |\n *   undefined |\n *   void\n * )}\n *   If you accept `next`, nothing.\n *   Otherwise:\n *\n *   *   `Error` — fatal error to stop the process\n *   *   `Promise<undefined>` or `undefined` — the next transformer keeps using\n *       same tree\n *   *   `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n *   Output of `parse`.\n * @template {Node | undefined} HeadTree\n *   Input for `run`.\n * @template {Node | undefined} TailTree\n *   Output for `run`.\n * @template {Node | undefined} CompileTree\n *   Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n *   Output of `stringify`.\n * @template {Node | string | undefined} Input\n *   Input of plugin.\n * @template Output\n *   Output of plugin (optional).\n * @typedef {(\n *   Input extends string\n *     ? Output extends Node | undefined\n *       ? // Parser.\n *         Processor<\n *           Output extends undefined ? ParseTree : Output,\n *           HeadTree,\n *           TailTree,\n *           CompileTree,\n *           CompileResult\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : Output extends CompileResults\n *     ? Input extends Node | undefined\n *       ? // Compiler.\n *         Processor<\n *           ParseTree,\n *           HeadTree,\n *           TailTree,\n *           Input extends undefined ? CompileTree : Input,\n *           Output extends undefined ? CompileResult : Output\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : Input extends Node | undefined\n *     ? Output extends Node | undefined\n *       ? // Transform.\n *         Processor<\n *           ParseTree,\n *           HeadTree extends undefined ? Input : HeadTree,\n *           Output extends undefined ? TailTree : Output,\n *           CompileTree,\n *           CompileResult\n *         >\n *       : // Unknown.\n *         Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n *     : // Unknown.\n *       Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n *   Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n *   Node type that the transformer yields.\n * @typedef {(\n *   Result extends Value | undefined ?\n *     VFile :\n *     VFile & {result: Result}\n *   )} VFileWithOutput\n *   Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n *   If a result that is not acceptable on a `VFile` is used, that will\n *   be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n *   Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n *   Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n *   Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n *   Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n *   Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n  /**\n   * Create a processor.\n   */\n  constructor() {\n    // If `Processor()` is called (w/o new), `copy` is called instead.\n    super('copy')\n\n    /**\n     * Compiler to use (deprecated).\n     *\n     * @deprecated\n     *   Use `compiler` instead.\n     * @type {(\n     *   Compiler<\n     *     CompileTree extends undefined ? Node : CompileTree,\n     *     CompileResult extends undefined ? CompileResults : CompileResult\n     *   > |\n     *   undefined\n     * )}\n     */\n    this.Compiler = undefined\n\n    /**\n     * Parser to use (deprecated).\n     *\n     * @deprecated\n     *   Use `parser` instead.\n     * @type {(\n     *   Parser<ParseTree extends undefined ? Node : ParseTree> |\n     *   undefined\n     * )}\n     */\n    this.Parser = undefined\n\n    // Note: the following fields are considered private.\n    // However, they are needed for tests, and TSC generates an untyped\n    // `private freezeIndex` field for, which trips `type-coverage` up.\n    // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n    /**\n     * Internal list of configured plugins.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Array<PluginTuple<Array<unknown>>>}\n     */\n    this.attachers = []\n\n    /**\n     * Compiler to use.\n     *\n     * @type {(\n     *   Compiler<\n     *     CompileTree extends undefined ? Node : CompileTree,\n     *     CompileResult extends undefined ? CompileResults : CompileResult\n     *   > |\n     *   undefined\n     * )}\n     */\n    this.compiler = undefined\n\n    /**\n     * Internal state to track where we are while freezing.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {number}\n     */\n    this.freezeIndex = -1\n\n    /**\n     * Internal state to track whether we’re frozen.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {boolean | undefined}\n     */\n    this.frozen = undefined\n\n    /**\n     * Internal state.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Data}\n     */\n    this.namespace = {}\n\n    /**\n     * Parser to use.\n     *\n     * @type {(\n     *   Parser<ParseTree extends undefined ? Node : ParseTree> |\n     *   undefined\n     * )}\n     */\n    this.parser = undefined\n\n    /**\n     * Internal list of configured transformers.\n     *\n     * @deprecated\n     *   This is a private internal property and should not be used.\n     * @type {Pipeline}\n     */\n    this.transformers = trough()\n  }\n\n  /**\n   * Copy a processor.\n   *\n   * @deprecated\n   *   This is a private internal method and should not be used.\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   New *unfrozen* processor ({@linkcode Processor}) that is\n   *   configured to work the same as its ancestor.\n   *   When the descendant processor is configured in the future it does not\n   *   affect the ancestral processor.\n   */\n  copy() {\n    // Cast as the type parameters will be the same after attaching.\n    const destination =\n      /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n        new Processor()\n      )\n    let index = -1\n\n    while (++index < this.attachers.length) {\n      const attacher = this.attachers[index]\n      destination.use(...attacher)\n    }\n\n    destination.data(extend(true, {}, this.namespace))\n\n    return destination\n  }\n\n  /**\n   * Configure the processor with info available to all plugins.\n   * Information is stored in an object.\n   *\n   * Typically, options can be given to a specific plugin, but sometimes it\n   * makes sense to have information shared with several plugins.\n   * For example, a list of HTML elements that are self-closing, which is\n   * needed during all phases.\n   *\n   * > **Note**: setting information cannot occur on *frozen* processors.\n   * > Call the processor first to create a new unfrozen processor.\n   *\n   * > **Note**: to register custom data in TypeScript, augment the\n   * > {@linkcode Data} interface.\n   *\n   * @example\n   *   This example show how to get and set info:\n   *\n   *   ```js\n   *   import {unified} from 'unified'\n   *\n   *   const processor = unified().data('alpha', 'bravo')\n   *\n   *   processor.data('alpha') // => 'bravo'\n   *\n   *   processor.data() // => {alpha: 'bravo'}\n   *\n   *   processor.data({charlie: 'delta'})\n   *\n   *   processor.data() // => {charlie: 'delta'}\n   *   ```\n   *\n   * @template {keyof Data} Key\n   *\n   * @overload\n   * @returns {Data}\n   *\n   * @overload\n   * @param {Data} dataset\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {Key} key\n   * @returns {Data[Key]}\n   *\n   * @overload\n   * @param {Key} key\n   * @param {Data[Key]} value\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @param {Data | Key} [key]\n   *   Key to get or set, or entire dataset to set, or nothing to get the\n   *   entire dataset (optional).\n   * @param {Data[Key]} [value]\n   *   Value to set (optional).\n   * @returns {unknown}\n   *   The current processor when setting, the value at `key` when getting, or\n   *   the entire dataset when getting without key.\n   */\n  data(key, value) {\n    if (typeof key === 'string') {\n      // Set `key`.\n      if (arguments.length === 2) {\n        assertUnfrozen('data', this.frozen)\n        this.namespace[key] = value\n        return this\n      }\n\n      // Get `key`.\n      return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n    }\n\n    // Set space.\n    if (key) {\n      assertUnfrozen('data', this.frozen)\n      this.namespace = key\n      return this\n    }\n\n    // Get space.\n    return this.namespace\n  }\n\n  /**\n   * Freeze a processor.\n   *\n   * Frozen processors are meant to be extended and not to be configured\n   * directly.\n   *\n   * When a processor is frozen it cannot be unfrozen.\n   * New processors working the same way can be created by calling the\n   * processor.\n   *\n   * It’s possible to freeze processors explicitly by calling `.freeze()`.\n   * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n   * `.stringify()`, `.process()`, or `.processSync()` are called.\n   *\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   The current processor.\n   */\n  freeze() {\n    if (this.frozen) {\n      return this\n    }\n\n    // Cast so that we can type plugins easier.\n    // Plugins are supposed to be usable on different processors, not just on\n    // this exact processor.\n    const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n    while (++this.freezeIndex < this.attachers.length) {\n      const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n      if (options[0] === false) {\n        continue\n      }\n\n      if (options[0] === true) {\n        options[0] = undefined\n      }\n\n      const transformer = attacher.call(self, ...options)\n\n      if (typeof transformer === 'function') {\n        this.transformers.use(transformer)\n      }\n    }\n\n    this.frozen = true\n    this.freezeIndex = Number.POSITIVE_INFINITY\n\n    return this\n  }\n\n  /**\n   * Parse text to a syntax tree.\n   *\n   * > **Note**: `parse` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `parse` performs the parse phase, not the run phase or other\n   * > phases.\n   *\n   * @param {Compatible | undefined} [file]\n   *   file to parse (optional); typically `string` or `VFile`; any value\n   *   accepted as `x` in `new VFile(x)`.\n   * @returns {ParseTree extends undefined ? Node : ParseTree}\n   *   Syntax tree representing `file`.\n   */\n  parse(file) {\n    this.freeze()\n    const realFile = vfile(file)\n    const parser = this.parser || this.Parser\n    assertParser('parse', parser)\n    return parser(String(realFile), realFile)\n  }\n\n  /**\n   * Process the given file as configured on the processor.\n   *\n   * > **Note**: `process` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `process` performs the parse, run, and stringify phases.\n   *\n   * @overload\n   * @param {Compatible | undefined} file\n   * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {Compatible | undefined} [file]\n   * @returns {Promise<VFileWithOutput<CompileResult>>}\n   *\n   * @param {Compatible | undefined} [file]\n   *   File (optional); typically `string` or `VFile`]; any value accepted as\n   *   `x` in `new VFile(x)`.\n   * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n   *   Callback (optional).\n   * @returns {Promise<VFile> | undefined}\n   *   Nothing if `done` is given.\n   *   Otherwise a promise, rejected with a fatal error or resolved with the\n   *   processed file.\n   *\n   *   The parsed, transformed, and compiled value is available at\n   *   `file.value` (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most\n   *   > compilers return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  process(file, done) {\n    const self = this\n\n    this.freeze()\n    assertParser('process', this.parser || this.Parser)\n    assertCompiler('process', this.compiler || this.Compiler)\n\n    return done ? executor(undefined, done) : new Promise(executor)\n\n    // Note: `void`s needed for TS.\n    /**\n     * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n     * @param {(error: Error | undefined) => undefined | void} reject\n     * @returns {undefined}\n     */\n    function executor(resolve, reject) {\n      const realFile = vfile(file)\n      // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n      // input of the first transform).\n      const parseTree =\n        /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n          /** @type {unknown} */ (self.parse(realFile))\n        )\n\n      self.run(parseTree, realFile, function (error, tree, file) {\n        if (error || !tree || !file) {\n          return realDone(error)\n        }\n\n        // Assume `TailTree` (the output of the last transform) matches\n        // `CompileTree` (the input of the compiler).\n        const compileTree =\n          /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n            /** @type {unknown} */ (tree)\n          )\n\n        const compileResult = self.stringify(compileTree, file)\n\n        if (looksLikeAValue(compileResult)) {\n          file.value = compileResult\n        } else {\n          file.result = compileResult\n        }\n\n        realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n      })\n\n      /**\n       * @param {Error | undefined} error\n       * @param {VFileWithOutput<CompileResult> | undefined} [file]\n       * @returns {undefined}\n       */\n      function realDone(error, file) {\n        if (error || !file) {\n          reject(error)\n        } else if (resolve) {\n          resolve(file)\n        } else {\n          assert(done, '`done` is defined if `resolve` is not')\n          done(undefined, file)\n        }\n      }\n    }\n  }\n\n  /**\n   * Process the given file as configured on the processor.\n   *\n   * An error is thrown if asynchronous transforms are configured.\n   *\n   * > **Note**: `processSync` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `processSync` performs the parse, run, and stringify phases.\n   *\n   * @param {Compatible | undefined} [file]\n   *   File (optional); typically `string` or `VFile`; any value accepted as\n   *   `x` in `new VFile(x)`.\n   * @returns {VFileWithOutput<CompileResult>}\n   *   The processed file.\n   *\n   *   The parsed, transformed, and compiled value is available at\n   *   `file.value` (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most\n   *   > compilers return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  processSync(file) {\n    /** @type {boolean} */\n    let complete = false\n    /** @type {VFileWithOutput<CompileResult> | undefined} */\n    let result\n\n    this.freeze()\n    assertParser('processSync', this.parser || this.Parser)\n    assertCompiler('processSync', this.compiler || this.Compiler)\n\n    this.process(file, realDone)\n    assertDone('processSync', 'process', complete)\n    assert(result, 'we either bailed on an error or have a tree')\n\n    return result\n\n    /**\n     * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n     */\n    function realDone(error, file) {\n      complete = true\n      bail(error)\n      result = file\n    }\n  }\n\n  /**\n   * Run *transformers* on a syntax tree.\n   *\n   * > **Note**: `run` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `run` performs the run phase, not other phases.\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {Compatible | undefined} file\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n   * @returns {undefined}\n   *\n   * @overload\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   * @param {Compatible | undefined} [file]\n   * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n   *\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   *   Tree to transform and inspect.\n   * @param {(\n   *   RunCallback<TailTree extends undefined ? Node : TailTree> |\n   *   Compatible\n   * )} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n   *   Callback (optional).\n   * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n   *   Nothing if `done` is given.\n   *   Otherwise, a promise rejected with a fatal error or resolved with the\n   *   transformed tree.\n   */\n  run(tree, file, done) {\n    assertNode(tree)\n    this.freeze()\n\n    const transformers = this.transformers\n\n    if (!done && typeof file === 'function') {\n      done = file\n      file = undefined\n    }\n\n    return done ? executor(undefined, done) : new Promise(executor)\n\n    // Note: `void`s needed for TS.\n    /**\n     * @param {(\n     *   ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n     *   undefined\n     * )} resolve\n     * @param {(error: Error) => undefined | void} reject\n     * @returns {undefined}\n     */\n    function executor(resolve, reject) {\n      assert(\n        typeof file !== 'function',\n        '`file` can’t be a `done` anymore, we checked'\n      )\n      const realFile = vfile(file)\n      transformers.run(tree, realFile, realDone)\n\n      /**\n       * @param {Error | undefined} error\n       * @param {Node} outputTree\n       * @param {VFile} file\n       * @returns {undefined}\n       */\n      function realDone(error, outputTree, file) {\n        const resultingTree =\n          /** @type {TailTree extends undefined ? Node : TailTree} */ (\n            outputTree || tree\n          )\n\n        if (error) {\n          reject(error)\n        } else if (resolve) {\n          resolve(resultingTree)\n        } else {\n          assert(done, '`done` is defined if `resolve` is not')\n          done(undefined, resultingTree, file)\n        }\n      }\n    }\n  }\n\n  /**\n   * Run *transformers* on a syntax tree.\n   *\n   * An error is thrown if asynchronous transforms are configured.\n   *\n   * > **Note**: `runSync` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `runSync` performs the run phase, not other phases.\n   *\n   * @param {HeadTree extends undefined ? Node : HeadTree} tree\n   *   Tree to transform and inspect.\n   * @param {Compatible | undefined} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @returns {TailTree extends undefined ? Node : TailTree}\n   *   Transformed tree.\n   */\n  runSync(tree, file) {\n    /** @type {boolean} */\n    let complete = false\n    /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n    let result\n\n    this.run(tree, file, realDone)\n\n    assertDone('runSync', 'run', complete)\n    assert(result, 'we either bailed on an error or have a tree')\n    return result\n\n    /**\n     * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n     */\n    function realDone(error, tree) {\n      bail(error)\n      result = tree\n      complete = true\n    }\n  }\n\n  /**\n   * Compile a syntax tree.\n   *\n   * > **Note**: `stringify` freezes the processor if not already *frozen*.\n   *\n   * > **Note**: `stringify` performs the stringify phase, not the run phase\n   * > or other phases.\n   *\n   * @param {CompileTree extends undefined ? Node : CompileTree} tree\n   *   Tree to compile.\n   * @param {Compatible | undefined} [file]\n   *   File associated with `node` (optional); any value accepted as `x` in\n   *   `new VFile(x)`.\n   * @returns {CompileResult extends undefined ? Value : CompileResult}\n   *   Textual representation of the tree (see note).\n   *\n   *   > **Note**: unified typically compiles by serializing: most compilers\n   *   > return `string` (or `Uint8Array`).\n   *   > Some compilers, such as the one configured with\n   *   > [`rehype-react`][rehype-react], return other values (in this case, a\n   *   > React tree).\n   *   > If you’re using a compiler that doesn’t serialize, expect different\n   *   > result values.\n   *   >\n   *   > To register custom results in TypeScript, add them to\n   *   > {@linkcode CompileResultMap}.\n   *\n   *   [rehype-react]: https://github.com/rehypejs/rehype-react\n   */\n  stringify(tree, file) {\n    this.freeze()\n    const realFile = vfile(file)\n    const compiler = this.compiler || this.Compiler\n    assertCompiler('stringify', compiler)\n    assertNode(tree)\n\n    return compiler(tree, realFile)\n  }\n\n  /**\n   * Configure the processor to use a plugin, a list of usable values, or a\n   * preset.\n   *\n   * If the processor is already using a plugin, the previous plugin\n   * configuration is changed based on the options that are passed in.\n   * In other words, the plugin is not added a second time.\n   *\n   * > **Note**: `use` cannot be called on *frozen* processors.\n   * > Call the processor first to create a new unfrozen processor.\n   *\n   * @example\n   *   There are many ways to pass plugins to `.use()`.\n   *   This example gives an overview:\n   *\n   *   ```js\n   *   import {unified} from 'unified'\n   *\n   *   unified()\n   *     // Plugin with options:\n   *     .use(pluginA, {x: true, y: true})\n   *     // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n   *     .use(pluginA, {y: false, z: true})\n   *     // Plugins:\n   *     .use([pluginB, pluginC])\n   *     // Two plugins, the second with options:\n   *     .use([pluginD, [pluginE, {}]])\n   *     // Preset with plugins and settings:\n   *     .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n   *     // Settings only:\n   *     .use({settings: {position: false}})\n   *   ```\n   *\n   * @template {Array<unknown>} [Parameters=[]]\n   * @template {Node | string | undefined} [Input=undefined]\n   * @template [Output=Input]\n   *\n   * @overload\n   * @param {Preset | null | undefined} [preset]\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {PluggableList} list\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *\n   * @overload\n   * @param {Plugin<Parameters, Input, Output>} plugin\n   * @param {...(Parameters | [boolean])} parameters\n   * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n   *\n   * @param {PluggableList | Plugin | Preset | null | undefined} value\n   *   Usable value.\n   * @param {...unknown} parameters\n   *   Parameters, when a plugin is given as a usable value.\n   * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n   *   Current processor.\n   */\n  use(value, ...parameters) {\n    const attachers = this.attachers\n    const namespace = this.namespace\n\n    assertUnfrozen('use', this.frozen)\n\n    if (value === null || value === undefined) {\n      // Empty.\n    } else if (typeof value === 'function') {\n      addPlugin(value, parameters)\n    } else if (typeof value === 'object') {\n      if (Array.isArray(value)) {\n        addList(value)\n      } else {\n        addPreset(value)\n      }\n    } else {\n      throw new TypeError('Expected usable value, not `' + value + '`')\n    }\n\n    return this\n\n    /**\n     * @param {Pluggable} value\n     * @returns {undefined}\n     */\n    function add(value) {\n      if (typeof value === 'function') {\n        addPlugin(value, [])\n      } else if (typeof value === 'object') {\n        if (Array.isArray(value)) {\n          const [plugin, ...parameters] =\n            /** @type {PluginTuple<Array<unknown>>} */ (value)\n          addPlugin(plugin, parameters)\n        } else {\n          addPreset(value)\n        }\n      } else {\n        throw new TypeError('Expected usable value, not `' + value + '`')\n      }\n    }\n\n    /**\n     * @param {Preset} result\n     * @returns {undefined}\n     */\n    function addPreset(result) {\n      if (!('plugins' in result) && !('settings' in result)) {\n        throw new Error(\n          'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n        )\n      }\n\n      addList(result.plugins)\n\n      if (result.settings) {\n        namespace.settings = extend(true, namespace.settings, result.settings)\n      }\n    }\n\n    /**\n     * @param {PluggableList | null | undefined} plugins\n     * @returns {undefined}\n     */\n    function addList(plugins) {\n      let index = -1\n\n      if (plugins === null || plugins === undefined) {\n        // Empty.\n      } else if (Array.isArray(plugins)) {\n        while (++index < plugins.length) {\n          const thing = plugins[index]\n          add(thing)\n        }\n      } else {\n        throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n      }\n    }\n\n    /**\n     * @param {Plugin} plugin\n     * @param {Array<unknown>} parameters\n     * @returns {undefined}\n     */\n    function addPlugin(plugin, parameters) {\n      let index = -1\n      let entryIndex = -1\n\n      while (++index < attachers.length) {\n        if (attachers[index][0] === plugin) {\n          entryIndex = index\n          break\n        }\n      }\n\n      if (entryIndex === -1) {\n        attachers.push([plugin, ...parameters])\n      }\n      // Only set if there was at least a `primary` value, otherwise we’d change\n      // `arguments.length`.\n      else if (parameters.length > 0) {\n        let [primary, ...rest] = parameters\n        const currentPrimary = attachers[entryIndex][1]\n        if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n          primary = extend(true, currentPrimary, primary)\n        }\n\n        attachers[entryIndex] = [plugin, primary, ...rest]\n      }\n    }\n  }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n *   This example shows how a new processor can be created (from `remark`) and linked\n *   to **stdin**(4) and **stdout**(4).\n *\n *   ```js\n *   import process from 'node:process'\n *   import concatStream from 'concat-stream'\n *   import {remark} from 'remark'\n *\n *   process.stdin.pipe(\n *     concatStream(function (buf) {\n *       process.stdout.write(String(remark().processSync(buf)))\n *     })\n *   )\n *   ```\n *\n * @returns\n *   New *unfrozen* processor (`processor`).\n *\n *   This processor is configured to work the same as its ancestor.\n *   When the descendant processor is configured in the future it does not\n *   affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `parser`')\n  }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n  if (typeof value !== 'function') {\n    throw new TypeError('Cannot `' + name + '` without `compiler`')\n  }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n  if (frozen) {\n    throw new Error(\n      'Cannot call `' +\n        name +\n        '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n    )\n  }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n  // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n  // type-coverage:ignore-next-line\n  if (!isPlainObj(node) || typeof node.type !== 'string') {\n    throw new TypeError('Expected node, got `' + node + '`')\n    // Fine.\n  }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n  if (!complete) {\n    throw new Error(\n      '`' + name + '` finished async. Use `' + asyncName + '` instead'\n    )\n  }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n  return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'message' in value &&\n      'messages' in value\n  )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n  return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Uint8Array}\n *   Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'byteLength' in value &&\n      'byteOffset' in value\n  )\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n *   Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n *   Ware.\n *\n * @typedef Pipeline\n *   Pipeline.\n * @property {Run} run\n *   Run the pipeline.\n * @property {Use} use\n *   Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n *   Call all middleware.\n *\n *   Calls `done` on completion with either an error or the output of the\n *   last middleware.\n *\n *   > 👉 **Note**: as the length of input defines whether async functions get a\n *   > `next` function,\n *   > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n *   Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n *   Pipeline.\n */\nexport function trough() {\n  /** @type {Array<Middleware>} */\n  const fns = []\n  /** @type {Pipeline} */\n  const pipeline = {run, use}\n\n  return pipeline\n\n  /** @type {Run} */\n  function run(...values) {\n    let middlewareIndex = -1\n    /** @type {Callback} */\n    const callback = values.pop()\n\n    if (typeof callback !== 'function') {\n      throw new TypeError('Expected function as last argument, not ' + callback)\n    }\n\n    next(null, ...values)\n\n    /**\n     * Run the next `fn`, or we’re done.\n     *\n     * @param {Error | null | undefined} error\n     * @param {Array<any>} output\n     */\n    function next(error, ...output) {\n      const fn = fns[++middlewareIndex]\n      let index = -1\n\n      if (error) {\n        callback(error)\n        return\n      }\n\n      // Copy non-nullish input into values.\n      while (++index < values.length) {\n        if (output[index] === null || output[index] === undefined) {\n          output[index] = values[index]\n        }\n      }\n\n      // Save the newly created `output` for the next call.\n      values = output\n\n      // Next or done.\n      if (fn) {\n        wrap(fn, next)(...output)\n      } else {\n        callback(null, ...output)\n      }\n    }\n  }\n\n  /** @type {Use} */\n  function use(middelware) {\n    if (typeof middelware !== 'function') {\n      throw new TypeError(\n        'Expected `middelware` to be a function, not ' + middelware\n      )\n    }\n\n    fns.push(middelware)\n    return pipeline\n  }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n *   returns a promise that is rejected,\n *   or calls the given `done` function with an error,\n *   `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n *   that value is the main output value\n * * if `middleware` calls `done`,\n *   all non-nullish values except for the first one (the error) overwrite the\n *   output values\n *\n * @param {Middleware} middleware\n *   Function to wrap.\n * @param {Callback} callback\n *   Callback called with the output of `middleware`.\n * @returns {Run}\n *   Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n  /** @type {boolean} */\n  let called\n\n  return wrapped\n\n  /**\n   * Call `middleware`.\n   * @this {any}\n   * @param {Array<any>} parameters\n   * @returns {void}\n   */\n  function wrapped(...parameters) {\n    const fnExpectsCallback = middleware.length > parameters.length\n    /** @type {any} */\n    let result\n\n    if (fnExpectsCallback) {\n      parameters.push(done)\n    }\n\n    try {\n      result = middleware.apply(this, parameters)\n    } catch (error) {\n      const exception = /** @type {Error} */ (error)\n\n      // Well, this is quite the pickle.\n      // `middleware` received a callback and called it synchronously, but that\n      // threw an error.\n      // The only thing left to do is to throw the thing instead.\n      if (fnExpectsCallback && called) {\n        throw exception\n      }\n\n      return done(exception)\n    }\n\n    if (!fnExpectsCallback) {\n      if (result && result.then && typeof result.then === 'function') {\n        result.then(then, done)\n      } else if (result instanceof Error) {\n        done(result)\n      } else {\n        then(result)\n      }\n    }\n  }\n\n  /**\n   * Call `callback`, only once.\n   *\n   * @type {Callback}\n   */\n  function done(error, ...output) {\n    if (!called) {\n      called = true\n      callback(error, ...output)\n    }\n  }\n\n  /**\n   * Call `done` with one value.\n   *\n   * @param {any} [value]\n   */\n  function then(value) {\n    done(null, value)\n  }\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n *   File path.\n * @param {string | null | undefined} [extname]\n *   Extension to strip.\n * @returns {string}\n *   Stem or basename.\n */\nfunction basename(path, extname) {\n  if (extname !== undefined && typeof extname !== 'string') {\n    throw new TypeError('\"ext\" argument must be a string')\n  }\n\n  assertPath(path)\n  let start = 0\n  let end = -1\n  let index = path.length\n  /** @type {boolean | undefined} */\n  let seenNonSlash\n\n  if (\n    extname === undefined ||\n    extname.length === 0 ||\n    extname.length > path.length\n  ) {\n    while (index--) {\n      if (path.codePointAt(index) === 47 /* `/` */) {\n        // If we reached a path separator that was not part of a set of path\n        // separators at the end of the string, stop now.\n        if (seenNonSlash) {\n          start = index + 1\n          break\n        }\n      } else if (end < 0) {\n        // We saw the first non-path separator, mark this as the end of our\n        // path component.\n        seenNonSlash = true\n        end = index + 1\n      }\n    }\n\n    return end < 0 ? '' : path.slice(start, end)\n  }\n\n  if (extname === path) {\n    return ''\n  }\n\n  let firstNonSlashEnd = -1\n  let extnameIndex = extname.length - 1\n\n  while (index--) {\n    if (path.codePointAt(index) === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (seenNonSlash) {\n        start = index + 1\n        break\n      }\n    } else {\n      if (firstNonSlashEnd < 0) {\n        // We saw the first non-path separator, remember this index in case\n        // we need it if the extension ends up not matching.\n        seenNonSlash = true\n        firstNonSlashEnd = index + 1\n      }\n\n      if (extnameIndex > -1) {\n        // Try to match the explicit extension.\n        if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n          if (extnameIndex < 0) {\n            // We matched the extension, so mark this as the end of our path\n            // component\n            end = index\n          }\n        } else {\n          // Extension does not match, so our result is the entire path\n          // component\n          extnameIndex = -1\n          end = firstNonSlashEnd\n        }\n      }\n    }\n  }\n\n  if (start === end) {\n    end = firstNonSlashEnd\n  } else if (end < 0) {\n    end = path.length\n  }\n\n  return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   File path.\n */\nfunction dirname(path) {\n  assertPath(path)\n\n  if (path.length === 0) {\n    return '.'\n  }\n\n  let end = -1\n  let index = path.length\n  /** @type {boolean | undefined} */\n  let unmatchedSlash\n\n  // Prefix `--` is important to not run on `0`.\n  while (--index) {\n    if (path.codePointAt(index) === 47 /* `/` */) {\n      if (unmatchedSlash) {\n        end = index\n        break\n      }\n    } else if (!unmatchedSlash) {\n      // We saw the first non-path separator\n      unmatchedSlash = true\n    }\n  }\n\n  return end < 0\n    ? path.codePointAt(0) === 47 /* `/` */\n      ? '/'\n      : '.'\n    : end === 1 && path.codePointAt(0) === 47 /* `/` */\n      ? '//'\n      : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   Extname.\n */\nfunction extname(path) {\n  assertPath(path)\n\n  let index = path.length\n\n  let end = -1\n  let startPart = 0\n  let startDot = -1\n  // Track the state of characters (if any) we see before our first dot and\n  // after any path separator we find.\n  let preDotState = 0\n  /** @type {boolean | undefined} */\n  let unmatchedSlash\n\n  while (index--) {\n    const code = path.codePointAt(index)\n\n    if (code === 47 /* `/` */) {\n      // If we reached a path separator that was not part of a set of path\n      // separators at the end of the string, stop now.\n      if (unmatchedSlash) {\n        startPart = index + 1\n        break\n      }\n\n      continue\n    }\n\n    if (end < 0) {\n      // We saw the first non-path separator, mark this as the end of our\n      // extension.\n      unmatchedSlash = true\n      end = index + 1\n    }\n\n    if (code === 46 /* `.` */) {\n      // If this is our first dot, mark it as the start of our extension.\n      if (startDot < 0) {\n        startDot = index\n      } else if (preDotState !== 1) {\n        preDotState = 1\n      }\n    } else if (startDot > -1) {\n      // We saw a non-dot and non-path separator before our dot, so we should\n      // have a good chance at having a non-empty extension.\n      preDotState = -1\n    }\n  }\n\n  if (\n    startDot < 0 ||\n    end < 0 ||\n    // We saw a non-dot character immediately before the dot.\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly `..`.\n    (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n  ) {\n    return ''\n  }\n\n  return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n *   Path segments.\n * @returns {string}\n *   File path.\n */\nfunction join(...segments) {\n  let index = -1\n  /** @type {string | undefined} */\n  let joined\n\n  while (++index < segments.length) {\n    assertPath(segments[index])\n\n    if (segments[index]) {\n      joined =\n        joined === undefined ? segments[index] : joined + '/' + segments[index]\n    }\n  }\n\n  return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n *   File path.\n * @returns {string}\n *   File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n  assertPath(path)\n\n  const absolute = path.codePointAt(0) === 47 /* `/` */\n\n  // Normalize the path according to POSIX rules.\n  let value = normalizeString(path, !absolute)\n\n  if (value.length === 0 && !absolute) {\n    value = '.'\n  }\n\n  if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n    value += '/'\n  }\n\n  return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n *   File path.\n * @param {boolean} allowAboveRoot\n *   Whether `..` can move above root.\n * @returns {string}\n *   File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n  let result = ''\n  let lastSegmentLength = 0\n  let lastSlash = -1\n  let dots = 0\n  let index = -1\n  /** @type {number | undefined} */\n  let code\n  /** @type {number} */\n  let lastSlashIndex\n\n  while (++index <= path.length) {\n    if (index < path.length) {\n      code = path.codePointAt(index)\n    } else if (code === 47 /* `/` */) {\n      break\n    } else {\n      code = 47 /* `/` */\n    }\n\n    if (code === 47 /* `/` */) {\n      if (lastSlash === index - 1 || dots === 1) {\n        // Empty.\n      } else if (lastSlash !== index - 1 && dots === 2) {\n        if (\n          result.length < 2 ||\n          lastSegmentLength !== 2 ||\n          result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n          result.codePointAt(result.length - 2) !== 46 /* `.` */\n        ) {\n          if (result.length > 2) {\n            lastSlashIndex = result.lastIndexOf('/')\n\n            if (lastSlashIndex !== result.length - 1) {\n              if (lastSlashIndex < 0) {\n                result = ''\n                lastSegmentLength = 0\n              } else {\n                result = result.slice(0, lastSlashIndex)\n                lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n              }\n\n              lastSlash = index\n              dots = 0\n              continue\n            }\n          } else if (result.length > 0) {\n            result = ''\n            lastSegmentLength = 0\n            lastSlash = index\n            dots = 0\n            continue\n          }\n        }\n\n        if (allowAboveRoot) {\n          result = result.length > 0 ? result + '/..' : '..'\n          lastSegmentLength = 2\n        }\n      } else {\n        if (result.length > 0) {\n          result += '/' + path.slice(lastSlash + 1, index)\n        } else {\n          result = path.slice(lastSlash + 1, index)\n        }\n\n        lastSegmentLength = index - lastSlash - 1\n      }\n\n      lastSlash = index\n      dots = 0\n    } else if (code === 46 /* `.` */ && dots > -1) {\n      dots++\n    } else {\n      dots = -1\n    }\n  }\n\n  return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n *   File path.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError(\n      'Path must be a string. Received ' + JSON.stringify(path)\n    )\n  }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n  return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n *   File path or URL.\n * @returns {fileUrlOrPath is URL}\n *   Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n  return Boolean(\n    fileUrlOrPath !== null &&\n      typeof fileUrlOrPath === 'object' &&\n      'href' in fileUrlOrPath &&\n      fileUrlOrPath.href &&\n      'protocol' in fileUrlOrPath &&\n      fileUrlOrPath.protocol &&\n      // @ts-expect-error: indexing is fine.\n      fileUrlOrPath.auth === undefined\n  )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n *   File URL.\n * @returns {string}\n *   File URL.\n */\nexport function urlToPath(path) {\n  if (typeof path === 'string') {\n    path = new URL(path)\n  } else if (!isUrl(path)) {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'The \"path\" argument must be of type string or an instance of URL. Received `' +\n        path +\n        '`'\n    )\n    error.code = 'ERR_INVALID_ARG_TYPE'\n    throw error\n  }\n\n  if (path.protocol !== 'file:') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError('The URL must be of scheme file')\n    error.code = 'ERR_INVALID_URL_SCHEME'\n    throw error\n  }\n\n  return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n *   URL.\n * @returns {string}\n *   File path.\n */\nfunction getPathFromURLPosix(url) {\n  if (url.hostname !== '') {\n    /** @type {NodeJS.ErrnoException} */\n    const error = new TypeError(\n      'File URL host must be \"localhost\" or empty on darwin'\n    )\n    error.code = 'ERR_INVALID_FILE_URL_HOST'\n    throw error\n  }\n\n  const pathname = url.pathname\n  let index = -1\n\n  while (++index < pathname.length) {\n    if (\n      pathname.codePointAt(index) === 37 /* `%` */ &&\n      pathname.codePointAt(index + 1) === 50 /* `2` */\n    ) {\n      const third = pathname.codePointAt(index + 2)\n      if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n        /** @type {NodeJS.ErrnoException} */\n        const error = new TypeError(\n          'File URL path must not include encoded / characters'\n        )\n        error.code = 'ERR_INVALID_FILE_URL_PATH'\n        throw error\n      }\n    }\n  }\n\n  return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n  'history',\n  'path',\n  'basename',\n  'stem',\n  'extname',\n  'dirname'\n])\n\nexport class VFile {\n  /**\n   * Create a new virtual file.\n   *\n   * `options` is treated as:\n   *\n   * *   `string` or `Uint8Array` — `{value: options}`\n   * *   `URL` — `{path: options}`\n   * *   `VFile` — shallow copies its data over to the new file\n   * *   `object` — all fields are shallow copied over to the new file\n   *\n   * Path related fields are set in the following order (least specific to\n   * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n   * `dirname`.\n   *\n   * You cannot set `dirname` or `extname` without setting either `history`,\n   * `path`, `basename`, or `stem` too.\n   *\n   * @param {Compatible | null | undefined} [value]\n   *   File value.\n   * @returns\n   *   New instance.\n   */\n  constructor(value) {\n    /** @type {Options | VFile} */\n    let options\n\n    if (!value) {\n      options = {}\n    } else if (isUrl(value)) {\n      options = {path: value}\n    } else if (typeof value === 'string' || isUint8Array(value)) {\n      options = {value}\n    } else {\n      options = value\n    }\n\n    /* eslint-disable no-unused-expressions */\n\n    /**\n     * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n     *\n     * @type {string}\n     */\n    // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n    // the empty string will be overridden in the next block.\n    this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n    /**\n     * Place to store custom info (default: `{}`).\n     *\n     * It’s OK to store custom data directly on the file but moving it to\n     * `data` is recommended.\n     *\n     * @type {Data}\n     */\n    this.data = {}\n\n    /**\n     * List of file paths the file moved between.\n     *\n     * The first is the original path and the last is the current path.\n     *\n     * @type {Array<string>}\n     */\n    this.history = []\n\n    /**\n     * List of messages associated with the file.\n     *\n     * @type {Array<VFileMessage>}\n     */\n    this.messages = []\n\n    /**\n     * Raw value.\n     *\n     * @type {Value}\n     */\n    this.value\n\n    // The below are non-standard, they are “well-known”.\n    // As in, used in several tools.\n    /**\n     * Source map.\n     *\n     * This type is equivalent to the `RawSourceMap` type from the `source-map`\n     * module.\n     *\n     * @type {Map | null | undefined}\n     */\n    this.map\n\n    /**\n     * Custom, non-string, compiled, representation.\n     *\n     * This is used by unified to store non-string results.\n     * One example is when turning markdown into React nodes.\n     *\n     * @type {unknown}\n     */\n    this.result\n\n    /**\n     * Whether a file was saved to disk.\n     *\n     * This is used by vfile reporters.\n     *\n     * @type {boolean}\n     */\n    this.stored\n    /* eslint-enable no-unused-expressions */\n\n    // Set path related properties in the correct order.\n    let index = -1\n\n    while (++index < order.length) {\n      const field = order[index]\n\n      // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n      // `vfile`s too.\n      if (\n        field in options &&\n        options[field] !== undefined &&\n        options[field] !== null\n      ) {\n        // @ts-expect-error: TS doesn’t understand basic reality.\n        this[field] = field === 'history' ? [...options[field]] : options[field]\n      }\n    }\n\n    /** @type {string} */\n    let field\n\n    // Set non-path related properties.\n    for (field in options) {\n      // @ts-expect-error: fine to set other things.\n      if (!order.includes(field)) {\n        // @ts-expect-error: fine to set other things.\n        this[field] = options[field]\n      }\n    }\n  }\n\n  /**\n   * Get the basename (including extname) (example: `'index.min.js'`).\n   *\n   * @returns {string | undefined}\n   *   Basename.\n   */\n  get basename() {\n    return typeof this.path === 'string'\n      ? minpath.basename(this.path)\n      : undefined\n  }\n\n  /**\n   * Set basename (including extname) (`'index.min.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   *\n   * @param {string} basename\n   *   Basename.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set basename(basename) {\n    assertNonEmpty(basename, 'basename')\n    assertPart(basename, 'basename')\n    this.path = minpath.join(this.dirname || '', basename)\n  }\n\n  /**\n   * Get the parent path (example: `'~'`).\n   *\n   * @returns {string | undefined}\n   *   Dirname.\n   */\n  get dirname() {\n    return typeof this.path === 'string'\n      ? minpath.dirname(this.path)\n      : undefined\n  }\n\n  /**\n   * Set the parent path (example: `'~'`).\n   *\n   * Cannot be set if there’s no `path` yet.\n   *\n   * @param {string | undefined} dirname\n   *   Dirname.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set dirname(dirname) {\n    assertPath(this.basename, 'dirname')\n    this.path = minpath.join(dirname || '', this.basename)\n  }\n\n  /**\n   * Get the extname (including dot) (example: `'.js'`).\n   *\n   * @returns {string | undefined}\n   *   Extname.\n   */\n  get extname() {\n    return typeof this.path === 'string'\n      ? minpath.extname(this.path)\n      : undefined\n  }\n\n  /**\n   * Set the extname (including dot) (example: `'.js'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be set if there’s no `path` yet.\n   *\n   * @param {string | undefined} extname\n   *   Extname.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set extname(extname) {\n    assertPart(extname, 'extname')\n    assertPath(this.dirname, 'extname')\n\n    if (extname) {\n      if (extname.codePointAt(0) !== 46 /* `.` */) {\n        throw new Error('`extname` must start with `.`')\n      }\n\n      if (extname.includes('.', 1)) {\n        throw new Error('`extname` cannot contain multiple dots')\n      }\n    }\n\n    this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n  }\n\n  /**\n   * Get the full path (example: `'~/index.min.js'`).\n   *\n   * @returns {string}\n   *   Path.\n   */\n  get path() {\n    return this.history[this.history.length - 1]\n  }\n\n  /**\n   * Set the full path (example: `'~/index.min.js'`).\n   *\n   * Cannot be nullified.\n   * You can set a file URL (a `URL` object with a `file:` protocol) which will\n   * be turned into a path with `url.fileURLToPath`.\n   *\n   * @param {URL | string} path\n   *   Path.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set path(path) {\n    if (isUrl(path)) {\n      path = urlToPath(path)\n    }\n\n    assertNonEmpty(path, 'path')\n\n    if (this.path !== path) {\n      this.history.push(path)\n    }\n  }\n\n  /**\n   * Get the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * @returns {string | undefined}\n   *   Stem.\n   */\n  get stem() {\n    return typeof this.path === 'string'\n      ? minpath.basename(this.path, this.extname)\n      : undefined\n  }\n\n  /**\n   * Set the stem (basename w/o extname) (example: `'index.min'`).\n   *\n   * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n   * on windows).\n   * Cannot be nullified (use `file.path = file.dirname` instead).\n   *\n   * @param {string} stem\n   *   Stem.\n   * @returns {undefined}\n   *   Nothing.\n   */\n  set stem(stem) {\n    assertNonEmpty(stem, 'stem')\n    assertPart(stem, 'stem')\n    this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n  }\n\n  // Normal prototypal methods.\n  /**\n   * Create a fatal message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `true` (error; file not usable)\n   * and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {never}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {never}\n   *   Never.\n   * @throws {VFileMessage}\n   *   Message.\n   */\n  fail(causeOrReason, optionsOrParentOrPlace, origin) {\n    // @ts-expect-error: the overloads are fine.\n    const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n    message.fatal = true\n\n    throw message\n  }\n\n  /**\n   * Create an info message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `undefined` (info; change\n   * likely not needed) and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  info(causeOrReason, optionsOrParentOrPlace, origin) {\n    // @ts-expect-error: the overloads are fine.\n    const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n    message.fatal = undefined\n\n    return message\n  }\n\n  /**\n   * Create a message for `reason` associated with the file.\n   *\n   * The `fatal` field of the message is set to `false` (warning; change may be\n   * needed) and the `file` field is set to the current file path.\n   * The message is added to the `messages` field on `file`.\n   *\n   * > 🪦 **Note**: also has obsolete signatures.\n   *\n   * @overload\n   * @param {string} reason\n   * @param {MessageOptions | null | undefined} [options]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {string} reason\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Node | NodeLike | null | undefined} parent\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {Point | Position | null | undefined} place\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @overload\n   * @param {Error | VFileMessage} cause\n   * @param {string | null | undefined} [origin]\n   * @returns {VFileMessage}\n   *\n   * @param {Error | VFileMessage | string} causeOrReason\n   *   Reason for message, should use markdown.\n   * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n   *   Configuration (optional).\n   * @param {string | null | undefined} [origin]\n   *   Place in code where the message originates (example:\n   *   `'my-package:my-rule'` or `'my-rule'`).\n   * @returns {VFileMessage}\n   *   Message.\n   */\n  message(causeOrReason, optionsOrParentOrPlace, origin) {\n    const message = new VFileMessage(\n      // @ts-expect-error: the overloads are fine.\n      causeOrReason,\n      optionsOrParentOrPlace,\n      origin\n    )\n\n    if (this.path) {\n      message.name = this.path + ':' + message.name\n      message.file = this.path\n    }\n\n    message.fatal = false\n\n    this.messages.push(message)\n\n    return message\n  }\n\n  /**\n   * Serialize the file.\n   *\n   * > **Note**: which encodings are supported depends on the engine.\n   * > For info on Node.js, see:\n   * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n   *\n   * @param {string | null | undefined} [encoding='utf8']\n   *   Character encoding to understand `value` as when it’s a `Uint8Array`\n   *   (default: `'utf-8'`).\n   * @returns {string}\n   *   Serialized file.\n   */\n  toString(encoding) {\n    if (this.value === undefined) {\n      return ''\n    }\n\n    if (typeof this.value === 'string') {\n      return this.value\n    }\n\n    const decoder = new TextDecoder(encoding || undefined)\n    return decoder.decode(this.value)\n  }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n *   File path part.\n * @param {string} name\n *   Part name.\n * @returns {undefined}\n *   Nothing.\n */\nfunction assertPart(part, name) {\n  if (part && part.includes(minpath.sep)) {\n    throw new Error(\n      '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n    )\n  }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n *   Thing.\n * @param {string} name\n *   Part name.\n * @returns {asserts part is string}\n *   Nothing.\n */\nfunction assertNonEmpty(part, name) {\n  if (!part) {\n    throw new Error('`' + name + '` cannot be empty')\n  }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n *   Path.\n * @param {string} name\n *   Dependency name.\n * @returns {asserts path is string}\n *   Nothing.\n */\nfunction assertPath(path, name) {\n  if (!path) {\n    throw new Error('Setting `' + name + '` requires `path` to be set too')\n  }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n *   thing.\n * @returns {value is Uint8Array}\n *   Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n  return Boolean(\n    value &&\n      typeof value === 'object' &&\n      'byteLength' in value &&\n      'byteOffset' in value\n  )\n}\n","export const CallableInstance =\n  /**\n   * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n   */\n  (\n    /** @type {unknown} */\n    (\n      /**\n       * @this {Function}\n       * @param {string | symbol} property\n       * @returns {(...parameters: Array<unknown>) => unknown}\n       */\n      function (property) {\n        const self = this\n        const constr = self.constructor\n        const proto = /** @type {Record<string | symbol, Function>} */ (\n          // Prototypes do exist.\n          // type-coverage:ignore-next-line\n          constr.prototype\n        )\n        const value = proto[property]\n        /** @type {(...parameters: Array<unknown>) => unknown} */\n        const apply = function () {\n          return value.apply(apply, arguments)\n        }\n\n        Object.setPrototypeOf(apply, proto)\n\n        // Not needed for us in `unified`: we only call this on the `copy`\n        // function,\n        // and we don't need to add its fields (`length`, `name`)\n        // over.\n        // See also: GH-246.\n        // const names = Object.getOwnPropertyNames(value)\n        //\n        // for (const p of names) {\n        //   const descriptor = Object.getOwnPropertyDescriptor(value, p)\n        //   if (descriptor) Object.defineProperty(apply, p, descriptor)\n        // }\n\n        return apply\n      }\n    )\n  )\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @import {Element, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentType, JSX, ReactElement, ReactNode} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n *   Filter elements.\n * @param {Readonly<Element>} element\n *   Element to check.\n * @param {number} index\n *   Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n *   Parent of `element`.\n * @returns {boolean | null | undefined}\n *   Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n *   Extra fields we pass.\n * @property {Element | undefined} [node]\n *   passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n *   [Key in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[Key] & ExtraProps> | keyof JSX.IntrinsicElements\n * }} Components\n *   Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n *   Deprecation.\n * @property {string} from\n *   Old field.\n * @property {string} id\n *   ID in readme.\n * @property {keyof Options} [to]\n *   New field.\n */\n\n/**\n * @typedef Options\n *   Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n *   Filter elements (optional);\n *   `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n *   Tag names to allow (default: all tag names);\n *   cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n *   Markdown.\n * @property {Components | null | undefined} [components]\n *   Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n *   Tag names to disallow (default: `[]`);\n *   cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n *   List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n *   List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n *   Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n *   Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n *   Extract (unwrap) what’s in disallowed elements (default: `false`);\n *   normally when say `strong` is not allowed, it and it’s children are dropped,\n *   with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n *   Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @typedef HooksOptionsOnly\n *   Configuration specifically for {@linkcode MarkdownHooks}.\n * @property {ReactNode | null | undefined} [fallback]\n *   Content to render while the processor processing the markdown (optional).\n */\n\n/**\n * @typedef {Options & HooksOptionsOnly} HooksOptions\n *   Configuration for {@linkcode MarkdownHooks};\n *   extends the regular {@linkcode Options} with a `fallback` prop.\n */\n\n/**\n * @callback UrlTransform\n *   Transform all URLs.\n * @param {string} url\n *   URL.\n * @param {string} key\n *   Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n *   Node.\n * @returns {string | null | undefined}\n *   Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n  'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n  {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n  {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n  {\n    from: 'allowNode',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'allowElement'\n  },\n  {\n    from: 'allowedTypes',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'allowedElements'\n  },\n  {from: 'className', id: 'remove-classname'},\n  {\n    from: 'disallowedTypes',\n    id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n    to: 'disallowedElements'\n  },\n  {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n  {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n  {\n    from: 'includeNodeIndex',\n    id: 'change-includenodeindex-to-includeelementindex'\n  },\n  {from: 'linkTarget', id: 'remove-linktarget'},\n  {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n  {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n  {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n  {from: 'source', id: 'change-source-to-children', to: 'children'},\n  {from: 'sourcePos', id: '#remove-sourcepos'},\n  {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n  {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {ReactElement}\n *   React element.\n */\nexport function Markdown(options) {\n  const processor = createProcessor(options)\n  const file = createFile(options)\n  return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {Promise<ReactElement>}\n *   Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n  const processor = createProcessor(options)\n  const file = createFile(options)\n  const tree = await processor.run(processor.parse(file), file)\n  return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly<HooksOptions>} options\n *   Props.\n * @returns {ReactNode}\n *   React node.\n */\nexport function MarkdownHooks(options) {\n  const processor = createProcessor(options)\n  const [error, setError] = useState(\n    /** @type {Error | undefined} */ (undefined)\n  )\n  const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n  useEffect(\n    function () {\n      let cancelled = false\n      const file = createFile(options)\n\n      processor.run(processor.parse(file), file, function (error, tree) {\n        if (!cancelled) {\n          setError(error)\n          setTree(tree)\n        }\n      })\n\n      /**\n       * @returns {undefined}\n       *   Nothing.\n       */\n      return function () {\n        cancelled = true\n      }\n    },\n    [\n      options.children,\n      options.rehypePlugins,\n      options.remarkPlugins,\n      options.remarkRehypeOptions\n    ]\n  )\n\n  if (error) throw error\n\n  return tree ? post(tree, options) : options.fallback\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {Processor<MdastRoot, MdastRoot, Root, undefined, undefined>}\n *   Result.\n */\nfunction createProcessor(options) {\n  const rehypePlugins = options.rehypePlugins || emptyPlugins\n  const remarkPlugins = options.remarkPlugins || emptyPlugins\n  const remarkRehypeOptions = options.remarkRehypeOptions\n    ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n    : emptyRemarkRehypeOptions\n\n  const processor = unified()\n    .use(remarkParse)\n    .use(remarkPlugins)\n    .use(remarkRehype, remarkRehypeOptions)\n    .use(rehypePlugins)\n\n  return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {VFile}\n *   Result.\n */\nfunction createFile(options) {\n  const children = options.children || ''\n  const file = new VFile()\n\n  if (typeof children === 'string') {\n    file.value = children\n  } else {\n    unreachable(\n      'Unexpected value `' +\n        children +\n        '` for `children` prop, expected `string`'\n    )\n  }\n\n  return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n *   Tree.\n * @param {Readonly<Options>} options\n *   Props.\n * @returns {ReactElement}\n *   React element.\n */\nfunction post(tree, options) {\n  const allowedElements = options.allowedElements\n  const allowElement = options.allowElement\n  const components = options.components\n  const disallowedElements = options.disallowedElements\n  const skipHtml = options.skipHtml\n  const unwrapDisallowed = options.unwrapDisallowed\n  const urlTransform = options.urlTransform || defaultUrlTransform\n\n  for (const deprecation of deprecations) {\n    if (Object.hasOwn(options, deprecation.from)) {\n      unreachable(\n        'Unexpected `' +\n          deprecation.from +\n          '` prop, ' +\n          (deprecation.to\n            ? 'use `' + deprecation.to + '` instead'\n            : 'remove it') +\n          ' (see <' +\n          changelog +\n          '#' +\n          deprecation.id +\n          '> for more info)'\n      )\n    }\n  }\n\n  if (allowedElements && disallowedElements) {\n    unreachable(\n      'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n    )\n  }\n\n  visit(tree, transform)\n\n  return toJsxRuntime(tree, {\n    Fragment,\n    components,\n    ignoreInvalidStyle: true,\n    jsx,\n    jsxs,\n    passKeys: true,\n    passNode: true\n  })\n\n  /** @type {BuildVisitor<Root>} */\n  function transform(node, index, parent) {\n    if (node.type === 'raw' && parent && typeof index === 'number') {\n      if (skipHtml) {\n        parent.children.splice(index, 1)\n      } else {\n        parent.children[index] = {type: 'text', value: node.value}\n      }\n\n      return index\n    }\n\n    if (node.type === 'element') {\n      /** @type {string} */\n      let key\n\n      for (key in urlAttributes) {\n        if (\n          Object.hasOwn(urlAttributes, key) &&\n          Object.hasOwn(node.properties, key)\n        ) {\n          const value = node.properties[key]\n          const test = urlAttributes[key]\n          if (test === null || test.includes(node.tagName)) {\n            node.properties[key] = urlTransform(String(value || ''), key, node)\n          }\n        }\n      }\n    }\n\n    if (node.type === 'element') {\n      let remove = allowedElements\n        ? !allowedElements.includes(node.tagName)\n        : disallowedElements\n          ? disallowedElements.includes(node.tagName)\n          : false\n\n      if (!remove && allowElement && typeof index === 'number') {\n        remove = !allowElement(node, index, parent)\n      }\n\n      if (remove && parent && typeof index === 'number') {\n        if (unwrapDisallowed && node.children) {\n          parent.children.splice(index, 1, ...node.children)\n        } else {\n          parent.children.splice(index, 1)\n        }\n\n        return index\n      }\n    }\n  }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n *   URL.\n * @returns {string}\n *   Safe URL.\n */\nexport function defaultUrlTransform(value) {\n  // Same as:\n  // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n  // But without the `encode` part.\n  const colon = value.indexOf(':')\n  const questionMark = value.indexOf('?')\n  const numberSign = value.indexOf('#')\n  const slash = value.indexOf('/')\n\n  if (\n    // If there is no protocol, it’s relative.\n    colon === -1 ||\n    // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n    (slash !== -1 && colon > slash) ||\n    (questionMark !== -1 && colon > questionMark) ||\n    (numberSign !== -1 && colon > numberSign) ||\n    // It is a protocol, it should be allowed.\n    safeProtocol.test(value.slice(0, colon))\n  ) {\n    return value\n  }\n\n  return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n *   Value to search in.\n * @param {string} character\n *   Character (or substring) to look for.\n * @return {number}\n *   Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n  const source = String(value)\n\n  if (typeof character !== 'string') {\n    throw new TypeError('Expected character')\n  }\n\n  let count = 0\n  let index = source.indexOf(character)\n\n  while (index !== -1) {\n    count++\n    index = source.indexOf(character, index + character.length)\n  }\n\n  return count\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n *   Info on the match.\n * @property {number} index\n *   The index of the search at which the result was found.\n * @property {string} input\n *   A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n *   All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n *   Pattern to find.\n *\n *   Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *   Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n *   Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n *   Thing to replace with.\n *\n * @callback ReplaceFunction\n *   Callback called when a search matches.\n * @param {...any} parameters\n *   The parameters are the result of corresponding search expression:\n *\n *   * `value` (`string`) — whole match\n *   * `...capture` (`Array<string>`) — matches from regex capture groups\n *   * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n *   Thing to replace with.\n *\n *   * when `null`, `undefined`, `''`, remove the match\n *   * …or when `false`, do not replace at all\n *   * …or when `string`, replace with a text node of that value\n *   * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n *   Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n *   All find and replaced.\n *\n * @typedef Options\n *   Configuration.\n * @property {Test | null | undefined} [ignore]\n *   Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n *   Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n *   Patterns to find.\n * @param {Options | null | undefined} [options]\n *   Configuration (when `find` is not `Find`).\n * @returns {undefined}\n *   Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n  const settings = options || {}\n  const ignored = convert(settings.ignore || [])\n  const pairs = toPairs(list)\n  let pairIndex = -1\n\n  while (++pairIndex < pairs.length) {\n    visitParents(tree, 'text', visitor)\n  }\n\n  /** @type {BuildVisitor<Root, 'text'>} */\n  function visitor(node, parents) {\n    let index = -1\n    /** @type {Parents | undefined} */\n    let grandparent\n\n    while (++index < parents.length) {\n      const parent = parents[index]\n      /** @type {Array<Nodes> | undefined} */\n      const siblings = grandparent ? grandparent.children : undefined\n\n      if (\n        ignored(\n          parent,\n          siblings ? siblings.indexOf(parent) : undefined,\n          grandparent\n        )\n      ) {\n        return\n      }\n\n      grandparent = parent\n    }\n\n    if (grandparent) {\n      return handler(node, parents)\n    }\n  }\n\n  /**\n   * Handle a text node which is not in an ignored parent.\n   *\n   * @param {Text} node\n   *   Text node.\n   * @param {Array<Parents>} parents\n   *   Parents.\n   * @returns {VisitorResult}\n   *   Result.\n   */\n  function handler(node, parents) {\n    const parent = parents[parents.length - 1]\n    const find = pairs[pairIndex][0]\n    const replace = pairs[pairIndex][1]\n    let start = 0\n    /** @type {Array<Nodes>} */\n    const siblings = parent.children\n    const index = siblings.indexOf(node)\n    let change = false\n    /** @type {Array<PhrasingContent>} */\n    let nodes = []\n\n    find.lastIndex = 0\n\n    let match = find.exec(node.value)\n\n    while (match) {\n      const position = match.index\n      /** @type {RegExpMatchObject} */\n      const matchObject = {\n        index: match.index,\n        input: match.input,\n        stack: [...parents, node]\n      }\n      let value = replace(...match, matchObject)\n\n      if (typeof value === 'string') {\n        value = value.length > 0 ? {type: 'text', value} : undefined\n      }\n\n      // It wasn’t a match after all.\n      if (value === false) {\n        // False acts as if there was no match.\n        // So we need to reset `lastIndex`, which currently being at the end of\n        // the current match, to the beginning.\n        find.lastIndex = position + 1\n      } else {\n        if (start !== position) {\n          nodes.push({\n            type: 'text',\n            value: node.value.slice(start, position)\n          })\n        }\n\n        if (Array.isArray(value)) {\n          nodes.push(...value)\n        } else if (value) {\n          nodes.push(value)\n        }\n\n        start = position + match[0].length\n        change = true\n      }\n\n      if (!find.global) {\n        break\n      }\n\n      match = find.exec(node.value)\n    }\n\n    if (change) {\n      if (start < node.value.length) {\n        nodes.push({type: 'text', value: node.value.slice(start)})\n      }\n\n      parent.children.splice(index, 1, ...nodes)\n    } else {\n      nodes = [node]\n    }\n\n    return index + nodes.length\n  }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n *   Schema.\n * @returns {Pairs}\n *   Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n  /** @type {Pairs} */\n  const result = []\n\n  if (!Array.isArray(tupleOrList)) {\n    throw new TypeError('Expected find and replace tuple or list of tuples')\n  }\n\n  /** @type {FindAndReplaceList} */\n  // @ts-expect-error: correct.\n  const list =\n    !tupleOrList[0] || Array.isArray(tupleOrList[0])\n      ? tupleOrList\n      : [tupleOrList]\n\n  let index = -1\n\n  while (++index < list.length) {\n    const tuple = list[index]\n    result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n  }\n\n  return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n *   Find.\n * @returns {RegExp}\n *   Expression.\n */\nfunction toExpression(find) {\n  return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n *   Replace.\n * @returns {ReplaceFunction}\n *   Function.\n */\nfunction toFunction(replace) {\n  return typeof replace === 'function'\n    ? replace\n    : function () {\n        return replace\n      }\n}\n","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array<ConstructName>} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n  return {\n    transforms: [transformGfmAutolinkLiterals],\n    enter: {\n      literalAutolink: enterLiteralAutolink,\n      literalAutolinkEmail: enterLiteralAutolinkValue,\n      literalAutolinkHttp: enterLiteralAutolinkValue,\n      literalAutolinkWww: enterLiteralAutolinkValue\n    },\n    exit: {\n      literalAutolink: exitLiteralAutolink,\n      literalAutolinkEmail: exitLiteralAutolinkEmail,\n      literalAutolinkHttp: exitLiteralAutolinkHttp,\n      literalAutolinkWww: exitLiteralAutolinkWww\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n  return {\n    unsafe: [\n      {\n        character: '@',\n        before: '[+\\\\-.\\\\w]',\n        after: '[\\\\-.\\\\w]',\n        inConstruct,\n        notInConstruct\n      },\n      {\n        character: '.',\n        before: '[Ww]',\n        after: '[\\\\-.\\\\w]',\n        inConstruct,\n        notInConstruct\n      },\n      {\n        character: ':',\n        before: '[ps]',\n        after: '\\\\/',\n        inConstruct,\n        notInConstruct\n      }\n    ]\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n  this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n  this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n  this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n  this.config.exit.data.call(this, token)\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'link')\n  node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n  this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n  this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n  findAndReplace(\n    tree,\n    [\n      [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n      [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n    ],\n    {ignore: ['link', 'linkReference']}\n  )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array<PhrasingContent> | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n  let prefix = ''\n\n  // Not an expected previous character.\n  if (!previous(match)) {\n    return false\n  }\n\n  // Treat `www` as part of the domain.\n  if (/^w/i.test(protocol)) {\n    domain = protocol + domain\n    protocol = ''\n    prefix = 'http://'\n  }\n\n  if (!isCorrectDomain(domain)) {\n    return false\n  }\n\n  const parts = splitUrl(domain + path)\n\n  if (!parts[0]) return false\n\n  /** @type {Link} */\n  const result = {\n    type: 'link',\n    title: null,\n    url: prefix + protocol + parts[0],\n    children: [{type: 'text', value: protocol + parts[0]}]\n  }\n\n  if (parts[1]) {\n    return [result, {type: 'text', value: parts[1]}]\n  }\n\n  return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n  if (\n    // Not an expected previous character.\n    !previous(match, true) ||\n    // Label ends in not allowed character.\n    /[-\\d_]$/.test(label)\n  ) {\n    return false\n  }\n\n  return {\n    type: 'link',\n    title: null,\n    url: 'mailto:' + atext + '@' + label,\n    children: [{type: 'text', value: atext + '@' + label}]\n  }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n  const parts = domain.split('.')\n\n  if (\n    parts.length < 2 ||\n    (parts[parts.length - 1] &&\n      (/_/.test(parts[parts.length - 1]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n    (parts[parts.length - 2] &&\n      (/_/.test(parts[parts.length - 2]) ||\n        !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n  ) {\n    return false\n  }\n\n  return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n  const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n  if (!trailExec) {\n    return [url, undefined]\n  }\n\n  url = url.slice(0, trailExec.index)\n\n  let trail = trailExec[0]\n  let closingParenIndex = trail.indexOf(')')\n  const openingParens = ccount(url, '(')\n  let closingParens = ccount(url, ')')\n\n  while (closingParenIndex !== -1 && openingParens > closingParens) {\n    url += trail.slice(0, closingParenIndex + 1)\n    trail = trail.slice(closingParenIndex + 1)\n    closingParenIndex = trail.indexOf(')')\n    closingParens++\n  }\n\n  return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n  const code = match.input.charCodeAt(match.index - 1)\n\n  return (\n    (match.index === 0 ||\n      unicodeWhitespace(code) ||\n      unicodePunctuation(code)) &&\n    // If it’s an email, the previous character should not be a slash.\n    (!email || code !== 47)\n  )\n}\n","/**\n * @import {\n *   CompileContext,\n *   Extension as FromMarkdownExtension,\n *   Handle as FromMarkdownHandle\n * } from 'mdast-util-from-markdown'\n * @import {ToMarkdownOptions} from 'mdast-util-gfm-footnote'\n * @import {\n *   Handle as ToMarkdownHandle,\n *   Map,\n *   Options as ToMarkdownExtension\n * } from 'mdast-util-to-markdown'\n * @import {FootnoteDefinition, FootnoteReference} from 'mdast'\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n  this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n  this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n  this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n  this.enter(\n    {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n    token\n  )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n  const label = this.resume()\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'footnoteReference')\n  node.identifier = normalizeIdentifier(\n    this.sliceSerialize(token)\n  ).toLowerCase()\n  node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n  this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n  const label = this.resume()\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'footnoteDefinition')\n  node.identifier = normalizeIdentifier(\n    this.sliceSerialize(token)\n  ).toLowerCase()\n  node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n  this.exit(token)\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n  return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[^')\n  const exit = state.enter('footnoteReference')\n  const subexit = state.enter('reference')\n  value += tracker.move(\n    state.safe(state.associationId(node), {after: ']', before: value})\n  )\n  subexit()\n  exit()\n  value += tracker.move(']')\n  return value\n}\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n  return {\n    enter: {\n      gfmFootnoteCallString: enterFootnoteCallString,\n      gfmFootnoteCall: enterFootnoteCall,\n      gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n      gfmFootnoteDefinition: enterFootnoteDefinition\n    },\n    exit: {\n      gfmFootnoteCallString: exitFootnoteCallString,\n      gfmFootnoteCall: exitFootnoteCall,\n      gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n      gfmFootnoteDefinition: exitFootnoteDefinition\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @param {ToMarkdownOptions | null | undefined} [options]\n *   Configuration (optional).\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown(options) {\n  // To do: next major: change default.\n  let firstLineBlank = false\n\n  if (options && options.firstLineBlank) {\n    firstLineBlank = true\n  }\n\n  return {\n    handlers: {footnoteDefinition, footnoteReference},\n    // This is on by default already.\n    unsafe: [{character: '[', inConstruct: ['label', 'phrasing', 'reference']}]\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {FootnoteDefinition} node\n   */\n  function footnoteDefinition(node, _, state, info) {\n    const tracker = state.createTracker(info)\n    let value = tracker.move('[^')\n    const exit = state.enter('footnoteDefinition')\n    const subexit = state.enter('label')\n    value += tracker.move(\n      state.safe(state.associationId(node), {before: value, after: ']'})\n    )\n    subexit()\n\n    value += tracker.move(']:')\n\n    if (node.children && node.children.length > 0) {\n      tracker.shift(4)\n\n      value += tracker.move(\n        (firstLineBlank ? '\\n' : ' ') +\n          state.indentLines(\n            state.containerFlow(node, tracker.current()),\n            firstLineBlank ? mapAll : mapExceptFirst\n          )\n      )\n    }\n\n    exit()\n\n    return value\n  }\n}\n\n/** @type {Map} */\nfunction mapExceptFirst(line, index, blank) {\n  return index === 0 ? line : mapAll(line, index, blank)\n}\n\n/** @type {Map} */\nfunction mapAll(line, index, blank) {\n  return (blank ? '' : '    ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: <https://github.com/syntax-tree/mdast-util-to-markdown/blob/8ce8dbf/lib/unsafe.js#L14>\n *\n * @type {Array<ConstructName>}\n */\nconst constructsWithoutStrikethrough = [\n  'autolink',\n  'destinationLiteral',\n  'destinationRaw',\n  'reference',\n  'titleQuote',\n  'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n  return {\n    canContainEols: ['delete'],\n    enter: {strikethrough: enterStrikethrough},\n    exit: {strikethrough: exitStrikethrough}\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n  return {\n    unsafe: [\n      {\n        character: '~',\n        inConstruct: 'phrasing',\n        notInConstruct: constructsWithoutStrikethrough\n      }\n    ],\n    handlers: {delete: handleDelete}\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n  this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n  const tracker = state.createTracker(info)\n  const exit = state.enter('strikethrough')\n  let value = tracker.move('~~')\n  value += state.containerPhrasing(node, {\n    ...tracker.current(),\n    before: value,\n    after: '~'\n  })\n  value += tracker.move('~~')\n  exit()\n  return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n  return '~'\n}\n","// To do: next major: remove.\n/**\n * @typedef {Options} MarkdownTableOptions\n *   Configuration.\n */\n\n/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [alignDelimiters=true]\n *   Whether to align the delimiters (default: `true`);\n *   they are aligned by default:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   Pass `false` to make them staggered:\n *\n *   ```markdown\n *   | Alpha | B |\n *   | - | - |\n *   | C | Delta |\n *   ```\n * @property {ReadonlyArray<string | null | undefined> | string | null | undefined} [align]\n *   How to align columns (default: `''`);\n *   one style for all columns or styles for their respective columns;\n *   each style is either `'l'` (left), `'r'` (right), or `'c'` (center);\n *   other values are treated as `''`, which doesn’t place the colon in the\n *   alignment row but does align left;\n *   *only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean | null | undefined} [delimiterEnd=true]\n *   Whether to end each row with the delimiter (default: `true`).\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no ending delimiters:\n *\n *   ```markdown\n *   | Alpha | B\n *   | ----- | -----\n *   | C     | Delta\n *   ```\n * @property {boolean | null | undefined} [delimiterStart=true]\n *   Whether to begin each row with the delimiter (default: `true`).\n *\n *   > 👉 **Note**: please don’t use this: it could create fragile structures\n *   > that aren’t understandable to some markdown parsers.\n *\n *   When `true`, there are starting delimiters:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there are no starting delimiters:\n *\n *   ```markdown\n *   Alpha | B     |\n *   ----- | ----- |\n *   C     | Delta |\n *   ```\n * @property {boolean | null | undefined} [padding=true]\n *   Whether to add a space of padding between delimiters and cells\n *   (default: `true`).\n *\n *   When `true`, there is padding:\n *\n *   ```markdown\n *   | Alpha | B     |\n *   | ----- | ----- |\n *   | C     | Delta |\n *   ```\n *\n *   When `false`, there is no padding:\n *\n *   ```markdown\n *   |Alpha|B    |\n *   |-----|-----|\n *   |C    |Delta|\n *   ```\n * @property {((value: string) => number) | null | undefined} [stringLength]\n *   Function to detect the length of table cell content (optional);\n *   this is used when aligning the delimiters (`|`) between table cells;\n *   full-width characters and emoji mess up delimiter alignment when viewing\n *   the markdown source;\n *   to fix this, you can pass this function,\n *   which receives the cell content and returns its “visible” size;\n *   note that what is and isn’t visible depends on where the text is displayed.\n *\n *   Without such a function, the following:\n *\n *   ```js\n *   markdownTable([\n *     ['Alpha', 'Bravo'],\n *     ['中文', 'Charlie'],\n *     ['👩‍❤️‍👩', 'Delta']\n *   ])\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo |\n *   | - | - |\n *   | 中文 | Charlie |\n *   | 👩‍❤️‍👩 | Delta |\n *   ```\n *\n *   With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n *   ```js\n *   import stringWidth from 'string-width'\n *\n *   markdownTable(\n *     [\n *       ['Alpha', 'Bravo'],\n *       ['中文', 'Charlie'],\n *       ['👩‍❤️‍👩', 'Delta']\n *     ],\n *     {stringLength: stringWidth}\n *   )\n *   ```\n *\n *   Yields:\n *\n *   ```markdown\n *   | Alpha | Bravo   |\n *   | ----- | ------- |\n *   | 中文  | Charlie |\n *   | 👩‍❤️‍👩    | Delta   |\n *   ```\n */\n\n/**\n * @param {string} value\n *   Cell value.\n * @returns {number}\n *   Cell size.\n */\nfunction defaultStringLength(value) {\n  return value.length\n}\n\n/**\n * Generate a markdown\n * ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables))\n * table.\n *\n * @param {ReadonlyArray<ReadonlyArray<string | null | undefined>>} table\n *   Table data (matrix of strings).\n * @param {Readonly<Options> | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Result.\n */\nexport function markdownTable(table, options) {\n  const settings = options || {}\n  // To do: next major: change to spread.\n  const align = (settings.align || []).concat()\n  const stringLength = settings.stringLength || defaultStringLength\n  /** @type {Array<number>} Character codes as symbols for alignment per column. */\n  const alignments = []\n  /** @type {Array<Array<string>>} Cells per row. */\n  const cellMatrix = []\n  /** @type {Array<Array<number>>} Sizes of each cell per row. */\n  const sizeMatrix = []\n  /** @type {Array<number>} */\n  const longestCellByColumn = []\n  let mostCellsPerRow = 0\n  let rowIndex = -1\n\n  // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n  // do superfluous work when aligning, so optimize for aligning.\n  while (++rowIndex < table.length) {\n    /** @type {Array<string>} */\n    const row = []\n    /** @type {Array<number>} */\n    const sizes = []\n    let columnIndex = -1\n\n    if (table[rowIndex].length > mostCellsPerRow) {\n      mostCellsPerRow = table[rowIndex].length\n    }\n\n    while (++columnIndex < table[rowIndex].length) {\n      const cell = serialize(table[rowIndex][columnIndex])\n\n      if (settings.alignDelimiters !== false) {\n        const size = stringLength(cell)\n        sizes[columnIndex] = size\n\n        if (\n          longestCellByColumn[columnIndex] === undefined ||\n          size > longestCellByColumn[columnIndex]\n        ) {\n          longestCellByColumn[columnIndex] = size\n        }\n      }\n\n      row.push(cell)\n    }\n\n    cellMatrix[rowIndex] = row\n    sizeMatrix[rowIndex] = sizes\n  }\n\n  // Figure out which alignments to use.\n  let columnIndex = -1\n\n  if (typeof align === 'object' && 'length' in align) {\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = toAlignment(align[columnIndex])\n    }\n  } else {\n    const code = toAlignment(align)\n\n    while (++columnIndex < mostCellsPerRow) {\n      alignments[columnIndex] = code\n    }\n  }\n\n  // Inject the alignment row.\n  columnIndex = -1\n  /** @type {Array<string>} */\n  const row = []\n  /** @type {Array<number>} */\n  const sizes = []\n\n  while (++columnIndex < mostCellsPerRow) {\n    const code = alignments[columnIndex]\n    let before = ''\n    let after = ''\n\n    if (code === 99 /* `c` */) {\n      before = ':'\n      after = ':'\n    } else if (code === 108 /* `l` */) {\n      before = ':'\n    } else if (code === 114 /* `r` */) {\n      after = ':'\n    }\n\n    // There *must* be at least one hyphen-minus in each alignment cell.\n    let size =\n      settings.alignDelimiters === false\n        ? 1\n        : Math.max(\n            1,\n            longestCellByColumn[columnIndex] - before.length - after.length\n          )\n\n    const cell = before + '-'.repeat(size) + after\n\n    if (settings.alignDelimiters !== false) {\n      size = before.length + size + after.length\n\n      if (size > longestCellByColumn[columnIndex]) {\n        longestCellByColumn[columnIndex] = size\n      }\n\n      sizes[columnIndex] = size\n    }\n\n    row[columnIndex] = cell\n  }\n\n  // Inject the alignment row.\n  cellMatrix.splice(1, 0, row)\n  sizeMatrix.splice(1, 0, sizes)\n\n  rowIndex = -1\n  /** @type {Array<string>} */\n  const lines = []\n\n  while (++rowIndex < cellMatrix.length) {\n    const row = cellMatrix[rowIndex]\n    const sizes = sizeMatrix[rowIndex]\n    columnIndex = -1\n    /** @type {Array<string>} */\n    const line = []\n\n    while (++columnIndex < mostCellsPerRow) {\n      const cell = row[columnIndex] || ''\n      let before = ''\n      let after = ''\n\n      if (settings.alignDelimiters !== false) {\n        const size =\n          longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n        const code = alignments[columnIndex]\n\n        if (code === 114 /* `r` */) {\n          before = ' '.repeat(size)\n        } else if (code === 99 /* `c` */) {\n          if (size % 2) {\n            before = ' '.repeat(size / 2 + 0.5)\n            after = ' '.repeat(size / 2 - 0.5)\n          } else {\n            before = ' '.repeat(size / 2)\n            after = before\n          }\n        } else {\n          after = ' '.repeat(size)\n        }\n      }\n\n      if (settings.delimiterStart !== false && !columnIndex) {\n        line.push('|')\n      }\n\n      if (\n        settings.padding !== false &&\n        // Don’t add the opening space if we’re not aligning and the cell is\n        // empty: there will be a closing space.\n        !(settings.alignDelimiters === false && cell === '') &&\n        (settings.delimiterStart !== false || columnIndex)\n      ) {\n        line.push(' ')\n      }\n\n      if (settings.alignDelimiters !== false) {\n        line.push(before)\n      }\n\n      line.push(cell)\n\n      if (settings.alignDelimiters !== false) {\n        line.push(after)\n      }\n\n      if (settings.padding !== false) {\n        line.push(' ')\n      }\n\n      if (\n        settings.delimiterEnd !== false ||\n        columnIndex !== mostCellsPerRow - 1\n      ) {\n        line.push('|')\n      }\n    }\n\n    lines.push(\n      settings.delimiterEnd === false\n        ? line.join('').replace(/ +$/, '')\n        : line.join('')\n    )\n  }\n\n  return lines.join('\\n')\n}\n\n/**\n * @param {string | null | undefined} [value]\n *   Value to serialize.\n * @returns {string}\n *   Result.\n */\nfunction serialize(value) {\n  return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string | null | undefined} value\n *   Value.\n * @returns {number}\n *   Alignment.\n */\nfunction toAlignment(value) {\n  const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n  return code === 67 /* `C` */ || code === 99 /* `c` */\n    ? 99 /* `c` */\n    : code === 76 /* `L` */ || code === 108 /* `l` */\n      ? 108 /* `l` */\n      : code === 82 /* `R` */ || code === 114 /* `r` */\n        ? 114 /* `r` */\n        : 0\n}\n","/**\n * @import {Blockquote, Parents} from 'mdast'\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n  const exit = state.enter('blockquote')\n  const tracker = state.createTracker(info)\n  tracker.move('> ')\n  tracker.shift(2)\n  const value = state.indentLines(\n    state.containerFlow(node, tracker.current()),\n    map\n  )\n  exit()\n  return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n  return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n  return (\n    listInScope(stack, pattern.inConstruct, true) &&\n    !listInScope(stack, pattern.notInConstruct, false)\n  )\n}\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n  if (typeof list === 'string') {\n    list = [list]\n  }\n\n  if (!list || list.length === 0) {\n    return none\n  }\n\n  let index = -1\n\n  while (++index < list.length) {\n    if (stack.includes(list[index])) {\n      return true\n    }\n  }\n\n  return false\n}\n","/**\n * @import {Break, Parents} from 'mdast'\n * @import {Info, State} from 'mdast-util-to-markdown'\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n  let index = -1\n\n  while (++index < state.unsafe.length) {\n    // If we can’t put eols in this construct (setext headings, tables), use a\n    // space instead.\n    if (\n      state.unsafe[index].character === '\\n' &&\n      patternInScope(state.stack, state.unsafe[index])\n    ) {\n      return /[ \\t]/.test(info.before) ? '' : ' '\n    }\n  }\n\n  return '\\\\\\n'\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n *   Content to search in.\n * @param {string} substring\n *   Substring to look for, typically one character.\n * @returns {number}\n *   Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n  const source = String(value)\n  let index = source.indexOf(substring)\n  let expected = index\n  let count = 0\n  let max = 0\n\n  if (typeof substring !== 'string') {\n    throw new TypeError('Expected substring')\n  }\n\n  while (index !== -1) {\n    if (index === expected) {\n      if (++count > max) {\n        max = count\n      }\n    } else {\n      count = 1\n    }\n\n    expected = index + substring.length\n    index = source.indexOf(substring, expected)\n  }\n\n  return max\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Code} from 'mdast'\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n  return Boolean(\n    state.options.fences === false &&\n      node.value &&\n      // If there’s no info…\n      !node.lang &&\n      // And there’s a non-whitespace character…\n      /[^ \\r\\n]/.test(node.value) &&\n      // And the value doesn’t start or end in a blank…\n      !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n  )\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */\nexport function checkFence(state) {\n  const marker = state.options.fence || '`'\n\n  if (marker !== '`' && marker !== '~') {\n    throw new Error(\n      'Cannot serialize code with `' +\n        marker +\n        '` for `options.fence`, expected `` ` `` or `~`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {Code, Parents} from 'mdast'\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n  const marker = checkFence(state)\n  const raw = node.value || ''\n  const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n  if (formatCodeAsIndented(node, state)) {\n    const exit = state.enter('codeIndented')\n    const value = state.indentLines(raw, map)\n    exit()\n    return value\n  }\n\n  const tracker = state.createTracker(info)\n  const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n  const exit = state.enter('codeFenced')\n  let value = tracker.move(sequence)\n\n  if (node.lang) {\n    const subexit = state.enter(`codeFencedLang${suffix}`)\n    value += tracker.move(\n      state.safe(node.lang, {\n        before: value,\n        after: ' ',\n        encode: ['`'],\n        ...tracker.current()\n      })\n    )\n    subexit()\n  }\n\n  if (node.lang && node.meta) {\n    const subexit = state.enter(`codeFencedMeta${suffix}`)\n    value += tracker.move(' ')\n    value += tracker.move(\n      state.safe(node.meta, {\n        before: value,\n        after: '\\n',\n        encode: ['`'],\n        ...tracker.current()\n      })\n    )\n    subexit()\n  }\n\n  value += tracker.move('\\n')\n\n  if (raw) {\n    value += tracker.move(raw + '\\n')\n  }\n\n  value += tracker.move(sequence)\n  exit()\n  return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n  return (blank ? '' : '    ') + line\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */\nexport function checkQuote(state) {\n  const marker = state.options.quote || '\"'\n\n  if (marker !== '\"' && marker !== \"'\") {\n    throw new Error(\n      'Cannot serialize title with `' +\n        marker +\n        '` for `options.quote`, expected `\"`, or `\\'`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Definition, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const exit = state.enter('definition')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[')\n  value += tracker.move(\n    state.safe(state.associationId(node), {\n      before: value,\n      after: ']',\n      ...tracker.current()\n    })\n  )\n  value += tracker.move(']: ')\n\n  subexit()\n\n  if (\n    // If there’s no url, or…\n    !node.url ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : '\\n',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  exit()\n\n  return value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */\nexport function checkEmphasis(state) {\n  const marker = state.options.emphasis || '*'\n\n  if (marker !== '*' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize emphasis with `' +\n        marker +\n        '` for `options.emphasis`, expected `*`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * Encode a code point as a character reference.\n *\n * @param {number} code\n *   Code point to encode.\n * @returns {string}\n *   Encoded character reference.\n */\nexport function encodeCharacterReference(code) {\n  return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n","/**\n * @import {EncodeSides} from '../types.js'\n */\n\nimport {classifyCharacter} from 'micromark-util-classify-character'\n\n/**\n * Check whether to encode (as a character reference) the characters\n * surrounding an attention run.\n *\n * Which characters are around an attention run influence whether it works or\n * not.\n *\n * See <https://github.com/orgs/syntax-tree/discussions/60> for more info.\n * See this markdown in a particular renderer to see what works:\n *\n * ```markdown\n * |                         | A (letter inside) | B (punctuation inside) | C (whitespace inside) | D (nothing inside) |\n * | ----------------------- | ----------------- | ---------------------- | --------------------- | ------------------ |\n * | 1 (letter outside)      | x*y*z             | x*.*z                  | x* *z                 | x**z               |\n * | 2 (punctuation outside) | .*y*.             | .*.*.                  | .* *.                 | .**.               |\n * | 3 (whitespace outside)  | x *y* z           | x *.* z                | x * * z               | x ** z             |\n * | 4 (nothing outside)     | *x*               | *.*                    | * *                   | **                 |\n * ```\n *\n * @param {number} outside\n *   Code point on the outer side of the run.\n * @param {number} inside\n *   Code point on the inner side of the run.\n * @param {'*' | '_'} marker\n *   Marker of the run.\n *   Underscores are handled more strictly (they form less often) than\n *   asterisks.\n * @returns {EncodeSides}\n *   Whether to encode characters.\n */\n// Important: punctuation must never be encoded.\n// Punctuation is solely used by markdown constructs.\n// And by encoding itself.\n// Encoding them will break constructs or double encode things.\nexport function encodeInfo(outside, inside, marker) {\n  const outsideKind = classifyCharacter(outside)\n  const insideKind = classifyCharacter(inside)\n\n  // Letter outside:\n  if (outsideKind === undefined) {\n    return insideKind === undefined\n      ? // Letter inside:\n        // we have to encode *both* letters for `_` as it is looser.\n        // it already forms for `*` (and GFMs `~`).\n        marker === '_'\n        ? {inside: true, outside: true}\n        : {inside: false, outside: false}\n      : insideKind === 1\n        ? // Whitespace inside: encode both (letter, whitespace).\n          {inside: true, outside: true}\n        : // Punctuation inside: encode outer (letter)\n          {inside: false, outside: true}\n  }\n\n  // Whitespace outside:\n  if (outsideKind === 1) {\n    return insideKind === undefined\n      ? // Letter inside: already forms.\n        {inside: false, outside: false}\n      : insideKind === 1\n        ? // Whitespace inside: encode both (whitespace).\n          {inside: true, outside: true}\n        : // Punctuation inside: already forms.\n          {inside: false, outside: false}\n  }\n\n  // Punctuation outside:\n  return insideKind === undefined\n    ? // Letter inside: already forms.\n      {inside: false, outside: false}\n    : insideKind === 1\n      ? // Whitespace inside: encode inner (whitespace).\n        {inside: true, outside: false}\n      : // Punctuation inside: already forms.\n        {inside: false, outside: false}\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Emphasis, Parents} from 'mdast'\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nemphasis.peek = emphasisPeek\n\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n  const marker = checkEmphasis(state)\n  const exit = state.enter('emphasis')\n  const tracker = state.createTracker(info)\n  const before = tracker.move(marker)\n\n  let between = tracker.move(\n    state.containerPhrasing(node, {\n      after: marker,\n      before,\n      ...tracker.current()\n    })\n  )\n  const betweenHead = between.charCodeAt(0)\n  const open = encodeInfo(\n    info.before.charCodeAt(info.before.length - 1),\n    betweenHead,\n    marker\n  )\n\n  if (open.inside) {\n    between = encodeCharacterReference(betweenHead) + between.slice(1)\n  }\n\n  const betweenTail = between.charCodeAt(between.length - 1)\n  const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n  if (close.inside) {\n    between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n  }\n\n  const after = tracker.move(marker)\n\n  exit()\n\n  state.attentionEncodeSurroundingInfo = {\n    after: close.outside,\n    before: open.outside\n  }\n  return before + between + after\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n  return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n *   Union of the action types.\n *\n * @typedef {number} Index\n *   Move to the sibling at `index` next (after node itself is completely\n *   traversed).\n *\n *   Useful if mutating the tree, such as removing the node the visitor is\n *   currently on, or any of its previous siblings.\n *   Results less than 0 or greater than or equal to `children.length` stop\n *   traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n *   List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n *   Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform the parent of node (the last of `ancestors`).\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of an ancestor still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Array<VisitedParents>} ancestors\n *   Ancestors of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Tree type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} test\n *   `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n *   Handle each node.\n * @param {boolean | null | undefined} [reverse]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n  /** @type {Test} */\n  let check\n\n  if (typeof test === 'function' && typeof visitor !== 'function') {\n    reverse = visitor\n    // @ts-expect-error no visitor given, so `visitor` is test.\n    visitor = test\n  } else {\n    // @ts-expect-error visitor given, so `test` isn’t a visitor.\n    check = test\n  }\n\n  const is = convert(check)\n  const step = reverse ? -1 : 1\n\n  factory(tree, undefined, [])()\n\n  /**\n   * @param {UnistNode} node\n   * @param {number | undefined} index\n   * @param {Array<UnistParent>} parents\n   */\n  function factory(node, index, parents) {\n    const value = /** @type {Record<string, unknown>} */ (\n      node && typeof node === 'object' ? node : {}\n    )\n\n    if (typeof value.type === 'string') {\n      const name =\n        // `hast`\n        typeof value.tagName === 'string'\n          ? value.tagName\n          : // `xast`\n          typeof value.name === 'string'\n          ? value.name\n          : undefined\n\n      Object.defineProperty(visit, 'name', {\n        value:\n          'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n      })\n    }\n\n    return visit\n\n    function visit() {\n      /** @type {Readonly<ActionTuple>} */\n      let result = empty\n      /** @type {Readonly<ActionTuple>} */\n      let subresult\n      /** @type {number} */\n      let offset\n      /** @type {Array<UnistParent>} */\n      let grandparents\n\n      if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n        // @ts-expect-error: `visitor` is now a visitor.\n        result = toResult(visitor(node, parents))\n\n        if (result[0] === EXIT) {\n          return result\n        }\n      }\n\n      if ('children' in node && node.children) {\n        const nodeAsParent = /** @type {UnistParent} */ (node)\n\n        if (nodeAsParent.children && result[0] !== SKIP) {\n          offset = (reverse ? nodeAsParent.children.length : -1) + step\n          grandparents = parents.concat(nodeAsParent)\n\n          while (offset > -1 && offset < nodeAsParent.children.length) {\n            const child = nodeAsParent.children[offset]\n\n            subresult = factory(child, offset, grandparents)()\n\n            if (subresult[0] === EXIT) {\n              return subresult\n            }\n\n            offset =\n              typeof subresult[1] === 'number' ? subresult[1] : offset + step\n          }\n        }\n      }\n\n      return result\n    }\n  }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n *   Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n *   Clean result.\n */\nfunction toResult(value) {\n  if (Array.isArray(value)) {\n    return value\n  }\n\n  if (typeof value === 'number') {\n    return [CONTINUE, value]\n  }\n\n  return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n *   Test from `unist-util-is`.\n *\n *   Note: we have remove and add `undefined`, because otherwise when generating\n *   automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n *   which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n *   Fn extends (value: any) => value is infer Thing\n *   ? Thing\n *   : Fallback\n * )} Predicate\n *   Get the value of a type guard `Fn`.\n * @template Fn\n *   Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n *   Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n *   Check extends null | undefined // No test.\n *   ? Value\n *   : Value extends {type: Check} // String (type) test.\n *   ? Value\n *   : Value extends Check // Partial test.\n *   ? Value\n *   : Check extends Function // Function test.\n *   ? Predicate<Check, Value> extends Value\n *     ? Predicate<Check, Value>\n *     : never\n *   : never // Some other test?\n * )} MatchesOne\n *   Check whether a node matches a primitive check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n *   Check extends Array<any>\n *   ? MatchesOne<Value, Check[keyof Check]>\n *   : MatchesOne<Value, Check>\n * )} Matches\n *   Check whether a node matches a check in the type system.\n * @template Value\n *   Value; typically unist `Node`.\n * @template Check\n *   Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n *   Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n *   Increment a number in the type system.\n * @template {Uint} [I=0]\n *   Index.\n */\n\n/**\n * @typedef {(\n *   Node extends UnistParent\n *   ? Node extends {children: Array<infer Children>}\n *     ? Child extends Children ? Node : never\n *     : never\n *   : never\n * )} InternalParent\n *   Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n *   Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n */\n\n/**\n * @typedef {(\n *   Depth extends Max\n *   ? never\n *   :\n *     | InternalParent<Node, Child>\n *     | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n *   Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n *   All node types in a tree.\n * @template {UnistNode} Child\n *   Node to search for.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @typedef {(\n *   Tree extends UnistParent\n *     ? Depth extends Max\n *       ? Tree\n *       : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n *     : Tree\n * )} InclusiveDescendant\n *   Collect all (inclusive) descendants of `Tree`.\n *\n *   > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n *   > recurse without actually running into an infinite loop, which the\n *   > previous version did.\n *   >\n *   > Practically, a max of `2` is typically enough assuming a `Root` is\n *   > passed, but it doesn’t improve performance.\n *   > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n *   > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n *   Tree type.\n * @template {Uint} [Max=10]\n *   Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n *   Current depth.\n */\n\n/**\n * @callback Visitor\n *   Handle a node (matching `test`, if given).\n *\n *   Visitors are free to transform `node`.\n *   They can also transform `parent`.\n *\n *   Replacing `node` itself, if `SKIP` is not returned, still causes its\n *   descendants to be walked (which is a bug).\n *\n *   When adding or removing previous siblings of `node` (or next siblings, in\n *   case of reverse), the `Visitor` should return a new `Index` to specify the\n *   sibling to traverse after `node` is traversed.\n *   Adding or removing next siblings of `node` (or previous siblings, in case\n *   of reverse) is handled as expected without needing to return a new `Index`.\n *\n *   Removing the children property of `parent` still results in them being\n *   traversed.\n * @param {Visited} node\n *   Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n *   Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n *   Parent of `node`.\n * @returns {VisitorResult}\n *   What to do next.\n *\n *   An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n *   An `Action` is treated as a tuple of `[Action]`.\n *\n *   Passing a tuple back only makes sense if the `Action` is `SKIP`.\n *   When the `Action` is `EXIT`, that action can be returned.\n *   When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n *   Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n *   Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n *   Build a typed `Visitor` function from a node and all possible parents.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n *   Node type.\n * @template {UnistParent} Ancestor\n *   Parent type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromMatch<\n *     Matches<Descendant, Check>,\n *     Extract<Descendant, UnistParent>\n *   >\n * )} BuildVisitorFromDescendants\n *   Build a typed `Visitor` function from a list of descendants and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n *   Node type.\n * @template {Test} Check\n *   Test type.\n */\n\n/**\n * @typedef {(\n *   BuildVisitorFromDescendants<\n *     InclusiveDescendant<Tree>,\n *     Check\n *   >\n * )} BuildVisitor\n *   Build a typed `Visitor` function from a tree and a test.\n *\n *   It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n *   Node type.\n * @template {Test} [Check=Test]\n *   Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n *   Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n *   `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n *   Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n *   Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n *   Nothing.\n *\n * @template {UnistNode} Tree\n *   Node type.\n * @template {Test} Check\n *   `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n  /** @type {boolean | null | undefined} */\n  let reverse\n  /** @type {Test} */\n  let test\n  /** @type {Visitor} */\n  let visitor\n\n  if (\n    typeof testOrVisitor === 'function' &&\n    typeof visitorOrReverse !== 'function'\n  ) {\n    test = undefined\n    visitor = testOrVisitor\n    reverse = visitorOrReverse\n  } else {\n    // @ts-expect-error: assume the overload with test was given.\n    test = testOrVisitor\n    // @ts-expect-error: assume the overload with test was given.\n    visitor = visitorOrReverse\n    reverse = maybeReverse\n  }\n\n  visitParents(tree, test, overload, reverse)\n\n  /**\n   * @param {UnistNode} node\n   * @param {Array<UnistParent>} parents\n   */\n  function overload(node, parents) {\n    const parent = parents[parents.length - 1]\n    const index = parent ? parent.children.indexOf(node) : undefined\n    return visitor(node, index, parent)\n  }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n *   Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n *   Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n *   Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {string}\n *   Serialized `value`.\n */\nexport function toString(value, options) {\n  const settings = options || emptyOptions\n  const includeImageAlt =\n    typeof settings.includeImageAlt === 'boolean'\n      ? settings.includeImageAlt\n      : true\n  const includeHtml =\n    typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n  return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n  if (node(value)) {\n    if ('value' in value) {\n      return value.type === 'html' && !includeHtml ? '' : value.value\n    }\n\n    if (includeImageAlt && 'alt' in value && value.alt) {\n      return value.alt\n    }\n\n    if ('children' in value) {\n      return all(value.children, includeImageAlt, includeHtml)\n    }\n  }\n\n  if (Array.isArray(value)) {\n    return all(value, includeImageAlt, includeHtml)\n  }\n\n  return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n *   Thing to serialize.\n * @param {boolean} includeImageAlt\n *   Include image `alt`s.\n * @param {boolean} includeHtml\n *   Include HTML.\n * @returns {string}\n *   Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n  /** @type {Array<string>} */\n  const result = []\n  let index = -1\n\n  while (++index < values.length) {\n    result[index] = one(values[index], includeImageAlt, includeHtml)\n  }\n\n  return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n *   Thing.\n * @returns {value is Nodes}\n *   Whether `value` is a node.\n */\nfunction node(value) {\n  return Boolean(value && typeof value === 'object')\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Heading} from 'mdast'\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n  let literalWithBreak = false\n\n  // Look for literals with a line break.\n  // Note that this also\n  visit(node, function (node) {\n    if (\n      ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n      node.type === 'break'\n    ) {\n      literalWithBreak = true\n      return EXIT\n    }\n  })\n\n  return Boolean(\n    (!node.depth || node.depth < 3) &&\n      toString(node) &&\n      (state.options.setext || literalWithBreak)\n  )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Heading, Parents} from 'mdast'\n */\n\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n  const rank = Math.max(Math.min(6, node.depth || 1), 1)\n  const tracker = state.createTracker(info)\n\n  if (formatHeadingAsSetext(node, state)) {\n    const exit = state.enter('headingSetext')\n    const subexit = state.enter('phrasing')\n    const value = state.containerPhrasing(node, {\n      ...tracker.current(),\n      before: '\\n',\n      after: '\\n'\n    })\n    subexit()\n    exit()\n\n    return (\n      value +\n      '\\n' +\n      (rank === 1 ? '=' : '-').repeat(\n        // The whole size…\n        value.length -\n          // Minus the position of the character after the last EOL (or\n          // 0 if there is none)…\n          (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n      )\n    )\n  }\n\n  const sequence = '#'.repeat(rank)\n  const exit = state.enter('headingAtx')\n  const subexit = state.enter('phrasing')\n\n  // Note: for proper tracking, we should reset the output positions when there\n  // is no content returned, because then the space is not output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  tracker.move(sequence + ' ')\n\n  let value = state.containerPhrasing(node, {\n    before: '# ',\n    after: '\\n',\n    ...tracker.current()\n  })\n\n  if (/^[\\t ]/.test(value)) {\n    // To do: what effect has the character reference on tracking?\n    value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1)\n  }\n\n  value = value ? sequence + ' ' + value : sequence\n\n  if (state.options.closeAtx) {\n    value += ' ' + sequence\n  }\n\n  subexit()\n  exit()\n\n  return value\n}\n","/**\n * @import {Html} from 'mdast'\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n  return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n  return '<'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Image, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const exit = state.enter('image')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('![')\n  value += tracker.move(\n    state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n  )\n  value += tracker.move('](')\n\n  subexit()\n\n  if (\n    // If there’s no url but there is a title…\n    (!node.url && node.title) ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : ')',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  value += tracker.move(')')\n  exit()\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n  return '!'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {ImageReference, Parents} from 'mdast'\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n  const type = node.referenceType\n  const exit = state.enter('imageReference')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('![')\n  const alt = state.safe(node.alt, {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  value += tracker.move(alt + '][')\n\n  subexit()\n  // Hide the fact that we’re in phrasing, because escapes don’t work.\n  const stack = state.stack\n  state.stack = []\n  subexit = state.enter('reference')\n  // Note: for proper tracking, we should reset the output positions when we end\n  // up making a `shortcut` reference, because then there is no brace output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  const reference = state.safe(state.associationId(node), {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  subexit()\n  state.stack = stack\n  exit()\n\n  if (type === 'full' || !alt || alt !== reference) {\n    value += tracker.move(reference + ']')\n  } else if (type === 'shortcut') {\n    // Remove the unwanted `[`.\n    value = value.slice(0, -1)\n  } else {\n    value += tracker.move(']')\n  }\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n  return '!'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {InlineCode, Parents} from 'mdast'\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n  let value = node.value || ''\n  let sequence = '`'\n  let index = -1\n\n  // If there is a single grave accent on its own in the code, use a fence of\n  // two.\n  // If there are two in a row, use one.\n  while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n    sequence += '`'\n  }\n\n  // If this is not just spaces or eols (tabs don’t count), and either the\n  // first or last character are a space, eol, or tick, then pad with spaces.\n  if (\n    /[^ \\r\\n]/.test(value) &&\n    ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n  ) {\n    value = ' ' + value + ' '\n  }\n\n  // We have a potential problem: certain characters after eols could result in\n  // blocks being seen.\n  // For example, if someone injected the string `'\\n# b'`, then that would\n  // result in an ATX heading.\n  // We can’t escape characters in `inlineCode`, but because eols are\n  // transformed to spaces when going from markdown to HTML anyway, we can swap\n  // them out.\n  while (++index < state.unsafe.length) {\n    const pattern = state.unsafe[index]\n    const expression = state.compilePattern(pattern)\n    /** @type {RegExpExecArray | null} */\n    let match\n\n    // Only look for `atBreak`s.\n    // Btw: note that `atBreak` patterns will always start the regex at LF or\n    // CR.\n    if (!pattern.atBreak) continue\n\n    while ((match = expression.exec(value))) {\n      let position = match.index\n\n      // Support CRLF (patterns only look for one of the characters).\n      if (\n        value.charCodeAt(position) === 10 /* `\\n` */ &&\n        value.charCodeAt(position - 1) === 13 /* `\\r` */\n      ) {\n        position--\n      }\n\n      value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n    }\n  }\n\n  return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n  return '`'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Link} from 'mdast'\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n  const raw = toString(node)\n\n  return Boolean(\n    !state.options.resourceLink &&\n      // If there’s a url…\n      node.url &&\n      // And there’s a no title…\n      !node.title &&\n      // And the content of `node` is a single text node…\n      node.children &&\n      node.children.length === 1 &&\n      node.children[0].type === 'text' &&\n      // And if the url is the same as the content…\n      (raw === node.url || 'mailto:' + raw === node.url) &&\n      // And that starts w/ a protocol…\n      /^[a-z][a-z+.-]+:/i.test(node.url) &&\n      // And that doesn’t contain ASCII control codes (character escapes and\n      // references don’t work), space, or angle brackets…\n      !/[\\0- <>\\u007F]/.test(node.url)\n  )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Link, Parents} from 'mdast'\n * @import {Exit} from '../types.js'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n  const quote = checkQuote(state)\n  const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n  const tracker = state.createTracker(info)\n  /** @type {Exit} */\n  let exit\n  /** @type {Exit} */\n  let subexit\n\n  if (formatLinkAsAutolink(node, state)) {\n    // Hide the fact that we’re in phrasing, because escapes don’t work.\n    const stack = state.stack\n    state.stack = []\n    exit = state.enter('autolink')\n    let value = tracker.move('<')\n    value += tracker.move(\n      state.containerPhrasing(node, {\n        before: value,\n        after: '>',\n        ...tracker.current()\n      })\n    )\n    value += tracker.move('>')\n    exit()\n    state.stack = stack\n    return value\n  }\n\n  exit = state.enter('link')\n  subexit = state.enter('label')\n  let value = tracker.move('[')\n  value += tracker.move(\n    state.containerPhrasing(node, {\n      before: value,\n      after: '](',\n      ...tracker.current()\n    })\n  )\n  value += tracker.move('](')\n  subexit()\n\n  if (\n    // If there’s no url but there is a title…\n    (!node.url && node.title) ||\n    // If there are control characters or whitespace.\n    /[\\0- \\u007F]/.test(node.url)\n  ) {\n    subexit = state.enter('destinationLiteral')\n    value += tracker.move('<')\n    value += tracker.move(\n      state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n    )\n    value += tracker.move('>')\n  } else {\n    // No whitespace, raw is prettier.\n    subexit = state.enter('destinationRaw')\n    value += tracker.move(\n      state.safe(node.url, {\n        before: value,\n        after: node.title ? ' ' : ')',\n        ...tracker.current()\n      })\n    )\n  }\n\n  subexit()\n\n  if (node.title) {\n    subexit = state.enter(`title${suffix}`)\n    value += tracker.move(' ' + quote)\n    value += tracker.move(\n      state.safe(node.title, {\n        before: value,\n        after: quote,\n        ...tracker.current()\n      })\n    )\n    value += tracker.move(quote)\n    subexit()\n  }\n\n  value += tracker.move(')')\n\n  exit()\n  return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n  return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {LinkReference, Parents} from 'mdast'\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n  const type = node.referenceType\n  const exit = state.enter('linkReference')\n  let subexit = state.enter('label')\n  const tracker = state.createTracker(info)\n  let value = tracker.move('[')\n  const text = state.containerPhrasing(node, {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  value += tracker.move(text + '][')\n\n  subexit()\n  // Hide the fact that we’re in phrasing, because escapes don’t work.\n  const stack = state.stack\n  state.stack = []\n  subexit = state.enter('reference')\n  // Note: for proper tracking, we should reset the output positions when we end\n  // up making a `shortcut` reference, because then there is no brace output.\n  // Practically, in that case, there is no content, so it doesn’t matter that\n  // we’ve tracked one too many characters.\n  const reference = state.safe(state.associationId(node), {\n    before: value,\n    after: ']',\n    ...tracker.current()\n  })\n  subexit()\n  state.stack = stack\n  exit()\n\n  if (type === 'full' || !text || text !== reference) {\n    value += tracker.move(reference + ']')\n  } else if (type === 'shortcut') {\n    // Remove the unwanted `[`.\n    value = value.slice(0, -1)\n  } else {\n    value += tracker.move(']')\n  }\n\n  return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n  return '['\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBullet(state) {\n  const marker = state.options.bullet || '*'\n\n  if (marker !== '*' && marker !== '+' && marker !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bullet`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBulletOther(state) {\n  const bullet = checkBullet(state)\n  const bulletOther = state.options.bulletOther\n\n  if (!bulletOther) {\n    return bullet === '*' ? '-' : '*'\n  }\n\n  if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        bulletOther +\n        '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n    )\n  }\n\n  if (bulletOther === bullet) {\n    throw new Error(\n      'Expected `bullet` (`' +\n        bullet +\n        '`) and `bulletOther` (`' +\n        bulletOther +\n        '`) to be different'\n    )\n  }\n\n  return bulletOther\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrdered(state) {\n  const marker = state.options.bulletOrdered || '.'\n\n  if (marker !== '.' && marker !== ')') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        marker +\n        '` for `options.bulletOrdered`, expected `.` or `)`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */\nexport function checkRule(state) {\n  const marker = state.options.rule || '*'\n\n  if (marker !== '*' && marker !== '-' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize rules with `' +\n        marker +\n        '` for `options.rule`, expected `*`, `-`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {List, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n  const exit = state.enter('list')\n  const bulletCurrent = state.bulletCurrent\n  /** @type {string} */\n  let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n  /** @type {string} */\n  const bulletOther = node.ordered\n    ? bullet === '.'\n      ? ')'\n      : '.'\n    : checkBulletOther(state)\n  let useDifferentMarker =\n    parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n  if (!node.ordered) {\n    const firstListItem = node.children ? node.children[0] : undefined\n\n    // If there’s an empty first list item directly in two list items,\n    // we have to use a different bullet:\n    //\n    // ```markdown\n    // * - *\n    // ```\n    //\n    // …because otherwise it would become one big thematic break.\n    if (\n      // Bullet could be used as a thematic break marker:\n      (bullet === '*' || bullet === '-') &&\n      // Empty first list item:\n      firstListItem &&\n      (!firstListItem.children || !firstListItem.children[0]) &&\n      // Directly in two other list items:\n      state.stack[state.stack.length - 1] === 'list' &&\n      state.stack[state.stack.length - 2] === 'listItem' &&\n      state.stack[state.stack.length - 3] === 'list' &&\n      state.stack[state.stack.length - 4] === 'listItem' &&\n      // That are each the first child.\n      state.indexStack[state.indexStack.length - 1] === 0 &&\n      state.indexStack[state.indexStack.length - 2] === 0 &&\n      state.indexStack[state.indexStack.length - 3] === 0\n    ) {\n      useDifferentMarker = true\n    }\n\n    // If there’s a thematic break at the start of the first list item,\n    // we have to use a different bullet:\n    //\n    // ```markdown\n    // * ---\n    // ```\n    //\n    // …because otherwise it would become one big thematic break.\n    if (checkRule(state) === bullet && firstListItem) {\n      let index = -1\n\n      while (++index < node.children.length) {\n        const item = node.children[index]\n\n        if (\n          item &&\n          item.type === 'listItem' &&\n          item.children &&\n          item.children[0] &&\n          item.children[0].type === 'thematicBreak'\n        ) {\n          useDifferentMarker = true\n          break\n        }\n      }\n    }\n  }\n\n  if (useDifferentMarker) {\n    bullet = bulletOther\n  }\n\n  state.bulletCurrent = bullet\n  const value = state.containerFlow(node, info)\n  state.bulletLastUsed = bullet\n  state.bulletCurrent = bulletCurrent\n  exit()\n  return value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */\nexport function checkListItemIndent(state) {\n  const style = state.options.listItemIndent || 'one'\n\n  if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n    throw new Error(\n      'Cannot serialize items with `' +\n        style +\n        '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n    )\n  }\n\n  return style\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {ListItem, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n  const listItemIndent = checkListItemIndent(state)\n  let bullet = state.bulletCurrent || checkBullet(state)\n\n  // Add the marker value for ordered lists.\n  if (parent && parent.type === 'list' && parent.ordered) {\n    bullet =\n      (typeof parent.start === 'number' && parent.start > -1\n        ? parent.start\n        : 1) +\n      (state.options.incrementListMarker === false\n        ? 0\n        : parent.children.indexOf(node)) +\n      bullet\n  }\n\n  let size = bullet.length + 1\n\n  if (\n    listItemIndent === 'tab' ||\n    (listItemIndent === 'mixed' &&\n      ((parent && parent.type === 'list' && parent.spread) || node.spread))\n  ) {\n    size = Math.ceil(size / 4) * 4\n  }\n\n  const tracker = state.createTracker(info)\n  tracker.move(bullet + ' '.repeat(size - bullet.length))\n  tracker.shift(size)\n  const exit = state.enter('listItem')\n  const value = state.indentLines(\n    state.containerFlow(node, tracker.current()),\n    map\n  )\n  exit()\n\n  return value\n\n  /** @type {Map} */\n  function map(line, index, blank) {\n    if (index) {\n      return (blank ? '' : ' '.repeat(size)) + line\n    }\n\n    return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n  }\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Paragraph, Parents} from 'mdast'\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n  const exit = state.enter('paragraph')\n  const subexit = state.enter('phrasing')\n  const value = state.containerPhrasing(node, info)\n  subexit()\n  exit()\n  return value\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n *   Check that an arbitrary value is a node.\n * @param {unknown} this\n *   The given context.\n * @param {unknown} [node]\n *   Anything (typically a node).\n * @param {number | null | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean}\n *   Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n *   Object to check for equivalence.\n *\n *   Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n *   Check for an arbitrary node.\n *\n * @callback TestFunction\n *   Check if a node passes a test.\n * @param {unknown} this\n *   The given context.\n * @param {Node} node\n *   A node.\n * @param {number | undefined} [index]\n *   The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n *   The node’s parent.\n * @returns {boolean | undefined | void}\n *   Whether this node passes the test.\n *\n *   Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n *   Thing to check, typically `Node`.\n * @param {Test} test\n *   A check for a specific node.\n * @param {number | null | undefined} index\n *   The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n *   The node’s parent.\n * @param {unknown} context\n *   Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n *   Whether `node` is a node and passes a test.\n */\nexport const is =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((node?: null | undefined) => false) &\n   *   ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n   * )}\n   */\n  (\n    /**\n     * @param {unknown} [node]\n     * @param {Test} [test]\n     * @param {number | null | undefined} [index]\n     * @param {Parent | null | undefined} [parent]\n     * @param {unknown} [context]\n     * @returns {boolean}\n     */\n    // eslint-disable-next-line max-params\n    function (node, test, index, parent, context) {\n      const check = convert(test)\n\n      if (\n        index !== undefined &&\n        index !== null &&\n        (typeof index !== 'number' ||\n          index < 0 ||\n          index === Number.POSITIVE_INFINITY)\n      ) {\n        throw new Error('Expected positive finite index')\n      }\n\n      if (\n        parent !== undefined &&\n        parent !== null &&\n        (!is(parent) || !parent.children)\n      ) {\n        throw new Error('Expected parent node')\n      }\n\n      if (\n        (parent === undefined || parent === null) !==\n        (index === undefined || index === null)\n      ) {\n        throw new Error('Expected both parent and index')\n      }\n\n      return looksLikeANode(node)\n        ? check.call(context, node, index, parent)\n        : false\n    }\n  )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n *   *   when nullish, checks if `node` is a `Node`.\n *   *   when `string`, works like passing `(node) => node.type === test`.\n *   *   when `function` checks if function passed the node is true.\n *   *   when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n *   *   when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n *   An assertion.\n */\nexport const convert =\n  // Note: overloads in JSDoc can’t yet use different `@template`s.\n  /**\n   * @type {(\n   *   (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n   *   (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n   *   (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n   *   ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n   *   ((test?: Test) => Check)\n   * )}\n   */\n  (\n    /**\n     * @param {Test} [test]\n     * @returns {Check}\n     */\n    function (test) {\n      if (test === null || test === undefined) {\n        return ok\n      }\n\n      if (typeof test === 'function') {\n        return castFactory(test)\n      }\n\n      if (typeof test === 'object') {\n        return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n      }\n\n      if (typeof test === 'string') {\n        return typeFactory(test)\n      }\n\n      throw new Error('Expected function, string, or object as test')\n    }\n  )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n  /** @type {Array<Check>} */\n  const checks = []\n  let index = -1\n\n  while (++index < tests.length) {\n    checks[index] = convert(tests[index])\n  }\n\n  return castFactory(any)\n\n  /**\n   * @this {unknown}\n   * @type {TestFunction}\n   */\n  function any(...parameters) {\n    let index = -1\n\n    while (++index < checks.length) {\n      if (checks[index].apply(this, parameters)) return true\n    }\n\n    return false\n  }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n  const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n  return castFactory(all)\n\n  /**\n   * @param {Node} node\n   * @returns {boolean}\n   */\n  function all(node) {\n    const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n      /** @type {unknown} */ (node)\n    )\n\n    /** @type {string} */\n    let key\n\n    for (key in check) {\n      if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n    }\n\n    return true\n  }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n  return castFactory(type)\n\n  /**\n   * @param {Node} node\n   */\n  function type(node) {\n    return node && node.type === check\n  }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n  return check\n\n  /**\n   * @this {unknown}\n   * @type {Check}\n   */\n  function check(value, index, parent) {\n    return Boolean(\n      looksLikeANode(value) &&\n        testFunction.call(\n          this,\n          value,\n          typeof index === 'number' ? index : undefined,\n          parent || undefined\n        )\n    )\n  }\n}\n\nfunction ok() {\n  return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n  return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n *   Thing to check, typically `Node`.\n * @returns\n *   Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n  /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n  (\n    convert([\n      'break',\n      'delete',\n      'emphasis',\n      // To do: next major: removed since footnotes were added to GFM.\n      'footnote',\n      'footnoteReference',\n      'image',\n      'imageReference',\n      'inlineCode',\n      // Enabled by `mdast-util-math`:\n      'inlineMath',\n      'link',\n      'linkReference',\n      // Enabled by `mdast-util-mdx`:\n      'mdxJsxTextElement',\n      // Enabled by `mdast-util-mdx`:\n      'mdxTextExpression',\n      'strong',\n      'text',\n      // Enabled by `mdast-util-directive`:\n      'textDirective'\n    ])\n  )\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Root} from 'mdast'\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n  // Note: `html` nodes are ambiguous.\n  const hasPhrasing = node.children.some(function (d) {\n    return phrasing(d)\n  })\n\n  const container = hasPhrasing ? state.containerPhrasing : state.containerFlow\n  return container.call(state, node, info)\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */\nexport function checkStrong(state) {\n  const marker = state.options.strong || '*'\n\n  if (marker !== '*' && marker !== '_') {\n    throw new Error(\n      'Cannot serialize strong with `' +\n        marker +\n        '` for `options.strong`, expected `*`, or `_`'\n    )\n  }\n\n  return marker\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Strong} from 'mdast'\n */\n\nimport {checkStrong} from '../util/check-strong.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nstrong.peek = strongPeek\n\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n  const marker = checkStrong(state)\n  const exit = state.enter('strong')\n  const tracker = state.createTracker(info)\n  const before = tracker.move(marker + marker)\n\n  let between = tracker.move(\n    state.containerPhrasing(node, {\n      after: marker,\n      before,\n      ...tracker.current()\n    })\n  )\n  const betweenHead = between.charCodeAt(0)\n  const open = encodeInfo(\n    info.before.charCodeAt(info.before.length - 1),\n    betweenHead,\n    marker\n  )\n\n  if (open.inside) {\n    between = encodeCharacterReference(betweenHead) + between.slice(1)\n  }\n\n  const betweenTail = between.charCodeAt(between.length - 1)\n  const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n  if (close.inside) {\n    between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n  }\n\n  const after = tracker.move(marker + marker)\n\n  exit()\n\n  state.attentionEncodeSurroundingInfo = {\n    after: close.outside,\n    before: open.outside\n  }\n  return before + between + after\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n  return state.options.strong || '*'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Text} from 'mdast'\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n  return state.safe(node.value, info)\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */\nexport function checkRuleRepetition(state) {\n  const repetition = state.options.ruleRepetition || 3\n\n  if (repetition < 3) {\n    throw new Error(\n      'Cannot serialize rules with repetition `' +\n        repetition +\n        '` for `options.ruleRepetition`, expected `3` or more'\n    )\n  }\n\n  return repetition\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Parents, ThematicBreak} from 'mdast'\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n  const value = (\n    checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n  ).repeat(checkRuleRepetition(state))\n\n  return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n  blockquote,\n  break: hardBreak,\n  code,\n  definition,\n  emphasis,\n  hardBreak,\n  heading,\n  html,\n  image,\n  imageReference,\n  inlineCode,\n  link,\n  linkReference,\n  list,\n  listItem,\n  paragraph,\n  root,\n  strong,\n  text,\n  thematicBreak\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n *   Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n *   Whether to add a space of padding between delimiters and cells (default:\n *   `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n *   Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n *   Function to detect the length of table cell content, used when aligning\n *   the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n  return {\n    enter: {\n      table: enterTable,\n      tableData: enterCell,\n      tableHeader: enterCell,\n      tableRow: enterRow\n    },\n    exit: {\n      codeText: exitCodeText,\n      table: exitTable,\n      tableData: exit,\n      tableHeader: exit,\n      tableRow: exit\n    }\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n  const align = token._align\n  assert(align, 'expected `_align` on table')\n  this.enter(\n    {\n      type: 'table',\n      align: align.map(function (d) {\n        return d === 'none' ? null : d\n      }),\n      children: []\n    },\n    token\n  )\n  this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n  this.exit(token)\n  this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n  this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n  this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n  this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n  let value = this.resume()\n\n  if (this.data.inTable) {\n    value = value.replace(/\\\\([\\\\|])/g, replace)\n  }\n\n  const node = this.stack[this.stack.length - 1]\n  assert(node.type === 'inlineCode')\n  node.value = value\n  this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n  // Pipes work, backslashes don’t (but can’t escape pipes).\n  return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n *   Configuration.\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n  const settings = options || {}\n  const padding = settings.tableCellPadding\n  const alignDelimiters = settings.tablePipeAlign\n  const stringLength = settings.stringLength\n  const around = padding ? ' ' : '|'\n\n  return {\n    unsafe: [\n      {character: '\\r', inConstruct: 'tableCell'},\n      {character: '\\n', inConstruct: 'tableCell'},\n      // A pipe, when followed by a tab or space (padding), or a dash or colon\n      // (unpadded delimiter row), could result in a table.\n      {atBreak: true, character: '|', after: '[\\t :-]'},\n      // A pipe in a cell must be encoded.\n      {character: '|', inConstruct: 'tableCell'},\n      // A colon must be followed by a dash, in which case it could start a\n      // delimiter row.\n      {atBreak: true, character: ':', after: '-'},\n      // A delimiter row can also start with a dash, when followed by more\n      // dashes, a colon, or a pipe.\n      // This is a stricter version than the built in check for lists, thematic\n      // breaks, and setex heading underlines though:\n      // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n      {atBreak: true, character: '-', after: '[:|-]'}\n    ],\n    handlers: {\n      inlineCode: inlineCodeWithTable,\n      table: handleTable,\n      tableCell: handleTableCell,\n      tableRow: handleTableRow\n    }\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {Table} node\n   */\n  function handleTable(node, _, state, info) {\n    return serializeData(handleTableAsData(node, state, info), node.align)\n  }\n\n  /**\n   * This function isn’t really used normally, because we handle rows at the\n   * table level.\n   * But, if someone passes in a table row, this ensures we make somewhat sense.\n   *\n   * @type {ToMarkdownHandle}\n   * @param {TableRow} node\n   */\n  function handleTableRow(node, _, state, info) {\n    const row = handleTableRowAsData(node, state, info)\n    const value = serializeData([row])\n    // `markdown-table` will always add an align row\n    return value.slice(0, value.indexOf('\\n'))\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {TableCell} node\n   */\n  function handleTableCell(node, _, state, info) {\n    const exit = state.enter('tableCell')\n    const subexit = state.enter('phrasing')\n    const value = state.containerPhrasing(node, {\n      ...info,\n      before: around,\n      after: around\n    })\n    subexit()\n    exit()\n    return value\n  }\n\n  /**\n   * @param {Array<Array<string>>} matrix\n   * @param {Array<string | null | undefined> | null | undefined} [align]\n   */\n  function serializeData(matrix, align) {\n    return markdownTable(matrix, {\n      align,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      alignDelimiters,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      padding,\n      // @ts-expect-error: `markdown-table` types should support `null`.\n      stringLength\n    })\n  }\n\n  /**\n   * @param {Table} node\n   * @param {State} state\n   * @param {Info} info\n   */\n  function handleTableAsData(node, state, info) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<Array<string>>} */\n    const result = []\n    const subexit = state.enter('table')\n\n    while (++index < children.length) {\n      result[index] = handleTableRowAsData(children[index], state, info)\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @param {TableRow} node\n   * @param {State} state\n   * @param {Info} info\n   */\n  function handleTableRowAsData(node, state, info) {\n    const children = node.children\n    let index = -1\n    /** @type {Array<string>} */\n    const result = []\n    const subexit = state.enter('tableRow')\n\n    while (++index < children.length) {\n      // Note: the positional info as used here is incorrect.\n      // Making it correct would be impossible due to aligning cells?\n      // And it would need copy/pasting `markdown-table` into this project.\n      result[index] = handleTableCell(children[index], node, state, info)\n    }\n\n    subexit()\n\n    return result\n  }\n\n  /**\n   * @type {ToMarkdownHandle}\n   * @param {InlineCode} node\n   */\n  function inlineCodeWithTable(node, parent, state) {\n    let value = defaultHandlers.inlineCode(node, parent, state)\n\n    if (state.stack.includes('tableCell')) {\n      value = value.replace(/\\|/g, '\\\\$&')\n    }\n\n    return value\n  }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n *   Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n  return {\n    exit: {\n      taskListCheckValueChecked: exitCheck,\n      taskListCheckValueUnchecked: exitCheck,\n      paragraph: exitParagraphWithTaskListItem\n    }\n  }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n  return {\n    unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n    handlers: {listItem: listItemWithTaskListItem}\n  }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n  // We’re always in a paragraph, in a list item.\n  const node = this.stack[this.stack.length - 2]\n  assert(node.type === 'listItem')\n  node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n  const parent = this.stack[this.stack.length - 2]\n\n  if (\n    parent &&\n    parent.type === 'listItem' &&\n    typeof parent.checked === 'boolean'\n  ) {\n    const node = this.stack[this.stack.length - 1]\n    assert(node.type === 'paragraph')\n    const head = node.children[0]\n\n    if (head && head.type === 'text') {\n      const siblings = parent.children\n      let index = -1\n      /** @type {Paragraph | undefined} */\n      let firstParaghraph\n\n      while (++index < siblings.length) {\n        const sibling = siblings[index]\n        if (sibling.type === 'paragraph') {\n          firstParaghraph = sibling\n          break\n        }\n      }\n\n      if (firstParaghraph === node) {\n        // Must start with a space or a tab.\n        head.value = head.value.slice(1)\n\n        if (head.value.length === 0) {\n          node.children.shift()\n        } else if (\n          node.position &&\n          head.position &&\n          typeof head.position.start.offset === 'number'\n        ) {\n          head.position.start.column++\n          head.position.start.offset++\n          node.position.start = Object.assign({}, head.position.start)\n        }\n      }\n    }\n  }\n\n  this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n  const head = node.children[0]\n  const checkable =\n    typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n  const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n  const tracker = state.createTracker(info)\n\n  if (checkable) {\n    tracker.move(checkbox)\n  }\n\n  let value = defaultHandlers.listItem(node, parent, state, {\n    ...info,\n    ...tracker.current()\n  })\n\n  if (checkable) {\n    value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n  }\n\n  return value\n\n  /**\n   * @param {string} $0\n   * @returns {string}\n   */\n  function check($0) {\n    return $0 + checkbox\n  }\n}\n","/**\n * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'\n * @import {Options} from 'mdast-util-gfm'\n * @import {Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n */\n\nimport {\n  gfmAutolinkLiteralFromMarkdown,\n  gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n  gfmFootnoteFromMarkdown,\n  gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n  gfmStrikethroughFromMarkdown,\n  gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n  gfmTaskListItemFromMarkdown,\n  gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array<FromMarkdownExtension>}\n *   Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n *   footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n  return [\n    gfmAutolinkLiteralFromMarkdown(),\n    gfmFootnoteFromMarkdown(),\n    gfmStrikethroughFromMarkdown(),\n    gfmTableFromMarkdown(),\n    gfmTaskListItemFromMarkdown()\n  ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {ToMarkdownExtension}\n *   Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n *   footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n  return {\n    extensions: [\n      gfmAutolinkLiteralToMarkdown(),\n      gfmFootnoteToMarkdown(options),\n      gfmStrikethroughToMarkdown(),\n      gfmTableToMarkdown(options),\n      gfmTaskListItemToMarkdown()\n    ]\n  }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n  tokenize: tokenizeWwwPrefix,\n  partial: true\n};\nconst domain = {\n  tokenize: tokenizeDomain,\n  partial: true\n};\nconst path = {\n  tokenize: tokenizePath,\n  partial: true\n};\nconst trail = {\n  tokenize: tokenizeTrail,\n  partial: true\n};\nconst emailDomainDotTrail = {\n  tokenize: tokenizeEmailDomainDotTrail,\n  partial: true\n};\nconst wwwAutolink = {\n  name: 'wwwAutolink',\n  tokenize: tokenizeWwwAutolink,\n  previous: previousWww\n};\nconst protocolAutolink = {\n  name: 'protocolAutolink',\n  tokenize: tokenizeProtocolAutolink,\n  previous: previousProtocol\n};\nconst emailAutolink = {\n  name: 'emailAutolink',\n  tokenize: tokenizeEmailAutolink,\n  previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n  return {\n    text\n  };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n  text[code] = emailAutolink;\n  code++;\n  if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n *       ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n  const self = this;\n  /** @type {boolean | undefined} */\n  let dot;\n  /** @type {boolean} */\n  let data;\n  return start;\n\n  /**\n   * Start of email autolink literal.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n      return nok(code);\n    }\n    effects.enter('literalAutolink');\n    effects.enter('literalAutolinkEmail');\n    return atext(code);\n  }\n\n  /**\n   * In email atext.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function atext(code) {\n    if (gfmAtext(code)) {\n      effects.consume(code);\n      return atext;\n    }\n    if (code === 64) {\n      effects.consume(code);\n      return emailDomain;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In email domain.\n   *\n   * The reference code is a bit overly complex as it handles the `@`, of which\n   * there may be just one.\n   * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomain(code) {\n    // Dot followed by alphanumerical (not `-` or `_`).\n    if (code === 46) {\n      return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n    }\n\n    // Alphanumerical, `-`, and `_`.\n    if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n      data = true;\n      effects.consume(code);\n      return emailDomain;\n    }\n\n    // To do: `/` if xmpp.\n\n    // Note: normally we’d truncate trailing punctuation from the link.\n    // However, email autolink literals cannot contain any of those markers,\n    // except for `.`, but that can only occur if it isn’t trailing.\n    // So we can ignore truncating!\n    return emailDomainAfter(code);\n  }\n\n  /**\n   * In email domain, on dot that is not a trail.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *                      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomainDot(code) {\n    effects.consume(code);\n    dot = true;\n    return emailDomain;\n  }\n\n  /**\n   * After email domain.\n   *\n   * ```markdown\n   * > | a contact@example.org b\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function emailDomainAfter(code) {\n    // Domain must not be empty, must include a dot, and must end in alphabetical.\n    // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n    if (data && dot && asciiAlpha(self.previous)) {\n      effects.exit('literalAutolinkEmail');\n      effects.exit('literalAutolink');\n      return ok(code);\n    }\n    return nok(code);\n  }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n *       ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n  const self = this;\n  return wwwStart;\n\n  /**\n   * Start of www autolink literal.\n   *\n   * ```markdown\n   * > | www.example.com/a?b#c\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwStart(code) {\n    if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n      return nok(code);\n    }\n    effects.enter('literalAutolink');\n    effects.enter('literalAutolinkWww');\n    // Note: we *check*, so we can discard the `www.` we parsed.\n    // If it worked, we consider it as a part of the domain.\n    return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n  }\n\n  /**\n   * After a www autolink literal.\n   *\n   * ```markdown\n   * > | www.example.com/a?b#c\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwAfter(code) {\n    effects.exit('literalAutolinkWww');\n    effects.exit('literalAutolink');\n    return ok(code);\n  }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n *       ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n  const self = this;\n  let buffer = '';\n  let seen = false;\n  return protocolStart;\n\n  /**\n   * Start of protocol autolink literal.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolStart(code) {\n    if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n      effects.enter('literalAutolink');\n      effects.enter('literalAutolinkHttp');\n      buffer += String.fromCodePoint(code);\n      effects.consume(code);\n      return protocolPrefixInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In protocol.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *     ^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolPrefixInside(code) {\n    // `5` is size of `https`\n    if (asciiAlpha(code) && buffer.length < 5) {\n      // @ts-expect-error: definitely number.\n      buffer += String.fromCodePoint(code);\n      effects.consume(code);\n      return protocolPrefixInside;\n    }\n    if (code === 58) {\n      const protocol = buffer.toLowerCase();\n      if (protocol === 'http' || protocol === 'https') {\n        effects.consume(code);\n        return protocolSlashesInside;\n      }\n    }\n    return nok(code);\n  }\n\n  /**\n   * In slashes.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *           ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolSlashesInside(code) {\n    if (code === 47) {\n      effects.consume(code);\n      if (seen) {\n        return afterProtocol;\n      }\n      seen = true;\n      return protocolSlashesInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After protocol, before domain.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *             ^\n   * ```\n   *\n   * @type {State}\n   */\n  function afterProtocol(code) {\n    // To do: this is different from `markdown-rs`:\n    // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n    return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n  }\n\n  /**\n   * After a protocol autolink literal.\n   *\n   * ```markdown\n   * > | https://example.com/a?b#c\n   *                              ^\n   * ```\n   *\n   * @type {State}\n   */\n  function protocolAfter(code) {\n    effects.exit('literalAutolinkHttp');\n    effects.exit('literalAutolink');\n    return ok(code);\n  }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n *       ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n  let size = 0;\n  return wwwPrefixInside;\n\n  /**\n   * In www prefix.\n   *\n   * ```markdown\n   * > | www.example.com\n   *     ^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwPrefixInside(code) {\n    if ((code === 87 || code === 119) && size < 3) {\n      size++;\n      effects.consume(code);\n      return wwwPrefixInside;\n    }\n    if (code === 46 && size === 3) {\n      effects.consume(code);\n      return wwwPrefixAfter;\n    }\n    return nok(code);\n  }\n\n  /**\n   * After www prefix.\n   *\n   * ```markdown\n   * > | www.example.com\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function wwwPrefixAfter(code) {\n    // If there is *anything*, we can link.\n    return code === null ? nok(code) : ok(code);\n  }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n *               ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n  /** @type {boolean | undefined} */\n  let underscoreInLastSegment;\n  /** @type {boolean | undefined} */\n  let underscoreInLastLastSegment;\n  /** @type {boolean | undefined} */\n  let seen;\n  return domainInside;\n\n  /**\n   * In domain.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *             ^^^^^^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function domainInside(code) {\n    // Check whether this marker, which is a trailing punctuation\n    // marker, optionally followed by more trailing markers, and then\n    // followed by an end.\n    if (code === 46 || code === 95) {\n      return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n    }\n\n    // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n    // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n    // so that’s Unicode.\n    // Instead of some new production for Unicode alphanumerics, markdown\n    // already has that for Unicode punctuation and whitespace, so use those.\n    // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n    if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n      return domainAfter(code);\n    }\n    seen = true;\n    effects.consume(code);\n    return domainInside;\n  }\n\n  /**\n   * In domain, at potential trailing punctuation, that was not trailing.\n   *\n   * ```markdown\n   * > | https://example.com\n   *                    ^\n   * ```\n   *\n   * @type {State}\n   */\n  function domainAtPunctuation(code) {\n    // There is an underscore in the last segment of the domain\n    if (code === 95) {\n      underscoreInLastSegment = true;\n    }\n    // Otherwise, it’s a `.`: save the last segment underscore in the\n    // penultimate segment slot.\n    else {\n      underscoreInLastLastSegment = underscoreInLastSegment;\n      underscoreInLastSegment = undefined;\n    }\n    effects.consume(code);\n    return domainInside;\n  }\n\n  /**\n   * After domain.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *                        ^\n   * ```\n   *\n   * @type {State} */\n  function domainAfter(code) {\n    // Note: that’s GH says a dot is needed, but it’s not true:\n    // <https://github.com/github/cmark-gfm/issues/279>\n    if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n      return nok(code);\n    }\n    return ok(code);\n  }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n *                          ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n  let sizeOpen = 0;\n  let sizeClose = 0;\n  return pathInside;\n\n  /**\n   * In path.\n   *\n   * ```markdown\n   * > | https://example.com/a\n   *                        ^^\n   * ```\n   *\n   * @type {State}\n   */\n  function pathInside(code) {\n    if (code === 40) {\n      sizeOpen++;\n      effects.consume(code);\n      return pathInside;\n    }\n\n    // To do: `markdown-rs` also needs this.\n    // If this is a paren, and there are less closings than openings,\n    // we don’t check for a trail.\n    if (code === 41 && sizeClose < sizeOpen) {\n      return pathAtPunctuation(code);\n    }\n\n    // Check whether this trailing punctuation marker is optionally\n    // followed by more trailing markers, and then followed\n    // by an end.\n    if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n      return effects.check(trail, ok, pathAtPunctuation)(code);\n    }\n    if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n      return ok(code);\n    }\n    effects.consume(code);\n    return pathInside;\n  }\n\n  /**\n   * In path, at potential trailing punctuation, that was not trailing.\n   *\n   * ```markdown\n   * > | https://example.com/a\"b\n   *                          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function pathAtPunctuation(code) {\n    // Count closing parens.\n    if (code === 41) {\n      sizeClose++;\n    }\n    effects.consume(code);\n    return pathInside;\n  }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n *                        ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n  return trail;\n\n  /**\n   * In trail of domain or path.\n   *\n   * ```markdown\n   * > | https://example.com\").\n   *                        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trail(code) {\n    // Regular trailing punctuation.\n    if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n      effects.consume(code);\n      return trail;\n    }\n\n    // `&` followed by one or more alphabeticals and then a `;`, is\n    // as a whole considered as trailing punctuation.\n    // In all other cases, it is considered as continuation of the URL.\n    if (code === 38) {\n      effects.consume(code);\n      return trailCharacterReferenceStart;\n    }\n\n    // Needed because we allow literals after `[`, as we fix:\n    // <https://github.com/github/cmark-gfm/issues/278>.\n    // Check that it is not followed by `(` or `[`.\n    if (code === 93) {\n      effects.consume(code);\n      return trailBracketAfter;\n    }\n    if (\n    // `<` is an end.\n    code === 60 ||\n    // So is whitespace.\n    code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n      return ok(code);\n    }\n    return nok(code);\n  }\n\n  /**\n   * In trail, after `]`.\n   *\n   * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n   * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n   *\n   * ```markdown\n   * > | https://example.com](\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailBracketAfter(code) {\n    // Whitespace or something that could start a resource or reference is the end.\n    // Switch back to trail otherwise.\n    if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n      return ok(code);\n    }\n    return trail(code);\n  }\n\n  /**\n   * In character-reference like trail, after `&`.\n   *\n   * ```markdown\n   * > | https://example.com&amp;).\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailCharacterReferenceStart(code) {\n    // When non-alpha, it’s not a trail.\n    return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n  }\n\n  /**\n   * In character-reference like trail.\n   *\n   * ```markdown\n   * > | https://example.com&amp;).\n   *                         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function trailCharacterReferenceInside(code) {\n    // Switch back to trail if this is well-formed.\n    if (code === 59) {\n      effects.consume(code);\n      return trail;\n    }\n    if (asciiAlpha(code)) {\n      effects.consume(code);\n      return trailCharacterReferenceInside;\n    }\n\n    // It’s not a trail.\n    return nok(code);\n  }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n *                        ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n  return start;\n\n  /**\n   * Dot.\n   *\n   * ```markdown\n   * > | contact@example.org.\n   *                    ^   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    // Must be dot.\n    effects.consume(code);\n    return after;\n  }\n\n  /**\n   * After dot.\n   *\n   * ```markdown\n   * > | contact@example.org.\n   *                     ^   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // Not a trail if alphanumeric.\n    return asciiAlphanumeric(code) ? nok(code) : ok(code);\n  }\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n  return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n  return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n  // Do not allow a slash “inside” atext.\n  // The reference code is a bit weird, but that’s what it results in.\n  // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n  // Other than slash, every preceding character is allowed.\n  return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n  return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n  let index = events.length;\n  let result = false;\n  while (index--) {\n    const token = events[index][1];\n    if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n      result = true;\n      break;\n    }\n\n    // If we’ve seen this token, and it was marked as not having any unbalanced\n    // bracket before it, we can exit.\n    if (token._gfmAutolinkLiteralWalkedInto) {\n      result = false;\n      break;\n    }\n  }\n  if (events.length > 0 && !result) {\n    // Mark the last token as “walked into” w/o finding\n    // anything.\n    events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n  }\n  return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n  tokenize: tokenizeIndent,\n  partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to\n *   enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n  /** @type {Extension} */\n  return {\n    document: {\n      [91]: {\n        name: 'gfmFootnoteDefinition',\n        tokenize: tokenizeDefinitionStart,\n        continuation: {\n          tokenize: tokenizeDefinitionContinuation\n        },\n        exit: gfmFootnoteDefinitionEnd\n      }\n    },\n    text: {\n      [91]: {\n        name: 'gfmFootnoteCall',\n        tokenize: tokenizeGfmFootnoteCall\n      },\n      [93]: {\n        name: 'gfmPotentialFootnoteCall',\n        add: 'after',\n        tokenize: tokenizePotentialGfmFootnoteCall,\n        resolveTo: resolveToPotentialGfmFootnoteCall\n      }\n    }\n  };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n  const self = this;\n  let index = self.events.length;\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n  /** @type {Token} */\n  let labelStart;\n\n  // Find an opening.\n  while (index--) {\n    const token = self.events[index][1];\n    if (token.type === \"labelImage\") {\n      labelStart = token;\n      break;\n    }\n\n    // Exit if we’ve walked far enough.\n    if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n      break;\n    }\n  }\n  return start;\n\n  /**\n   * @type {State}\n   */\n  function start(code) {\n    if (!labelStart || !labelStart._balanced) {\n      return nok(code);\n    }\n    const id = normalizeIdentifier(self.sliceSerialize({\n      start: labelStart.end,\n      end: self.now()\n    }));\n    if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n      return nok(code);\n    }\n    effects.enter('gfmFootnoteCallLabelMarker');\n    effects.consume(code);\n    effects.exit('gfmFootnoteCallLabelMarker');\n    return ok(code);\n  }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n  let index = events.length;\n  /** @type {Token | undefined} */\n  let labelStart;\n\n  // Find an opening.\n  while (index--) {\n    if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n      labelStart = events[index][1];\n      break;\n    }\n  }\n  // Change the `labelImageMarker` to a `data`.\n  events[index + 1][1].type = \"data\";\n  events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n  // The whole (without `!`):\n  /** @type {Token} */\n  const call = {\n    type: 'gfmFootnoteCall',\n    start: Object.assign({}, events[index + 3][1].start),\n    end: Object.assign({}, events[events.length - 1][1].end)\n  };\n  // The `^` marker\n  /** @type {Token} */\n  const marker = {\n    type: 'gfmFootnoteCallMarker',\n    start: Object.assign({}, events[index + 3][1].end),\n    end: Object.assign({}, events[index + 3][1].end)\n  };\n  // Increment the end 1 character.\n  marker.end.column++;\n  marker.end.offset++;\n  marker.end._bufferIndex++;\n  /** @type {Token} */\n  const string = {\n    type: 'gfmFootnoteCallString',\n    start: Object.assign({}, marker.end),\n    end: Object.assign({}, events[events.length - 1][1].start)\n  };\n  /** @type {Token} */\n  const chunk = {\n    type: \"chunkString\",\n    contentType: 'string',\n    start: Object.assign({}, string.start),\n    end: Object.assign({}, string.end)\n  };\n\n  /** @type {Array<Event>} */\n  const replacement = [\n  // Take the `labelImageMarker` (now `data`, the `!`)\n  events[index + 1], events[index + 2], ['enter', call, context],\n  // The `[`\n  events[index + 3], events[index + 4],\n  // The `^`.\n  ['enter', marker, context], ['exit', marker, context],\n  // Everything in between.\n  ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n  // The ending (`]`, properly parsed and labelled).\n  events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n  events.splice(index, events.length - index + 1, ...replacement);\n  return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n  const self = this;\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n  let size = 0;\n  /** @type {boolean} */\n  let data;\n\n  // Note: the implementation of `markdown-rs` is different, because it houses\n  // core *and* extensions in one project.\n  // Therefore, it can include footnote logic inside `label-end`.\n  // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n  // needed for labels.\n  return start;\n\n  /**\n   * Start of footnote label.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter('gfmFootnoteCall');\n    effects.enter('gfmFootnoteCallLabelMarker');\n    effects.consume(code);\n    effects.exit('gfmFootnoteCallLabelMarker');\n    return callStart;\n  }\n\n  /**\n   * After `[`, at `^`.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callStart(code) {\n    if (code !== 94) return nok(code);\n    effects.enter('gfmFootnoteCallMarker');\n    effects.consume(code);\n    effects.exit('gfmFootnoteCallMarker');\n    effects.enter('gfmFootnoteCallString');\n    effects.enter('chunkString').contentType = 'string';\n    return callData;\n  }\n\n  /**\n   * In label.\n   *\n   * ```markdown\n   * > | a [^b] c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callData(code) {\n    if (\n    // Too long.\n    size > 999 ||\n    // Closing brace with nothing.\n    code === 93 && !data ||\n    // Space or tab is not supported by GFM for some reason.\n    // `\\n` and `[` not being supported makes sense.\n    code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n      return nok(code);\n    }\n    if (code === 93) {\n      effects.exit('chunkString');\n      const token = effects.exit('gfmFootnoteCallString');\n      if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n        return nok(code);\n      }\n      effects.enter('gfmFootnoteCallLabelMarker');\n      effects.consume(code);\n      effects.exit('gfmFootnoteCallLabelMarker');\n      effects.exit('gfmFootnoteCall');\n      return ok;\n    }\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true;\n    }\n    size++;\n    effects.consume(code);\n    return code === 92 ? callEscape : callData;\n  }\n\n  /**\n   * On character after escape.\n   *\n   * ```markdown\n   * > | a [^b\\c] d\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function callEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code);\n      size++;\n      return callData;\n    }\n    return callData(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n  const self = this;\n  const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n  /** @type {string} */\n  let identifier;\n  let size = 0;\n  /** @type {boolean | undefined} */\n  let data;\n  return start;\n\n  /**\n   * Start of GFM footnote definition.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    effects.enter('gfmFootnoteDefinition')._container = true;\n    effects.enter('gfmFootnoteDefinitionLabel');\n    effects.enter('gfmFootnoteDefinitionLabelMarker');\n    effects.consume(code);\n    effects.exit('gfmFootnoteDefinitionLabelMarker');\n    return labelAtMarker;\n  }\n\n  /**\n   * In label, at caret.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAtMarker(code) {\n    if (code === 94) {\n      effects.enter('gfmFootnoteDefinitionMarker');\n      effects.consume(code);\n      effects.exit('gfmFootnoteDefinitionMarker');\n      effects.enter('gfmFootnoteDefinitionLabelString');\n      effects.enter('chunkString').contentType = 'string';\n      return labelInside;\n    }\n    return nok(code);\n  }\n\n  /**\n   * In label.\n   *\n   * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n   * > definition labels.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelInside(code) {\n    if (\n    // Too long.\n    size > 999 ||\n    // Closing brace with nothing.\n    code === 93 && !data ||\n    // Space or tab is not supported by GFM for some reason.\n    // `\\n` and `[` not being supported makes sense.\n    code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n      return nok(code);\n    }\n    if (code === 93) {\n      effects.exit('chunkString');\n      const token = effects.exit('gfmFootnoteDefinitionLabelString');\n      identifier = normalizeIdentifier(self.sliceSerialize(token));\n      effects.enter('gfmFootnoteDefinitionLabelMarker');\n      effects.consume(code);\n      effects.exit('gfmFootnoteDefinitionLabelMarker');\n      effects.exit('gfmFootnoteDefinitionLabel');\n      return labelAfter;\n    }\n    if (!markdownLineEndingOrSpace(code)) {\n      data = true;\n    }\n    size++;\n    effects.consume(code);\n    return code === 92 ? labelEscape : labelInside;\n  }\n\n  /**\n   * After `\\`, at a special character.\n   *\n   * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n   * > <https://github.com/github/cmark-gfm/issues/240>\n   *\n   * ```markdown\n   * > | [^a\\*b]: c\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelEscape(code) {\n    if (code === 91 || code === 92 || code === 93) {\n      effects.consume(code);\n      size++;\n      return labelInside;\n    }\n    return labelInside(code);\n  }\n\n  /**\n   * After definition label.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function labelAfter(code) {\n    if (code === 58) {\n      effects.enter('definitionMarker');\n      effects.consume(code);\n      effects.exit('definitionMarker');\n      if (!defined.includes(identifier)) {\n        defined.push(identifier);\n      }\n\n      // Any whitespace after the marker is eaten, forming indented code\n      // is not possible.\n      // No space is also fine, just like a block quote marker.\n      return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n    }\n    return nok(code);\n  }\n\n  /**\n   * After definition prefix.\n   *\n   * ```markdown\n   * > | [^a]: b\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function whitespaceAfter(code) {\n    // `markdown-rs` has a wrapping token for the prefix that is closed here.\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n  /// Start of footnote definition continuation.\n  ///\n  /// ```markdown\n  ///   | [^a]: b\n  /// > |     c\n  ///     ^\n  /// ```\n  //\n  // Either a blank line, which is okay, or an indented thing.\n  return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n  effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n  const self = this;\n  return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n  /**\n   * @type {State}\n   */\n  function afterPrefix(code) {\n    const tail = self.events[self.events.length - 1];\n    return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n  }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n *   Configuration.\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions`, to\n *   enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n  const options_ = options || {};\n  let single = options_.singleTilde;\n  const tokenizer = {\n    name: 'strikethrough',\n    tokenize: tokenizeStrikethrough,\n    resolveAll: resolveAllStrikethrough\n  };\n  if (single === null || single === undefined) {\n    single = true;\n  }\n  return {\n    text: {\n      [126]: tokenizer\n    },\n    insideSpan: {\n      null: [tokenizer]\n    },\n    attentionMarkers: {\n      null: [126]\n    }\n  };\n\n  /**\n   * Take events and resolve strikethrough.\n   *\n   * @type {Resolver}\n   */\n  function resolveAllStrikethrough(events, context) {\n    let index = -1;\n\n    // Walk through all events.\n    while (++index < events.length) {\n      // Find a token that can close.\n      if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n        let open = index;\n\n        // Now walk back to find an opener.\n        while (open--) {\n          // Find a token that can open the closer.\n          if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n          // If the sizes are the same:\n          events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n            events[index][1].type = 'strikethroughSequence';\n            events[open][1].type = 'strikethroughSequence';\n\n            /** @type {Token} */\n            const strikethrough = {\n              type: 'strikethrough',\n              start: Object.assign({}, events[open][1].start),\n              end: Object.assign({}, events[index][1].end)\n            };\n\n            /** @type {Token} */\n            const text = {\n              type: 'strikethroughText',\n              start: Object.assign({}, events[open][1].end),\n              end: Object.assign({}, events[index][1].start)\n            };\n\n            // Opening.\n            /** @type {Array<Event>} */\n            const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n            const insideSpan = context.parser.constructs.insideSpan.null;\n            if (insideSpan) {\n              // Between.\n              splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n            }\n\n            // Closing.\n            splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n            splice(events, open - 1, index - open + 3, nextEvents);\n            index = open + nextEvents.length - 2;\n            break;\n          }\n        }\n      }\n    }\n    index = -1;\n    while (++index < events.length) {\n      if (events[index][1].type === 'strikethroughSequenceTemporary') {\n        events[index][1].type = \"data\";\n      }\n    }\n    return events;\n  }\n\n  /**\n   * @this {TokenizeContext}\n   * @type {Tokenizer}\n   */\n  function tokenizeStrikethrough(effects, ok, nok) {\n    const previous = this.previous;\n    const events = this.events;\n    let size = 0;\n    return start;\n\n    /** @type {State} */\n    function start(code) {\n      if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n        return nok(code);\n      }\n      effects.enter('strikethroughSequenceTemporary');\n      return more(code);\n    }\n\n    /** @type {State} */\n    function more(code) {\n      const before = classifyCharacter(previous);\n      if (code === 126) {\n        // If this is the third marker, exit.\n        if (size > 1) return nok(code);\n        effects.consume(code);\n        size++;\n        return more;\n      }\n      if (size < 2 && !single) return nok(code);\n      const token = effects.exit('strikethroughSequenceTemporary');\n      const after = classifyCharacter(code);\n      token._open = !after || after === 2 && Boolean(before);\n      token._close = !before || before === 2 && Boolean(after);\n      return ok(code);\n    }\n  }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n  /**\n   * Create a new edit map.\n   */\n  constructor() {\n    /**\n     * Record of changes.\n     *\n     * @type {Array<Change>}\n     */\n    this.map = [];\n  }\n\n  /**\n   * Create an edit: a remove and/or add at a certain place.\n   *\n   * @param {number} index\n   * @param {number} remove\n   * @param {Array<Event>} add\n   * @returns {undefined}\n   */\n  add(index, remove, add) {\n    addImplementation(this, index, remove, add);\n  }\n\n  // To do: add this when moving to `micromark`.\n  // /**\n  //  * Create an edit: but insert `add` before existing additions.\n  //  *\n  //  * @param {number} index\n  //  * @param {number} remove\n  //  * @param {Array<Event>} add\n  //  * @returns {undefined}\n  //  */\n  // addBefore(index, remove, add) {\n  //   addImplementation(this, index, remove, add, true)\n  // }\n\n  /**\n   * Done, change the events.\n   *\n   * @param {Array<Event>} events\n   * @returns {undefined}\n   */\n  consume(events) {\n    this.map.sort(function (a, b) {\n      return a[0] - b[0];\n    });\n\n    /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n    if (this.map.length === 0) {\n      return;\n    }\n\n    // To do: if links are added in events, like they are in `markdown-rs`,\n    // this is needed.\n    // // Calculate jumps: where items in the current list move to.\n    // /** @type {Array<Jump>} */\n    // const jumps = []\n    // let index = 0\n    // let addAcc = 0\n    // let removeAcc = 0\n    // while (index < this.map.length) {\n    //   const [at, remove, add] = this.map[index]\n    //   removeAcc += remove\n    //   addAcc += add.length\n    //   jumps.push([at, removeAcc, addAcc])\n    //   index += 1\n    // }\n    //\n    // . shiftLinks(events, jumps)\n\n    let index = this.map.length;\n    /** @type {Array<Array<Event>>} */\n    const vecs = [];\n    while (index > 0) {\n      index -= 1;\n      vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n      // Truncate rest.\n      events.length = this.map[index][0];\n    }\n    vecs.push(events.slice());\n    events.length = 0;\n    let slice = vecs.pop();\n    while (slice) {\n      for (const element of slice) {\n        events.push(element);\n      }\n      slice = vecs.pop();\n    }\n\n    // Truncate everything.\n    this.map.length = 0;\n  }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n  let index = 0;\n\n  /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n  if (remove === 0 && add.length === 0) {\n    return;\n  }\n  while (index < editMap.map.length) {\n    if (editMap.map[index][0] === at) {\n      editMap.map[index][1] += remove;\n\n      // To do: before not used by tables, use when moving to micromark.\n      // if (before) {\n      //   add.push(...editMap.map[index][2])\n      //   editMap.map[index][2] = add\n      // } else {\n      editMap.map[index][2].push(...add);\n      // }\n\n      return;\n    }\n    index += 1;\n  }\n  editMap.map.push([at, remove, add]);\n}\n\n// /**\n//  * Shift `previous` and `next` links according to `jumps`.\n//  *\n//  * This fixes links in case there are events removed or added between them.\n//  *\n//  * @param {Array<Event>} events\n//  * @param {Array<Jump>} jumps\n//  */\n// function shiftLinks(events, jumps) {\n//   let jumpIndex = 0\n//   let index = 0\n//   let add = 0\n//   let rm = 0\n\n//   while (index < events.length) {\n//     const rmCurr = rm\n\n//     while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n//       add = jumps[jumpIndex][2]\n//       rm = jumps[jumpIndex][1]\n//       jumpIndex += 1\n//     }\n\n//     // Ignore items that will be removed.\n//     if (rm > rmCurr) {\n//       index += rm - rmCurr\n//     } else {\n//       // ?\n//       // if let Some(link) = &events[index].link {\n//       //     if let Some(next) = link.next {\n//       //         events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n//       //         while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n//       //             add = jumps[jumpIndex].2;\n//       //             rm = jumps[jumpIndex].1;\n//       //             jumpIndex += 1;\n//       //         }\n//       //         events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n//       //         index = next;\n//       //         continue;\n//       //     }\n//       // }\n//       index += 1\n//     }\n//   }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n *   List of events.\n * @param {number} index\n *   Table enter event.\n * @returns {Array<Align>}\n *   List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n  let inDelimiterRow = false;\n  /** @type {Array<Align>} */\n  const align = [];\n  while (index < events.length) {\n    const event = events[index];\n    if (inDelimiterRow) {\n      if (event[0] === 'enter') {\n        // Start of alignment value: set a new column.\n        // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n        if (event[1].type === 'tableContent') {\n          align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n        }\n      }\n      // Exits:\n      // End of alignment value: change the column.\n      // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n      else if (event[1].type === 'tableContent') {\n        if (events[index - 1][1].type === 'tableDelimiterMarker') {\n          const alignIndex = align.length - 1;\n          align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n        }\n      }\n      // Done!\n      else if (event[1].type === 'tableDelimiterRow') {\n        break;\n      }\n    } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n      inDelimiterRow = true;\n    }\n    index += 1;\n  }\n  return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n *   Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n *   Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   table syntax.\n */\nexport function gfmTable() {\n  return {\n    flow: {\n      null: {\n        name: 'table',\n        tokenize: tokenizeTable,\n        resolveAll: resolveTable\n      }\n    }\n  };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n  const self = this;\n  let size = 0;\n  let sizeB = 0;\n  /** @type {boolean | undefined} */\n  let seen;\n  return start;\n\n  /**\n   * Start of a GFM table.\n   *\n   * If there is a valid table row or table head before, then we try to parse\n   * another row.\n   * Otherwise, we try to parse a head.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   * > | | b |\n   *     ^\n   * ```\n   * @type {State}\n   */\n  function start(code) {\n    let index = self.events.length - 1;\n    while (index > -1) {\n      const type = self.events[index][1].type;\n      if (type === \"lineEnding\" ||\n      // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n      type === \"linePrefix\") index--;else break;\n    }\n    const tail = index > -1 ? self.events[index][1].type : null;\n    const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n    // Don’t allow lazy body rows.\n    if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n      return nok(code);\n    }\n    return next(code);\n  }\n\n  /**\n   * Before table head row.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowBefore(code) {\n    effects.enter('tableHead');\n    effects.enter('tableRow');\n    return headRowStart(code);\n  }\n\n  /**\n   * Before table head row, after whitespace.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowStart(code) {\n    if (code === 124) {\n      return headRowBreak(code);\n    }\n\n    // To do: micromark-js should let us parse our own whitespace in extensions,\n    // like `markdown-rs`:\n    //\n    // ```js\n    // // 4+ spaces.\n    // if (markdownSpace(code)) {\n    //   return nok(code)\n    // }\n    // ```\n\n    seen = true;\n    // Count the first character, that isn’t a pipe, double.\n    sizeB += 1;\n    return headRowBreak(code);\n  }\n\n  /**\n   * At break in table head row.\n   *\n   * ```markdown\n   * > | | a |\n   *     ^\n   *       ^\n   *         ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowBreak(code) {\n    if (code === null) {\n      // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n      return nok(code);\n    }\n    if (markdownLineEnding(code)) {\n      // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n      if (sizeB > 1) {\n        sizeB = 0;\n        // To do: check if this works.\n        // Feel free to interrupt:\n        self.interrupt = true;\n        effects.exit('tableRow');\n        effects.enter(\"lineEnding\");\n        effects.consume(code);\n        effects.exit(\"lineEnding\");\n        return headDelimiterStart;\n      }\n\n      // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n      return nok(code);\n    }\n    if (markdownSpace(code)) {\n      // To do: check if this is fine.\n      // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n      // State::Retry(space_or_tab(tokenizer))\n      return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n    }\n    sizeB += 1;\n    if (seen) {\n      seen = false;\n      // Header cell count.\n      size += 1;\n    }\n    if (code === 124) {\n      effects.enter('tableCellDivider');\n      effects.consume(code);\n      effects.exit('tableCellDivider');\n      // Whether a delimiter was seen.\n      seen = true;\n      return headRowBreak;\n    }\n\n    // Anything else is cell data.\n    effects.enter(\"data\");\n    return headRowData(code);\n  }\n\n  /**\n   * In table head row data.\n   *\n   * ```markdown\n   * > | | a |\n   *       ^\n   *   | | - |\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowData(code) {\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"data\");\n      return headRowBreak(code);\n    }\n    effects.consume(code);\n    return code === 92 ? headRowEscape : headRowData;\n  }\n\n  /**\n   * In table head row escape.\n   *\n   * ```markdown\n   * > | | a\\-b |\n   *         ^\n   *   | | ---- |\n   *   | | c    |\n   * ```\n   *\n   * @type {State}\n   */\n  function headRowEscape(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code);\n      return headRowData;\n    }\n    return headRowData(code);\n  }\n\n  /**\n   * Before delimiter row.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *     ^\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterStart(code) {\n    // Reset `interrupt`.\n    self.interrupt = false;\n\n    // Note: in `markdown-rs`, we need to handle piercing here too.\n    if (self.parser.lazy[self.now().line]) {\n      return nok(code);\n    }\n    effects.enter('tableDelimiterRow');\n    // Track if we’ve seen a `:` or `|`.\n    seen = false;\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n    }\n    return headDelimiterBefore(code);\n  }\n\n  /**\n   * Before delimiter row, after optional whitespace.\n   *\n   * Reused when a `|` is found later, to parse another cell.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *     ^\n   *   | | b |\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterBefore(code) {\n    if (code === 45 || code === 58) {\n      return headDelimiterValueBefore(code);\n    }\n    if (code === 124) {\n      seen = true;\n      // If we start with a pipe, we open a cell marker.\n      effects.enter('tableCellDivider');\n      effects.consume(code);\n      effects.exit('tableCellDivider');\n      return headDelimiterCellBefore;\n    }\n\n    // More whitespace / empty row not allowed at start.\n    return headDelimiterNok(code);\n  }\n\n  /**\n   * After `|`, before delimiter cell.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *      ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterCellBefore(code) {\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n    }\n    return headDelimiterValueBefore(code);\n  }\n\n  /**\n   * Before delimiter cell value.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterValueBefore(code) {\n    // Align: left.\n    if (code === 58) {\n      sizeB += 1;\n      seen = true;\n      effects.enter('tableDelimiterMarker');\n      effects.consume(code);\n      effects.exit('tableDelimiterMarker');\n      return headDelimiterLeftAlignmentAfter;\n    }\n\n    // Align: none.\n    if (code === 45) {\n      sizeB += 1;\n      // To do: seems weird that this *isn’t* left aligned, but that state is used?\n      return headDelimiterLeftAlignmentAfter(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      return headDelimiterCellAfter(code);\n    }\n    return headDelimiterNok(code);\n  }\n\n  /**\n   * After delimiter cell left alignment marker.\n   *\n   * ```markdown\n   *   | | a  |\n   * > | | :- |\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterLeftAlignmentAfter(code) {\n    if (code === 45) {\n      effects.enter('tableDelimiterFiller');\n      return headDelimiterFiller(code);\n    }\n\n    // Anything else is not ok after the left-align colon.\n    return headDelimiterNok(code);\n  }\n\n  /**\n   * In delimiter cell filler.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | - |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterFiller(code) {\n    if (code === 45) {\n      effects.consume(code);\n      return headDelimiterFiller;\n    }\n\n    // Align is `center` if it was `left`, `right` otherwise.\n    if (code === 58) {\n      seen = true;\n      effects.exit('tableDelimiterFiller');\n      effects.enter('tableDelimiterMarker');\n      effects.consume(code);\n      effects.exit('tableDelimiterMarker');\n      return headDelimiterRightAlignmentAfter;\n    }\n    effects.exit('tableDelimiterFiller');\n    return headDelimiterRightAlignmentAfter(code);\n  }\n\n  /**\n   * After delimiter cell right alignment marker.\n   *\n   * ```markdown\n   *   | |  a |\n   * > | | -: |\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterRightAlignmentAfter(code) {\n    if (markdownSpace(code)) {\n      return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n    }\n    return headDelimiterCellAfter(code);\n  }\n\n  /**\n   * After delimiter cell.\n   *\n   * ```markdown\n   *   | |  a |\n   * > | | -: |\n   *          ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterCellAfter(code) {\n    if (code === 124) {\n      return headDelimiterBefore(code);\n    }\n    if (code === null || markdownLineEnding(code)) {\n      // Exit when:\n      // * there was no `:` or `|` at all (it’s a thematic break or setext\n      //   underline instead)\n      // * the header cell count is not the delimiter cell count\n      if (!seen || size !== sizeB) {\n        return headDelimiterNok(code);\n      }\n\n      // Note: in markdown-rs`, a reset is needed here.\n      effects.exit('tableDelimiterRow');\n      effects.exit('tableHead');\n      // To do: in `markdown-rs`, resolvers need to be registered manually.\n      // effects.register_resolver(ResolveName::GfmTable)\n      return ok(code);\n    }\n    return headDelimiterNok(code);\n  }\n\n  /**\n   * In delimiter row, at a disallowed byte.\n   *\n   * ```markdown\n   *   | | a |\n   * > | | x |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function headDelimiterNok(code) {\n    // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n    return nok(code);\n  }\n\n  /**\n   * Before table body row.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowStart(code) {\n    // Note: in `markdown-rs` we need to manually take care of a prefix,\n    // but in `micromark-js` that is done for us, so if we’re here, we’re\n    // never at whitespace.\n    effects.enter('tableRow');\n    return bodyRowBreak(code);\n  }\n\n  /**\n   * At break in table body row.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *     ^\n   *       ^\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowBreak(code) {\n    if (code === 124) {\n      effects.enter('tableCellDivider');\n      effects.consume(code);\n      effects.exit('tableCellDivider');\n      return bodyRowBreak;\n    }\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit('tableRow');\n      return ok(code);\n    }\n    if (markdownSpace(code)) {\n      return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n    }\n\n    // Anything else is cell content.\n    effects.enter(\"data\");\n    return bodyRowData(code);\n  }\n\n  /**\n   * In table body row data.\n   *\n   * ```markdown\n   *   | | a |\n   *   | | - |\n   * > | | b |\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowData(code) {\n    if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n      effects.exit(\"data\");\n      return bodyRowBreak(code);\n    }\n    effects.consume(code);\n    return code === 92 ? bodyRowEscape : bodyRowData;\n  }\n\n  /**\n   * In table body row escape.\n   *\n   * ```markdown\n   *   | | a    |\n   *   | | ---- |\n   * > | | b\\-c |\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function bodyRowEscape(code) {\n    if (code === 92 || code === 124) {\n      effects.consume(code);\n      return bodyRowData;\n    }\n    return bodyRowData(code);\n  }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n  let index = -1;\n  let inFirstCellAwaitingPipe = true;\n  /** @type {RowKind} */\n  let rowKind = 0;\n  /** @type {Range} */\n  let lastCell = [0, 0, 0, 0];\n  /** @type {Range} */\n  let cell = [0, 0, 0, 0];\n  let afterHeadAwaitingFirstBodyRow = false;\n  let lastTableEnd = 0;\n  /** @type {Token | undefined} */\n  let currentTable;\n  /** @type {Token | undefined} */\n  let currentBody;\n  /** @type {Token | undefined} */\n  let currentCell;\n  const map = new EditMap();\n  while (++index < events.length) {\n    const event = events[index];\n    const token = event[1];\n    if (event[0] === 'enter') {\n      // Start of head.\n      if (token.type === 'tableHead') {\n        afterHeadAwaitingFirstBodyRow = false;\n\n        // Inject previous (body end and) table end.\n        if (lastTableEnd !== 0) {\n          flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n          currentBody = undefined;\n          lastTableEnd = 0;\n        }\n\n        // Inject table start.\n        currentTable = {\n          type: 'table',\n          start: Object.assign({}, token.start),\n          // Note: correct end is set later.\n          end: Object.assign({}, token.end)\n        };\n        map.add(index, 0, [['enter', currentTable, context]]);\n      } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n        inFirstCellAwaitingPipe = true;\n        currentCell = undefined;\n        lastCell = [0, 0, 0, 0];\n        cell = [0, index + 1, 0, 0];\n\n        // Inject table body start.\n        if (afterHeadAwaitingFirstBodyRow) {\n          afterHeadAwaitingFirstBodyRow = false;\n          currentBody = {\n            type: 'tableBody',\n            start: Object.assign({}, token.start),\n            // Note: correct end is set later.\n            end: Object.assign({}, token.end)\n          };\n          map.add(index, 0, [['enter', currentBody, context]]);\n        }\n        rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n      }\n      // Cell data.\n      else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n        inFirstCellAwaitingPipe = false;\n\n        // First value in cell.\n        if (cell[2] === 0) {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1];\n            currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n            lastCell = [0, 0, 0, 0];\n          }\n          cell[2] = index;\n        }\n      } else if (token.type === 'tableCellDivider') {\n        if (inFirstCellAwaitingPipe) {\n          inFirstCellAwaitingPipe = false;\n        } else {\n          if (lastCell[1] !== 0) {\n            cell[0] = cell[1];\n            currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n          }\n          lastCell = cell;\n          cell = [lastCell[1], index, 0, 0];\n        }\n      }\n    }\n    // Exit events.\n    else if (token.type === 'tableHead') {\n      afterHeadAwaitingFirstBodyRow = true;\n      lastTableEnd = index;\n    } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n      lastTableEnd = index;\n      if (lastCell[1] !== 0) {\n        cell[0] = cell[1];\n        currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n      } else if (cell[1] !== 0) {\n        currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n      }\n      rowKind = 0;\n    } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n      cell[3] = index;\n    }\n  }\n  if (lastTableEnd !== 0) {\n    flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n  }\n  map.consume(context.events);\n\n  // To do: move this into `html`, when events are exposed there.\n  // That’s what `markdown-rs` does.\n  // That needs updates to `mdast-util-gfm-table`.\n  index = -1;\n  while (++index < context.events.length) {\n    const event = context.events[index];\n    if (event[0] === 'enter' && event[1].type === 'table') {\n      event[1]._align = gfmTableAlign(context.events, index);\n    }\n  }\n  return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n  // `markdown-rs` uses:\n  // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n  const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n  // `markdown-rs` uses:\n  // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n  const valueName = 'tableContent';\n\n  // Insert an exit for the previous cell, if there is one.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //          ^-- exit\n  //           ^^^^-- this cell\n  // ```\n  if (range[0] !== 0) {\n    previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n    map.add(range[0], 0, [['exit', previousCell, context]]);\n  }\n\n  // Insert enter of this cell.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //           ^-- enter\n  //           ^^^^-- this cell\n  // ```\n  const now = getPoint(context.events, range[1]);\n  previousCell = {\n    type: groupName,\n    start: Object.assign({}, now),\n    // Note: correct end is set later.\n    end: Object.assign({}, now)\n  };\n  map.add(range[1], 0, [['enter', previousCell, context]]);\n\n  // Insert text start at first data start and end at last data end, and\n  // remove events between.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //            ^-- enter\n  //             ^-- exit\n  //           ^^^^-- this cell\n  // ```\n  if (range[2] !== 0) {\n    const relatedStart = getPoint(context.events, range[2]);\n    const relatedEnd = getPoint(context.events, range[3]);\n    /** @type {Token} */\n    const valueToken = {\n      type: valueName,\n      start: Object.assign({}, relatedStart),\n      end: Object.assign({}, relatedEnd)\n    };\n    map.add(range[2], 0, [['enter', valueToken, context]]);\n    if (rowKind !== 2) {\n      // Fix positional info on remaining events\n      const start = context.events[range[2]];\n      const end = context.events[range[3]];\n      start[1].end = Object.assign({}, end[1].end);\n      start[1].type = \"chunkText\";\n      start[1].contentType = \"text\";\n\n      // Remove if needed.\n      if (range[3] > range[2] + 1) {\n        const a = range[2] + 1;\n        const b = range[3] - range[2] - 1;\n        map.add(a, b, []);\n      }\n    }\n    map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n  }\n\n  // Insert an exit for the last cell, if at the row end.\n  //\n  // ```markdown\n  // > | | aa | bb | cc |\n  //                    ^-- exit\n  //               ^^^^^^-- this cell (the last one contains two “between” parts)\n  // ```\n  if (rowEnd !== undefined) {\n    previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n    map.add(rowEnd, 0, [['exit', previousCell, context]]);\n    previousCell = undefined;\n  }\n  return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n  /** @type {Array<Event>} */\n  const exits = [];\n  const related = getPoint(context.events, index);\n  if (tableBody) {\n    tableBody.end = Object.assign({}, related);\n    exits.push(['exit', tableBody, context]);\n  }\n  table.end = Object.assign({}, related);\n  exits.push(['exit', table, context]);\n  map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */\nfunction getPoint(events, index) {\n  const event = events[index];\n  const side = event[0] === 'enter' ? 'start' : 'end';\n  return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n  name: 'tasklistCheck',\n  tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `htmlExtensions` to\n *   support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n  return {\n    text: {\n      [91]: tasklistCheck\n    }\n  };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n  const self = this;\n  return open;\n\n  /**\n   * At start of task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *       ^\n   * ```\n   *\n   * @type {State}\n   */\n  function open(code) {\n    if (\n    // Exit if there’s stuff before.\n    self.previous !== null ||\n    // Exit if not in the first content that is the first child of a list\n    // item.\n    !self._gfmTasklistFirstContentOfListItem) {\n      return nok(code);\n    }\n    effects.enter('taskListCheck');\n    effects.enter('taskListCheckMarker');\n    effects.consume(code);\n    effects.exit('taskListCheckMarker');\n    return inside;\n  }\n\n  /**\n   * In task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *        ^\n   * ```\n   *\n   * @type {State}\n   */\n  function inside(code) {\n    // Currently we match how GH works in files.\n    // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n    // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n    if (markdownLineEndingOrSpace(code)) {\n      effects.enter('taskListCheckValueUnchecked');\n      effects.consume(code);\n      effects.exit('taskListCheckValueUnchecked');\n      return close;\n    }\n    if (code === 88 || code === 120) {\n      effects.enter('taskListCheckValueChecked');\n      effects.consume(code);\n      effects.exit('taskListCheckValueChecked');\n      return close;\n    }\n    return nok(code);\n  }\n\n  /**\n   * At close of task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *         ^\n   * ```\n   *\n   * @type {State}\n   */\n  function close(code) {\n    if (code === 93) {\n      effects.enter('taskListCheckMarker');\n      effects.consume(code);\n      effects.exit('taskListCheckMarker');\n      effects.exit('taskListCheck');\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * @type {State}\n   */\n  function after(code) {\n    // EOL in paragraph means there must be something else after it.\n    if (markdownLineEnding(code)) {\n      return ok(code);\n    }\n\n    // Space or tab?\n    // Check what comes after.\n    if (markdownSpace(code)) {\n      return effects.check({\n        tokenize: spaceThenNonSpace\n      }, ok, nok)(code);\n    }\n\n    // EOF, or non-whitespace, both wrong.\n    return nok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n  return factorySpace(effects, after, \"whitespace\");\n\n  /**\n   * After whitespace, after task list item check.\n   *\n   * ```markdown\n   * > | * [x] y.\n   *           ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    // EOF means there was nothing, so bad.\n    // EOL means there’s content after it, so good.\n    // Impossible to have more spaces.\n    // Anything else is good.\n    return code === null ? nok(code) : ok(code);\n  }\n}","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n  combineExtensions,\n  combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n  gfmAutolinkLiteral,\n  gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n  gfmStrikethrough,\n  gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n  gfmTaskListItem,\n  gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n *\n *   Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n *   Extension for `micromark` that can be passed in `extensions` to enable GFM\n *   syntax.\n */\nexport function gfm(options) {\n  return combineExtensions([\n    gfmAutolinkLiteral(),\n    gfmFootnote(),\n    gfmStrikethrough(options),\n    gfmTable(),\n    gfmTaskListItem()\n  ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n *   Configuration (optional).\n *\n *   Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n *   Extension for `micromark` that can be passed in `htmlExtensions` to\n *   support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n  return combineHtmlExtensions([\n    gfmAutolinkLiteralHtml(),\n    gfmFootnoteHtml(options),\n    gfmStrikethroughHtml(),\n    gfmTableHtml(),\n    gfmTagfilterHtml(),\n    gfmTaskListItemHtml()\n  ])\n}\n","/**\n * @import {Root} from 'mdast'\n * @import {Options} from 'remark-gfm'\n * @import {} from 'remark-parse'\n * @import {} from 'remark-stringify'\n * @import {Processor} from 'unified'\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n *   Configuration (optional).\n * @returns {undefined}\n *   Nothing.\n */\nexport default function remarkGfm(options) {\n  // @ts-expect-error: TS is wrong about `this`.\n  // eslint-disable-next-line unicorn/no-this-assignment\n  const self = /** @type {Processor<Root>} */ (this)\n  const settings = options || emptyOptions\n  const data = self.data()\n\n  const micromarkExtensions =\n    data.micromarkExtensions || (data.micromarkExtensions = [])\n  const fromMarkdownExtensions =\n    data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n  const toMarkdownExtensions =\n    data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n  micromarkExtensions.push(gfm(settings))\n  fromMarkdownExtensions.push(gfmFromMarkdown())\n  toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\n\n// Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\nfunction powerSetPermutations(arr) {\n  var arrLength = arr.length;\n  if (arrLength === 0 || arrLength === 1) return arr;\n  if (arrLength === 2) {\n    // prettier-ignore\n    return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n  }\n  if (arrLength === 3) {\n    return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n  if (arrLength >= 4) {\n    // Currently does not support more than 4 extra\n    // class names (after `.token` has been removed)\n    return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n  }\n}\nvar classNameCombinations = {};\nfunction getClassNameCombinations(classNames) {\n  if (classNames.length === 0 || classNames.length === 1) return classNames;\n  var key = classNames.join('.');\n  if (!classNameCombinations[key]) {\n    classNameCombinations[key] = powerSetPermutations(classNames);\n  }\n  return classNameCombinations[key];\n}\nexport function createStyleObject(classNames) {\n  var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n  var nonTokenClassNames = classNames.filter(function (className) {\n    return className !== 'token';\n  });\n  var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n  return classNamesCombinations.reduce(function (styleObject, className) {\n    return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n  }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n  return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n  var childrenCount = 0;\n  return function (children) {\n    childrenCount += 1;\n    return children.map(function (child, i) {\n      return createElement({\n        node: child,\n        stylesheet: stylesheet,\n        useInlineStyles: useInlineStyles,\n        key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n      });\n    });\n  };\n}\nexport default function createElement(_ref) {\n  var node = _ref.node,\n    stylesheet = _ref.stylesheet,\n    _ref$style = _ref.style,\n    style = _ref$style === void 0 ? {} : _ref$style,\n    useInlineStyles = _ref.useInlineStyles,\n    key = _ref.key;\n  var properties = node.properties,\n    type = node.type,\n    TagName = node.tagName,\n    value = node.value;\n  if (type === 'text') {\n    return value;\n  } else if (TagName) {\n    var childrenCreator = createChildren(stylesheet, useInlineStyles);\n    var props;\n    if (!useInlineStyles) {\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(properties.className)\n      });\n    } else {\n      var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n        selector.split('.').forEach(function (className) {\n          if (!classes.includes(className)) classes.push(className);\n        });\n        return classes;\n      }, []);\n\n      // For compatibility with older versions of react-syntax-highlighter\n      var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n      var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n        return !allStylesheetSelectors.includes(className);\n      }));\n      props = _objectSpread(_objectSpread({}, properties), {}, {\n        className: createClassNameString(className) || undefined,\n        style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n      });\n    }\n    var children = childrenCreator(node.children);\n    return /*#__PURE__*/React.createElement(TagName, _extends({\n      key: key\n    }, props), children);\n  }\n}","export default (function (astGenerator, language) {\n  var langs = astGenerator.listLanguages();\n  return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\nfunction getNewLines(str) {\n  return str.match(newLineRegex);\n}\nfunction getAllLineNumbers(_ref) {\n  var lines = _ref.lines,\n    startingLineNumber = _ref.startingLineNumber,\n    style = _ref.style;\n  return lines.map(function (_, i) {\n    var number = i + startingLineNumber;\n    return /*#__PURE__*/React.createElement(\"span\", {\n      key: \"line-\".concat(i),\n      className: \"react-syntax-highlighter-line-number\",\n      style: typeof style === 'function' ? style(number) : style\n    }, \"\".concat(number, \"\\n\"));\n  });\n}\nfunction AllLineNumbers(_ref2) {\n  var codeString = _ref2.codeString,\n    codeStyle = _ref2.codeStyle,\n    _ref2$containerStyle = _ref2.containerStyle,\n    containerStyle = _ref2$containerStyle === void 0 ? {\n      \"float\": 'left',\n      paddingRight: '10px'\n    } : _ref2$containerStyle,\n    _ref2$numberStyle = _ref2.numberStyle,\n    numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n    startingLineNumber = _ref2.startingLineNumber;\n  return /*#__PURE__*/React.createElement(\"code\", {\n    style: Object.assign({}, codeStyle, containerStyle)\n  }, getAllLineNumbers({\n    lines: codeString.replace(/\\n$/, '').split('\\n'),\n    style: numberStyle,\n    startingLineNumber: startingLineNumber\n  }));\n}\nfunction getEmWidthOfNumber(num) {\n  return \"\".concat(num.toString().length, \".25em\");\n}\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: {\n      key: \"line-number--\".concat(lineNumber),\n      className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n      style: inlineLineNumberStyle\n    },\n    children: [{\n      type: 'text',\n      value: lineNumber\n    }]\n  };\n}\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n  // minimally necessary styling for line numbers\n  var defaultLineNumberStyle = {\n    display: 'inline-block',\n    minWidth: getEmWidthOfNumber(largestLineNumber),\n    paddingRight: '1em',\n    textAlign: 'right',\n    userSelect: 'none'\n  };\n  // prep custom styling\n  var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle;\n  // combine\n  var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n  return assembledStyle;\n}\nfunction createLineElement(_ref3) {\n  var children = _ref3.children,\n    lineNumber = _ref3.lineNumber,\n    lineNumberStyle = _ref3.lineNumberStyle,\n    largestLineNumber = _ref3.largestLineNumber,\n    showInlineLineNumbers = _ref3.showInlineLineNumbers,\n    _ref3$lineProps = _ref3.lineProps,\n    lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n    _ref3$className = _ref3.className,\n    className = _ref3$className === void 0 ? [] : _ref3$className,\n    showLineNumbers = _ref3.showLineNumbers,\n    wrapLongLines = _ref3.wrapLongLines,\n    _ref3$wrapLines = _ref3.wrapLines,\n    wrapLines = _ref3$wrapLines === void 0 ? false : _ref3$wrapLines;\n  var properties = wrapLines ? _objectSpread({}, typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps) : {};\n  properties['className'] = properties['className'] ? [].concat(_toConsumableArray(properties['className'].trim().split(/\\s+/)), _toConsumableArray(className)) : className;\n  if (lineNumber && showInlineLineNumbers) {\n    var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n    children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n  }\n  if (wrapLongLines & showLineNumbers) {\n    properties.style = _objectSpread({\n      display: 'flex'\n    }, properties.style);\n  }\n  return {\n    type: 'element',\n    tagName: 'span',\n    properties: properties,\n    children: children\n  };\n}\nfunction flattenCodeTree(tree) {\n  var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  if (tree.length === undefined) {\n    tree = [tree];\n  }\n  for (var i = 0; i < tree.length; i++) {\n    var node = tree[i];\n    if (node.type === 'text') {\n      newTree.push(createLineElement({\n        children: [node],\n        className: _toConsumableArray(new Set(className))\n      }));\n    } else if (node.children) {\n      var _node$properties;\n      var classNames = className.concat(((_node$properties = node.properties) === null || _node$properties === void 0 ? void 0 : _node$properties.className) || []);\n      flattenCodeTree(node.children, classNames).forEach(function (i) {\n        return newTree.push(i);\n      });\n    }\n  }\n  return newTree;\n}\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n  var _ref4;\n  var tree = flattenCodeTree(codeTree.value);\n  var newTree = [];\n  var lastLineBreakIndex = -1;\n  var index = 0;\n  function createWrappedLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return createLineElement({\n      children: children,\n      lineNumber: lineNumber,\n      lineNumberStyle: lineNumberStyle,\n      largestLineNumber: largestLineNumber,\n      showInlineLineNumbers: showInlineLineNumbers,\n      lineProps: lineProps,\n      className: className,\n      showLineNumbers: showLineNumbers,\n      wrapLongLines: wrapLongLines,\n      wrapLines: wrapLines\n    });\n  }\n  function createUnwrappedLine(children, lineNumber) {\n    if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n      var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n      children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n    }\n    return children;\n  }\n  function createLine(children, lineNumber) {\n    var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n    return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n  }\n  var _loop = function _loop() {\n    var node = tree[index];\n    var value = node.children[0].value;\n    var newLines = getNewLines(value);\n    if (newLines) {\n      var splitValue = value.split('\\n');\n      splitValue.forEach(function (text, i) {\n        var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n        var newChild = {\n          type: 'text',\n          value: \"\".concat(text, \"\\n\")\n        };\n\n        // if it's the first line\n        if (i === 0) {\n          var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n            children: [newChild],\n            className: node.properties.className\n          }));\n          var _line = createLine(_children, lineNumber);\n          newTree.push(_line);\n\n          // if it's the last line\n        } else if (i === splitValue.length - 1) {\n          var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n          var lastLineInPreviousSpan = {\n            type: 'text',\n            value: \"\".concat(text)\n          };\n          if (stringChild) {\n            var newElem = createLineElement({\n              children: [lastLineInPreviousSpan],\n              className: node.properties.className\n            });\n            tree.splice(index + 1, 0, newElem);\n          } else {\n            var _children2 = [lastLineInPreviousSpan];\n            var _line2 = createLine(_children2, lineNumber, node.properties.className);\n            newTree.push(_line2);\n          }\n\n          // if it's neither the first nor the last line\n        } else {\n          var _children3 = [newChild];\n          var _line3 = createLine(_children3, lineNumber, node.properties.className);\n          newTree.push(_line3);\n        }\n      });\n      lastLineBreakIndex = index;\n    }\n    index++;\n  };\n  while (index < tree.length) {\n    _loop();\n  }\n  if (lastLineBreakIndex !== tree.length - 1) {\n    var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n    if (children && children.length) {\n      var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n      var line = createLine(children, lineNumber);\n      newTree.push(line);\n    }\n  }\n  return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\nfunction defaultRenderer(_ref5) {\n  var rows = _ref5.rows,\n    stylesheet = _ref5.stylesheet,\n    useInlineStyles = _ref5.useInlineStyles;\n  return rows.map(function (node, i) {\n    return createElement({\n      node: node,\n      stylesheet: stylesheet,\n      useInlineStyles: useInlineStyles,\n      key: \"code-segment-\".concat(i)\n    });\n  });\n}\n\n// only highlight.js has the highlightAuto method\nfunction isHighlightJs(astGenerator) {\n  return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\nfunction getCodeTree(_ref6) {\n  var astGenerator = _ref6.astGenerator,\n    language = _ref6.language,\n    code = _ref6.code,\n    defaultCodeValue = _ref6.defaultCodeValue;\n  // figure out whether we're using lowlight/highlight or refractor/prism\n  // then attempt highlighting accordingly\n\n  // lowlight/highlight?\n  if (isHighlightJs(astGenerator)) {\n    var hasLanguage = checkForListedLanguage(astGenerator, language);\n    if (language === 'text') {\n      return {\n        value: defaultCodeValue,\n        language: 'text'\n      };\n    } else if (hasLanguage) {\n      return astGenerator.highlight(language, code);\n    } else {\n      return astGenerator.highlightAuto(code);\n    }\n  }\n\n  // must be refractor/prism, then\n  try {\n    return language && language !== 'text' ? {\n      value: astGenerator.highlight(code, language)\n    } : {\n      value: defaultCodeValue\n    };\n  } catch (e) {\n    return {\n      value: defaultCodeValue\n    };\n  }\n}\nexport default function (defaultAstGenerator, defaultStyle) {\n  return function SyntaxHighlighter(_ref7) {\n    var _code$match$length, _code$match;\n    var language = _ref7.language,\n      children = _ref7.children,\n      _ref7$style = _ref7.style,\n      style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n      _ref7$customStyle = _ref7.customStyle,\n      customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n      _ref7$codeTagProps = _ref7.codeTagProps,\n      codeTagProps = _ref7$codeTagProps === void 0 ? {\n        className: language ? \"language-\".concat(language) : undefined,\n        style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n      } : _ref7$codeTagProps,\n      _ref7$useInlineStyles = _ref7.useInlineStyles,\n      useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n      _ref7$showLineNumbers = _ref7.showLineNumbers,\n      showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n      _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n      showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n      _ref7$startingLineNum = _ref7.startingLineNumber,\n      startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n      lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n      _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n      lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n      wrapLines = _ref7.wrapLines,\n      _ref7$wrapLongLines = _ref7.wrapLongLines,\n      wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n      _ref7$lineProps = _ref7.lineProps,\n      lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n      renderer = _ref7.renderer,\n      _ref7$PreTag = _ref7.PreTag,\n      PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n      _ref7$CodeTag = _ref7.CodeTag,\n      CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n      _ref7$code = _ref7.code,\n      code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n      astGenerator = _ref7.astGenerator,\n      rest = _objectWithoutProperties(_ref7, _excluded);\n    astGenerator = astGenerator || defaultAstGenerator;\n    var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n      containerStyle: lineNumberContainerStyle,\n      codeStyle: codeTagProps.style || {},\n      numberStyle: lineNumberStyle,\n      startingLineNumber: startingLineNumber,\n      codeString: code\n    }) : null;\n    var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n      backgroundColor: '#fff'\n    };\n    var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n    var preProps = useInlineStyles ? Object.assign({}, rest, {\n      style: Object.assign({}, defaultPreStyle, customStyle)\n    }) : Object.assign({}, rest, {\n      className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n      style: Object.assign({}, customStyle)\n    });\n    if (wrapLongLines) {\n      codeTagProps.style = _objectSpread({\n        whiteSpace: 'pre-wrap'\n      }, codeTagProps.style);\n    } else {\n      codeTagProps.style = _objectSpread({\n        whiteSpace: 'pre'\n      }, codeTagProps.style);\n    }\n    if (!astGenerator) {\n      return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n    }\n\n    /*\n     * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n     * if renderer is provided and wrapLines is undefined.\n     */\n    if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n    renderer = renderer || defaultRenderer;\n    var defaultCodeValue = [{\n      type: 'text',\n      value: code\n    }];\n    var codeTree = getCodeTree({\n      astGenerator: astGenerator,\n      language: language,\n      code: code,\n      defaultCodeValue: defaultCodeValue\n    });\n    if (codeTree.language === null) {\n      codeTree.value = defaultCodeValue;\n    }\n\n    // pre-determine largest line number so that we can force minWidth on all linenumber elements\n    var lineBreakCount = (_code$match$length = (_code$match = code.match(/\\n/g)) === null || _code$match === void 0 ? void 0 : _code$match.length) !== null && _code$match$length !== void 0 ? _code$match$length : 0;\n    var largestLineNumber = startingLineNumber + lineBreakCount;\n    var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n    return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n      rows: rows,\n      stylesheet: style,\n      useInlineStyles: useInlineStyles\n    })));\n  };\n}","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\n\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'armasm', 'arturo', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'awk', 'bash', 'basic', 'batch', 'bbcode', 'bbj', 'bicep', 'birb', 'bison', 'bnf', 'bqn', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'cilkc', 'cilkcpp', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'cooklang', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cue', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gettext', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'gradle', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'linker-script', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'mata', 'matlab', 'maxscript', 'mel', 'mermaid', 'metafont', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'odin', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plant-uml', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rescript', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stata', 'stylus', 'supercollider', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wgsl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"none\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"color\": \"black\",\n    \"background\": \"#f5f2f0\",\n    \"textShadow\": \"0 1px white\",\n    \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n    \"fontSize\": \"1em\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"wordWrap\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"4\",\n    \"OTabSize\": \"4\",\n    \"tabSize\": \"4\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \".5em 0\",\n    \"overflow\": \"auto\"\n  },\n  \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"pre[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \"code[class*=\\\"language-\\\"] ::selection\": {\n    \"textShadow\": \"none\",\n    \"background\": \"#b3d4fc\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"background\": \"#f5f2f0\",\n    \"padding\": \".1em\",\n    \"borderRadius\": \".3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"slategray\"\n  },\n  \"prolog\": {\n    \"color\": \"slategray\"\n  },\n  \"doctype\": {\n    \"color\": \"slategray\"\n  },\n  \"cdata\": {\n    \"color\": \"slategray\"\n  },\n  \"punctuation\": {\n    \"color\": \"#999\"\n  },\n  \"namespace\": {\n    \"Opacity\": \".7\"\n  },\n  \"property\": {\n    \"color\": \"#905\"\n  },\n  \"tag\": {\n    \"color\": \"#905\"\n  },\n  \"boolean\": {\n    \"color\": \"#905\"\n  },\n  \"number\": {\n    \"color\": \"#905\"\n  },\n  \"constant\": {\n    \"color\": \"#905\"\n  },\n  \"symbol\": {\n    \"color\": \"#905\"\n  },\n  \"deleted\": {\n    \"color\": \"#905\"\n  },\n  \"selector\": {\n    \"color\": \"#690\"\n  },\n  \"attr-name\": {\n    \"color\": \"#690\"\n  },\n  \"string\": {\n    \"color\": \"#690\"\n  },\n  \"char\": {\n    \"color\": \"#690\"\n  },\n  \"builtin\": {\n    \"color\": \"#690\"\n  },\n  \"inserted\": {\n    \"color\": \"#690\"\n  },\n  \"operator\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"entity\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\",\n    \"cursor\": \"help\"\n  },\n  \"url\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".language-css .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \".style .token.string\": {\n    \"color\": \"#9a6e3a\",\n    \"background\": \"hsla(0, 0%, 100%, .5)\"\n  },\n  \"atrule\": {\n    \"color\": \"#07a\"\n  },\n  \"attr-value\": {\n    \"color\": \"#07a\"\n  },\n  \"keyword\": {\n    \"color\": \"#07a\"\n  },\n  \"function\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"class-name\": {\n    \"color\": \"#DD4A68\"\n  },\n  \"regex\": {\n    \"color\": \"#e90\"\n  },\n  \"important\": {\n    \"color\": \"#e90\",\n    \"fontWeight\": \"bold\"\n  },\n  \"variable\": {\n    \"color\": \"#e90\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  }\n};","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport { refractor } from 'refractor/all';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","import { useState, useMemo } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { oneDark } from 'react-syntax-highlighter/dist/cjs/styles/prism';\nimport { Card } from '../../components/base/card';\nimport { Button } from '../../components/base/button';\nimport { ScrollArea } from '../../components/base/scroll-area';\nimport { Copy, Check } from 'lucide-react';\nimport { cn } from '../../lib/utils';\n\ninterface MarkdownViewerProps {\n  content: string;\n  className?: string;\n  showCopyButton?: boolean;\n}\n\nexport function MarkdownViewer({ \n  content, \n  className,\n  showCopyButton = true\n}: MarkdownViewerProps) {\n  const [copiedCode, setCopiedCode] = useState<string | null>(null);\n\n  const copyToClipboard = (code: string) => {\n    navigator.clipboard.writeText(code);\n    setCopiedCode(code);\n    setTimeout(() => setCopiedCode(null), 2000);\n  };\n\n  const components = useMemo(() => ({\n    code({ node, inline, className, children, ...props }: any) {\n      const match = /language-(\\w+)/.exec(className || '');\n      const code = String(children).replace(/\\n$/, '');\n      \n      return !inline && match ? (\n        <div className=\"relative group\">\n          <SyntaxHighlighter\n            style={oneDark}\n            language={match[1]}\n            PreTag=\"div\"\n            className=\"!rounded-md !my-4\"\n            {...props}\n          >\n            {code}\n          </SyntaxHighlighter>\n          {showCopyButton && (\n            <Button\n              size=\"sm\"\n              variant=\"ghost\"\n              className=\"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity\"\n              onClick={() => copyToClipboard(code)}\n            >\n              {copiedCode === code ? (\n                <Check className=\"h-4 w-4\" />\n              ) : (\n                <Copy className=\"h-4 w-4\" />\n              )}\n            </Button>\n          )}\n        </div>\n      ) : (\n        <code className=\"px-1.5 py-0.5 rounded bg-muted text-sm font-mono\" {...props}>\n          {children}\n        </code>\n      );\n    },\n    pre({ children }: any) {\n      return <>{children}</>;\n    },\n    h1: ({ children }: any) => (\n      <h1 className=\"text-2xl font-bold mt-6 mb-4\">{children}</h1>\n    ),\n    h2: ({ children }: any) => (\n      <h2 className=\"text-xl font-semibold mt-5 mb-3\">{children}</h2>\n    ),\n    h3: ({ children }: any) => (\n      <h3 className=\"text-lg font-semibold mt-4 mb-2\">{children}</h3>\n    ),\n    p: ({ children }: any) => (\n      <p className=\"mb-4 leading-relaxed\">{children}</p>\n    ),\n    ul: ({ children }: any) => (\n      <ul className=\"list-disc list-inside mb-4 space-y-1\">{children}</ul>\n    ),\n    ol: ({ children }: any) => (\n      <ol className=\"list-decimal list-inside mb-4 space-y-1\">{children}</ol>\n    ),\n    blockquote: ({ children }: any) => (\n      <blockquote className=\"border-l-4 border-muted-foreground/30 pl-4 my-4 italic\">\n        {children}\n      </blockquote>\n    ),\n    a: ({ href, children }: any) => (\n      <a\n        href={href}\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n        className=\"text-primary hover:underline\"\n      >\n        {children}\n      </a>\n    ),\n    table: ({ children }: any) => (\n      <div className=\"overflow-x-auto my-4\">\n        <table className=\"min-w-full divide-y divide-border\">{children}</table>\n      </div>\n    ),\n    th: ({ children }: any) => (\n      <th className=\"px-4 py-2 text-left font-medium\">{children}</th>\n    ),\n    td: ({ children }: any) => (\n      <td className=\"px-4 py-2 border-t\">{children}</td>\n    ),\n  }), [copiedCode, showCopyButton]);\n\n  return (\n    <div className={cn(\"prose prose-sm dark:prose-invert max-w-none\", className)}>\n      <ReactMarkdown\n        remarkPlugins={[remarkGfm]}\n        components={components}\n      >\n        {content}\n      </ReactMarkdown>\n    </div>\n  );\n}\n\n/**\n * MarkdownViewer component wrapped in a Card\n */\nexport function MarkdownCard({ \n  content, \n  className,\n  title,\n  ...props \n}: MarkdownViewerProps & { title?: string }) {\n  return (\n    <Card className={cn(\"p-6\", className)}>\n      {title && <h2 className=\"text-xl font-semibold mb-4\">{title}</h2>}\n      <MarkdownViewer content={content} {...props} />\n    </Card>\n  );\n}\n\n/**\n * MarkdownViewer component wrapped in a ScrollArea\n */\nexport function MarkdownScrollArea({ \n  content, \n  className,\n  height = \"400px\",\n  ...props \n}: MarkdownViewerProps & { height?: string }) {\n  return (\n    <ScrollArea className={cn(\"w-full\", className)} style={{ height }}>\n      <div className=\"pr-4\">\n        <MarkdownViewer content={content} {...props} />\n      </div>\n    </ScrollArea>\n  );\n}\n","import { useState, useRef, useEffect, useCallback, ReactNode } from 'react';\nimport {\n  Tooltip,\n  TooltipContent,\n  TooltipTrigger,\n} from './tooltip';\nimport { cn } from '../../src/utils/cn';\n\ninterface TruncatedTextProps {\n  children: ReactNode;\n  className?: string;\n  maxWidth?: string | number;\n  tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n}\n\nexport function TruncatedText({\n  children,\n  className,\n  maxWidth,\n  tooltipSide = 'top',\n}: TruncatedTextProps) {\n  const textRef = useRef<HTMLSpanElement>(null);\n  const [isTruncated, setIsTruncated] = useState(false);\n\n  const checkTruncation = useCallback(() => {\n    if (textRef.current) {\n      setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n    }\n  }, []);\n\n  useEffect(() => {\n    const element = textRef.current;\n    if (!element) return;\n\n    // Initial check\n    checkTruncation();\n\n    // Use ResizeObserver for more accurate size change detection\n    const resizeObserver = new ResizeObserver(() => {\n      // Debounce the check slightly to avoid excessive updates\n      requestAnimationFrame(checkTruncation);\n    });\n\n    resizeObserver.observe(element);\n\n    return () => {\n      resizeObserver.disconnect();\n    };\n  }, [checkTruncation, children]);\n\n  const style = maxWidth ? { maxWidth } : undefined;\n\n  // Always render the same structure, just conditionally enable the tooltip\n  // This avoids the race condition of changing JSX structure based on isTruncated\n  return (\n    <Tooltip>\n      <TooltipTrigger asChild disabled={!isTruncated}>\n        <span\n          ref={textRef}\n          className={cn(\n            'truncate block',\n            isTruncated && 'cursor-help',\n            className\n          )}\n          style={style}\n        >\n          {children}\n        </span>\n      </TooltipTrigger>\n      {isTruncated && (\n        <TooltipContent side={tooltipSide} className=\"max-w-md break-words\">\n          {children}\n        </TooltipContent>\n      )}\n    </Tooltip>\n  );\n}\n","import { cn } from '../../src/utils/cn';\nimport { Check } from 'lucide-react';\n\n// Curated color palette for tags and projects\nexport const TAG_COLORS = [\n  // Row 1: Blues & Purples\n  { hex: '#3b82f6', name: 'Blue' },\n  { hex: '#6366f1', name: 'Indigo' },\n  { hex: '#8b5cf6', name: 'Violet' },\n  { hex: '#a855f7', name: 'Purple' },\n  { hex: '#d946ef', name: 'Fuchsia' },\n  // Row 2: Pinks & Reds\n  { hex: '#ec4899', name: 'Pink' },\n  { hex: '#f43f5e', name: 'Rose' },\n  { hex: '#ef4444', name: 'Red' },\n  { hex: '#f97316', name: 'Orange' },\n  { hex: '#f59e0b', name: 'Amber' },\n  // Row 3: Greens & Teals\n  { hex: '#eab308', name: 'Yellow' },\n  { hex: '#84cc16', name: 'Lime' },\n  { hex: '#22c55e', name: 'Green' },\n  { hex: '#10b981', name: 'Emerald' },\n  { hex: '#14b8a6', name: 'Teal' },\n  // Row 4: Cyans & Grays\n  { hex: '#06b6d4', name: 'Cyan' },\n  { hex: '#0ea5e9', name: 'Sky' },\n  { hex: '#64748b', name: 'Slate' },\n  { hex: '#78716c', name: 'Stone' },\n  { hex: '#737373', name: 'Gray' },\n];\n\ninterface ColorPaletteProps {\n  value: string;\n  onChange: (color: string) => void;\n  columns?: number;\n  className?: string;\n}\n\nexport function ColorPalette({ value, onChange, columns = 10, className }: ColorPaletteProps) {\n  return (\n    <div\n      className={cn('flex flex-wrap gap-1.5', className)}\n      style={{ maxWidth: columns * 28 + (columns - 1) * 6 }} // 24px buttons + 6px gaps\n    >\n      {TAG_COLORS.map((color) => {\n        const isSelected = value.toLowerCase() === color.hex.toLowerCase();\n        return (\n          <button\n            key={color.hex}\n            type=\"button\"\n            onClick={() => onChange(color.hex)}\n            className={cn(\n              'w-6 h-6 rounded-md transition-all focus:outline-none flex items-center justify-center',\n              'hover:brightness-110',\n              isSelected && 'ring-2 ring-foreground/70'\n            )}\n            style={{ backgroundColor: color.hex }}\n            title={color.name}\n          >\n            {isSelected && (\n              <Check className=\"h-3.5 w-3.5 text-white drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)]\" />\n            )}\n          </button>\n        );\n      })}\n    </div>\n  );\n}\n\n// Get a random color from the palette\nexport function getRandomTagColor(): string {\n  const index = Math.floor(Math.random() * TAG_COLORS.length);\n  return TAG_COLORS[index]!.hex;\n}\n\n// Get the next color in the palette (for sequential assignment)\nexport function getNextTagColor(currentColor: string): string {\n  const currentIndex = TAG_COLORS.findIndex(c => c.hex === currentColor);\n  const nextIndex = (currentIndex + 1) % TAG_COLORS.length;\n  return TAG_COLORS[nextIndex]!.hex;\n}\n\n// Get the next available color that isn't already used\nexport function getNextAvailableColor(usedColors: string[]): string {\n  const usedSet = new Set(usedColors.map(c => c.toLowerCase()));\n\n  // First, try to find an unused color\n  for (const color of TAG_COLORS) {\n    if (!usedSet.has(color.hex.toLowerCase())) {\n      return color.hex;\n    }\n  }\n\n  // All colors used - find least used color\n  const colorCounts = TAG_COLORS.map(c => ({\n    hex: c.hex,\n    count: usedColors.filter(u => u.toLowerCase() === c.hex.toLowerCase()).length\n  }));\n  colorCounts.sort((a, b) => a.count - b.count);\n  return colorCounts[0]!.hex;\n}\n","import { useState, useEffect } from 'react';\n\n/**\n * Hook that debounces a value\n * @param value The value to debounce\n * @param delay The delay in milliseconds\n * @returns The debounced value\n * \n * @example\n * ```tsx\n * const SearchInput = () => {\n *   const [searchTerm, setSearchTerm] = useState('');\n *   const debouncedSearchTerm = useDebounce(searchTerm, 300);\n * \n *   useEffect(() => {\n *     if (debouncedSearchTerm) {\n *       // Perform search with debounced term\n *       performSearch(debouncedSearchTerm);\n *     }\n *   }, [debouncedSearchTerm]);\n * \n *   return (\n *     <input\n *       value={searchTerm}\n *       onChange={(e) => setSearchTerm(e.target.value)}\n *       placeholder=\"Search...\"\n *     />\n *   );\n * };\n * ```\n */\nexport function useDebounce<T>(value: T, delay: number): T {\n  const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n  useEffect(() => {\n    const handler = setTimeout(() => {\n      setDebouncedValue(value);\n    }, delay);\n\n    return () => {\n      clearTimeout(handler);\n    };\n  }, [value, delay]);\n\n  return debouncedValue;\n}","import { useState, useRef, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { Folder, File, ChevronRight, Loader2 } from 'lucide-react';\nimport { Input } from './input';\nimport { useDebounce } from '../../src/hooks/useDebounce';\nimport { cn } from '../../src/utils/cn';\n\ninterface PathSuggestion {\n  path: string;\n  name: string;\n  isDirectory: boolean;\n}\n\ninterface BrowseResponse {\n  items: Array<{ path: string; name: string; isDirectory: boolean }>;\n  expandedPath?: string;\n}\n\nexport interface PathTypeaheadProps {\n  value: string;\n  onChange: (value: string) => void;\n  onValidPath?: (expandedPath: string) => void;\n  mode?: 'directory' | 'file' | 'both';\n  projectId?: string;\n  placeholder?: string;\n  className?: string;\n  error?: string;\n  disabled?: boolean;\n  /** URL for the filesystem browse endpoint. Defaults to /api/filesystem/browse */\n  browseUrl?: string;\n}\n\nexport function PathTypeahead({\n  value,\n  onChange,\n  onValidPath,\n  mode = 'directory',\n  projectId,\n  placeholder,\n  className,\n  error,\n  disabled,\n  browseUrl = '/api/filesystem/browse',\n}: PathTypeaheadProps) {\n  const [suggestions, setSuggestions] = useState<PathSuggestion[]>([]);\n  const [showSuggestions, setShowSuggestions] = useState(false);\n  const [selectedIndex, setSelectedIndex] = useState(-1);\n  const [expandedPath, setExpandedPath] = useState<string>('');\n  const [isLoading, setIsLoading] = useState(false);\n\n  const inputRef = useRef<HTMLInputElement>(null);\n  const suggestionsRef = useRef<HTMLDivElement>(null);\n  const fetchControllerRef = useRef<AbortController | null>(null);\n  const shouldMaintainFocusRef = useRef(false);\n  const isNavigatingRef = useRef(false); // True when arrow keys are being used to preview\n\n  const debouncedValue = useDebounce(value, 200); // Faster debounce for better responsiveness\n\n  // Fetch suggestions using unified browse endpoint\n  const fetchSuggestions = useCallback(async (searchPath: string, showImmediately = false) => {\n    // Cancel any pending request\n    if (fetchControllerRef.current) {\n      fetchControllerRef.current.abort();\n    }\n\n    if (!searchPath || searchPath.length < 1) {\n      setSuggestions([]);\n      setExpandedPath('');\n      setIsLoading(false);\n      return;\n    }\n\n    fetchControllerRef.current = new AbortController();\n    setIsLoading(true);\n\n    try {\n      const params = new URLSearchParams({\n        path: searchPath,\n        mode: mode,\n        limit: '20',\n      });\n\n      if (projectId) {\n        params.set('projectId', projectId);\n      }\n\n      const res = await fetch(`${browseUrl}?${params.toString()}`, {\n        signal: fetchControllerRef.current.signal,\n      });\n\n      // Check if this request was aborted\n      if (fetchControllerRef.current?.signal.aborted) {\n        return;\n      }\n\n      if (!res.ok) {\n        setSuggestions([]);\n        return;\n      }\n\n      const response: BrowseResponse = await res.json();\n\n      if (response.items && response.items.length > 0) {\n        const suggestionList: PathSuggestion[] = response.items.map((item) => ({\n          path: item.path,\n          name: item.name,\n          isDirectory: item.isDirectory,\n        }));\n        setSuggestions(suggestionList);\n        setExpandedPath(response.expandedPath || '');\n\n        // Show suggestions if input is focused (use ref for current value) or explicitly requested\n        if (shouldMaintainFocusRef.current || showImmediately) {\n          setShowSuggestions(true);\n        }\n      } else {\n        setSuggestions([]);\n        setExpandedPath(response.expandedPath || '');\n      }\n    } catch (err) {\n      // Ignore abort errors\n      if (err instanceof Error && err.name === 'AbortError') {\n        return;\n      }\n      console.error('Failed to fetch path suggestions:', err);\n      setSuggestions([]);\n    } finally {\n      setIsLoading(false);\n    }\n  }, [mode, projectId, browseUrl]);\n\n  // Fetch suggestions when debounced value changes (but not during arrow navigation)\n  useEffect(() => {\n    // Skip fetch if user is navigating with arrow keys\n    if (isNavigatingRef.current) {\n      return;\n    }\n\n    if (debouncedValue && debouncedValue.length >= 1) {\n      fetchSuggestions(debouncedValue);\n    } else {\n      setSuggestions([]);\n      setShowSuggestions(false);\n      setExpandedPath('');\n    }\n  }, [debouncedValue, fetchSuggestions]);\n\n  // Reset selected index when suggestions change (but not during navigation)\n  useEffect(() => {\n    if (!isNavigatingRef.current) {\n      setSelectedIndex(-1);\n    }\n  }, [suggestions]);\n\n  // Synchronously restore focus before browser paint when suggestions change\n  useLayoutEffect(() => {\n    if (shouldMaintainFocusRef.current && inputRef.current) {\n      if (document.activeElement !== inputRef.current) {\n        inputRef.current.focus();\n      }\n    }\n  }, [suggestions, showSuggestions]);\n\n  // Notify parent of expanded path\n  useEffect(() => {\n    if (expandedPath && onValidPath) {\n      onValidPath(expandedPath);\n    }\n  }, [expandedPath, onValidPath]);\n\n  // Scroll selected item into view\n  useEffect(() => {\n    if (selectedIndex >= 0 && suggestionsRef.current) {\n      const selectedElement = suggestionsRef.current.children[selectedIndex] as HTMLElement;\n      if (selectedElement) {\n        selectedElement.scrollIntoView({ block: 'nearest' });\n      }\n    }\n  }, [selectedIndex]);\n\n  // Close suggestions when clicking outside\n  useEffect(() => {\n    const handleClickOutside = (event: MouseEvent) => {\n      const target = event.target as Node;\n      const isOutside =\n        suggestionsRef.current && !suggestionsRef.current.contains(target) &&\n        inputRef.current && !inputRef.current.contains(target);\n\n      if (isOutside) {\n        setShowSuggestions(false);\n        setSelectedIndex(-1);\n      }\n    };\n\n    document.addEventListener('mousedown', handleClickOutside);\n    return () => document.removeEventListener('mousedown', handleClickOutside);\n  }, []);\n\n  // Populate input with suggestion path (for keyboard navigation preview)\n  const previewSuggestion = (index: number) => {\n    if (index >= 0 && index < suggestions.length) {\n      isNavigatingRef.current = true;\n      onChange(suggestions[index]!.path);\n    }\n  };\n\n  const handleKeyDown = (e: React.KeyboardEvent) => {\n    const hasSuggestions = suggestions.length > 0;\n\n    switch (e.key) {\n      case 'ArrowDown':\n        e.preventDefault();\n        if (hasSuggestions) {\n          // Open dropdown if closed, otherwise navigate\n          if (!showSuggestions) {\n            setShowSuggestions(true);\n            setSelectedIndex(0);\n            previewSuggestion(0);\n          } else {\n            const newIndex = selectedIndex < suggestions.length - 1 ? selectedIndex + 1 : 0;\n            setSelectedIndex(newIndex);\n            previewSuggestion(newIndex);\n          }\n        }\n        break;\n\n      case 'ArrowUp':\n        e.preventDefault();\n        if (hasSuggestions && showSuggestions) {\n          const newIndex = selectedIndex > 0 ? selectedIndex - 1 : suggestions.length - 1;\n          setSelectedIndex(newIndex);\n          previewSuggestion(newIndex);\n        }\n        break;\n\n      case 'Enter':\n        if (showSuggestions && selectedIndex >= 0 && selectedIndex < suggestions.length) {\n          e.preventDefault();\n          selectSuggestion(suggestions[selectedIndex]!);\n        }\n        // If no selection, let Enter pass through for form submission\n        break;\n\n      case 'Escape':\n        if (showSuggestions) {\n          e.preventDefault();\n          e.stopPropagation(); // Prevent closing parent dialogs\n          isNavigatingRef.current = false;\n          setShowSuggestions(false);\n          setSelectedIndex(-1);\n        }\n        break;\n\n      case 'Tab':\n        if (hasSuggestions && showSuggestions) {\n          e.preventDefault();\n\n          // If one suggestion or one selected, complete it\n          if (suggestions.length === 1) {\n            selectSuggestion(suggestions[0]!);\n          } else if (selectedIndex >= 0) {\n            selectSuggestion(suggestions[selectedIndex]!);\n          } else {\n            // Find common prefix for shell-like tab completion\n            const commonPrefix = findCommonPrefix(suggestions.map(s => s.path));\n            if (commonPrefix && commonPrefix.length > value.length) {\n              onChange(commonPrefix);\n            } else {\n              // Just select first item\n              setSelectedIndex(0);\n            }\n          }\n        }\n        break;\n    }\n  };\n\n  const selectSuggestion = (suggestion: PathSuggestion) => {\n    isNavigatingRef.current = false; // Exit navigation mode on selection\n    let newValue = suggestion.path;\n\n    // For directories, add trailing slash to continue navigation\n    const isDir = suggestion.isDirectory;\n    if (isDir && !newValue.endsWith('/')) {\n      newValue += '/';\n    }\n\n    onChange(newValue);\n    setSelectedIndex(-1);\n\n    // Always close dropdown on explicit selection (click or Enter)\n    // User clicking/pressing Enter is confirmation they're happy with the selection\n    setShowSuggestions(false);\n    setSuggestions([]);\n\n    // For directories, pre-fetch suggestions so they're ready when user types more\n    // But don't show them immediately - wait for user to type\n    if (isDir) {\n      fetchSuggestions(newValue, false);\n    }\n\n    // Input should maintain focus - it never lost it because we use mousedown prevention\n  };\n\n  // Handle suggestion click - use mousedown to prevent focus loss\n  const handleSuggestionMouseDown = (e: React.MouseEvent, suggestion: PathSuggestion) => {\n    e.preventDefault(); // Prevents input from losing focus\n    selectSuggestion(suggestion);\n  };\n\n  const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    isNavigatingRef.current = false; // User is typing, exit navigation mode\n    onChange(e.target.value);\n    setShowSuggestions(true);\n    setSelectedIndex(-1);\n  };\n\n  const handleInputFocus = () => {\n    shouldMaintainFocusRef.current = true;\n    // Show suggestions if we have them and there's content\n    if (suggestions.length > 0 && value.length >= 1) {\n      setShowSuggestions(true);\n    }\n    // Trigger fetch if we have a value but no suggestions yet\n    if (value.length >= 1 && suggestions.length === 0) {\n      fetchSuggestions(value);\n    }\n  };\n\n  const handleInputBlur = (e: React.FocusEvent) => {\n    // Check if focus is moving to something within our component\n    const relatedTarget = e.relatedTarget as Node | null;\n    const isInternalFocusChange =\n      suggestionsRef.current?.contains(relatedTarget) ||\n      inputRef.current?.contains(relatedTarget);\n\n    if (!isInternalFocusChange) {\n      shouldMaintainFocusRef.current = false;\n    }\n    // Don't hide suggestions immediately - let mousedown handler work first\n    // The click-outside handler will close it if needed\n  };\n\n  const Icon = mode === 'file' ? File : Folder;\n\n  return (\n    <div>\n      {/* Input container with dropdown */}\n      <div className=\"relative\">\n        <Input\n          ref={inputRef}\n          value={value}\n          onChange={handleInputChange}\n          onKeyDown={handleKeyDown}\n          onFocus={handleInputFocus}\n          onBlur={handleInputBlur}\n          className={cn(\n            \"pr-10\",\n            error && \"border-destructive\",\n            className\n          )}\n          placeholder={placeholder}\n          autoComplete=\"off\"\n          autoCorrect=\"off\"\n          autoCapitalize=\"off\"\n          spellCheck={false}\n          disabled={disabled}\n        />\n        <div className=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none\">\n          {isLoading ? (\n            <Loader2 className=\"h-4 w-4 text-muted-foreground animate-spin\" />\n          ) : (\n            <Icon className=\"h-4 w-4 text-muted-foreground\" />\n          )}\n        </div>\n\n        {/* Suggestions dropdown - positioned relative to input */}\n        {showSuggestions && suggestions.length > 0 && (\n          <div\n            ref={suggestionsRef}\n            className=\"absolute left-0 right-0 top-full z-50 mt-1 bg-popover border border-border rounded-md shadow-lg max-h-60 overflow-y-auto\"\n            role=\"listbox\"\n          >\n            {suggestions.map((suggestion, index) => (\n              <div\n                key={suggestion.path}\n                role=\"option\"\n                aria-selected={selectedIndex === index}\n                onMouseDown={(e) => handleSuggestionMouseDown(e, suggestion)}\n                onMouseEnter={() => setSelectedIndex(index)}\n                className={cn(\n                  \"w-full px-3 py-2 text-left flex items-center gap-2 cursor-pointer select-none\",\n                  selectedIndex === index\n                    ? \"bg-accent text-accent-foreground\"\n                    : \"hover:bg-accent/50\"\n                )}\n              >\n                {suggestion.isDirectory ? (\n                  <Folder className=\"h-4 w-4 text-blue-500 flex-shrink-0\" />\n                ) : (\n                  <File className=\"h-4 w-4 text-muted-foreground flex-shrink-0\" />\n                )}\n                <span className=\"flex-1 truncate text-sm font-mono\">\n                  {highlightMatch(suggestion.path, value)}\n                </span>\n                {suggestion.isDirectory && (\n                  <ChevronRight className=\"h-3 w-3 text-muted-foreground flex-shrink-0\" />\n                )}\n              </div>\n            ))}\n          </div>\n        )}\n      </div>\n\n      {error && (\n        <p className=\"text-xs text-destructive mt-1\">{error}</p>\n      )}\n    </div>\n  );\n}\n\n// Find common prefix among paths (for shell-like tab completion)\nfunction findCommonPrefix(paths: string[]): string {\n  if (paths.length === 0) return '';\n  if (paths.length === 1) return paths[0] ?? '';\n\n  let prefix = paths[0] ?? '';\n  for (let i = 1; i < paths.length; i++) {\n    const p = paths[i] ?? '';\n    while (!p.startsWith(prefix) && prefix.length > 0) {\n      prefix = prefix.slice(0, -1);\n    }\n  }\n  return prefix;\n}\n\n// Highlight the matching portion of the path\nfunction highlightMatch(path: string, query: string): React.ReactNode {\n  if (!query) return path;\n\n  // For project-scoped paths, the query might be a partial path\n  // Find where the current search term starts in the path\n  const queryParts = query.split('/');\n  const lastPart = (queryParts[queryParts.length - 1] ?? '').toLowerCase();\n\n  if (!lastPart) return path;\n\n  const lastSlashIndex = path.lastIndexOf('/');\n  const fileName = lastSlashIndex >= 0 ? path.slice(lastSlashIndex + 1) : path;\n  const fileNameLower = fileName.toLowerCase();\n\n  const matchIndex = fileNameLower.indexOf(lastPart);\n\n  if (matchIndex === -1) return path;\n\n  const absoluteMatchStart = lastSlashIndex >= 0 ? lastSlashIndex + 1 + matchIndex : matchIndex;\n  const absoluteMatchEnd = absoluteMatchStart + lastPart.length;\n\n  return (\n    <>\n      {path.slice(0, absoluteMatchStart)}\n      <span className=\"font-semibold text-foreground\">\n        {path.slice(absoluteMatchStart, absoluteMatchEnd)}\n      </span>\n      {path.slice(absoluteMatchEnd)}\n    </>\n  );\n}\n","import { useState, useRef, useCallback, useEffect, useMemo } from 'react';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogFooter } from './dialog';\nimport { Button } from './button';\nimport { Maximize2, Minimize2, X, GripVertical } from 'lucide-react';\nimport { cn } from '../../src/utils/cn';\n\ninterface ResizableDialogRenderProps {\n  isFullscreen: boolean;\n}\n\ninterface ResizableDialogProps {\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n  title?: React.ReactNode;\n  titleExtra?: React.ReactNode;\n  children: React.ReactNode | ((props: ResizableDialogRenderProps) => React.ReactNode);\n  footer?: React.ReactNode;\n  defaultWidth?: number;\n  defaultHeight?: number;\n  minWidth?: number;\n  minHeight?: number;\n  className?: string;\n  onFullscreenChange?: (isFullscreen: boolean) => void;\n}\n\ninterface Position {\n  x: number;\n  y: number;\n}\n\ninterface Size {\n  width: number;\n  height: number;\n}\n\nexport function ResizableDialog({\n  open,\n  onOpenChange,\n  title,\n  titleExtra,\n  children,\n  footer,\n  defaultWidth = 800,\n  defaultHeight = 600,\n  minWidth = 400,\n  minHeight = 300,\n  className,\n  onFullscreenChange,\n}: ResizableDialogProps) {\n  const [isFullscreen, setIsFullscreen] = useState(false);\n  const [position, setPosition] = useState<Position>({ x: 0, y: 0 });\n  // Initialize size with viewport constraints\n  const [size, setSize] = useState<Size>(() => ({\n    width: Math.min(defaultWidth, typeof window !== 'undefined' ? window.innerWidth - 32 : defaultWidth),\n    height: Math.min(defaultHeight, typeof window !== 'undefined' ? window.innerHeight - 32 : defaultHeight),\n  }));\n  const [isInteracting, setIsInteracting] = useState(false); // Combined drag/resize state for class\n\n  const dialogRef = useRef<HTMLDivElement>(null);\n  const interactionRef = useRef<{\n    type: 'drag' | 'resize' | null;\n    direction: string | null;\n    startMouseX: number;\n    startMouseY: number;\n    startPosX: number;\n    startPosY: number;\n    startWidth: number;\n    startHeight: number;\n  }>({\n    type: null,\n    direction: null,\n    startMouseX: 0,\n    startMouseY: 0,\n    startPosX: 0,\n    startPosY: 0,\n    startWidth: 0,\n    startHeight: 0,\n  });\n\n  // Center dialog on open and constrain to viewport\n  useEffect(() => {\n    if (open && !isFullscreen) {\n      // Recalculate size to fit viewport\n      const constrainedWidth = Math.min(defaultWidth, window.innerWidth - 32);\n      const constrainedHeight = Math.min(defaultHeight, window.innerHeight - 32);\n      setSize({ width: constrainedWidth, height: constrainedHeight });\n\n      const centerX = (window.innerWidth - constrainedWidth) / 2;\n      const centerY = (window.innerHeight - constrainedHeight) / 2;\n      setPosition({ x: centerX, y: Math.max(16, centerY) });\n    }\n  }, [open, isFullscreen, defaultWidth, defaultHeight]);\n\n  // Direct DOM manipulation for drag - avoids React re-renders\n  const handleDragStart = useCallback(\n    (e: React.MouseEvent) => {\n      if (isFullscreen || !dialogRef.current) return;\n      e.preventDefault();\n\n      interactionRef.current = {\n        type: 'drag',\n        direction: null,\n        startMouseX: e.clientX,\n        startMouseY: e.clientY,\n        startPosX: position.x,\n        startPosY: position.y,\n        startWidth: size.width,\n        startHeight: size.height,\n      };\n\n      setIsInteracting(true);\n      document.body.style.cursor = 'grabbing';\n      document.body.style.userSelect = 'none';\n    },\n    [isFullscreen, position, size]\n  );\n\n  // Direct DOM manipulation for resize\n  const handleResizeStart = useCallback(\n    (e: React.MouseEvent, direction: string) => {\n      if (isFullscreen || !dialogRef.current) return;\n      e.preventDefault();\n      e.stopPropagation();\n\n      interactionRef.current = {\n        type: 'resize',\n        direction,\n        startMouseX: e.clientX,\n        startMouseY: e.clientY,\n        startPosX: position.x,\n        startPosY: position.y,\n        startWidth: size.width,\n        startHeight: size.height,\n      };\n\n      setIsInteracting(true);\n      document.body.style.userSelect = 'none';\n    },\n    [isFullscreen, position, size]\n  );\n\n  // Combined mouse move handler - updates DOM directly for performance\n  useEffect(() => {\n    if (!isInteracting) return;\n\n    const handleMouseMove = (e: MouseEvent) => {\n      const ref = interactionRef.current;\n      const dialog = dialogRef.current;\n      if (!ref.type || !dialog) return;\n\n      const deltaX = e.clientX - ref.startMouseX;\n      const deltaY = e.clientY - ref.startMouseY;\n\n      if (ref.type === 'drag') {\n        // Direct style manipulation for drag\n        const newX = ref.startPosX + deltaX;\n        const newY = Math.max(0, ref.startPosY + deltaY);\n        dialog.style.left = `${newX}px`;\n        dialog.style.top = `${newY}px`;\n      } else if (ref.type === 'resize' && ref.direction) {\n        // Direct style manipulation for resize\n        let newWidth = ref.startWidth;\n        let newHeight = ref.startHeight;\n        let newX = ref.startPosX;\n        let newY = ref.startPosY;\n\n        if (ref.direction.includes('e')) {\n          newWidth = Math.max(minWidth, ref.startWidth + deltaX);\n        }\n        if (ref.direction.includes('w')) {\n          const widthDelta = Math.min(deltaX, ref.startWidth - minWidth);\n          newWidth = ref.startWidth - widthDelta;\n          newX = ref.startPosX + widthDelta;\n        }\n        if (ref.direction.includes('s')) {\n          newHeight = Math.max(minHeight, ref.startHeight + deltaY);\n        }\n        if (ref.direction.includes('n')) {\n          const heightDelta = Math.min(deltaY, ref.startHeight - minHeight);\n          newHeight = ref.startHeight - heightDelta;\n          newY = Math.max(0, ref.startPosY + heightDelta);\n        }\n\n        dialog.style.width = `${newWidth}px`;\n        dialog.style.height = `${newHeight}px`;\n        dialog.style.left = `${newX}px`;\n        dialog.style.top = `${newY}px`;\n      }\n    };\n\n    const handleMouseUp = () => {\n      const ref = interactionRef.current;\n      const dialog = dialogRef.current;\n\n      if (dialog && ref.type) {\n        // Sync React state with final DOM values\n        const rect = dialog.getBoundingClientRect();\n        setPosition({ x: rect.left, y: rect.top });\n        setSize({ width: rect.width, height: rect.height });\n      }\n\n      interactionRef.current.type = null;\n      interactionRef.current.direction = null;\n      setIsInteracting(false);\n      document.body.style.cursor = '';\n      document.body.style.userSelect = '';\n    };\n\n    document.addEventListener('mousemove', handleMouseMove);\n    document.addEventListener('mouseup', handleMouseUp);\n\n    return () => {\n      document.removeEventListener('mousemove', handleMouseMove);\n      document.removeEventListener('mouseup', handleMouseUp);\n    };\n  }, [isInteracting, minWidth, minHeight]);\n\n  const toggleFullscreen = useCallback(() => {\n    setIsFullscreen((prev) => {\n      const newValue = !prev;\n      onFullscreenChange?.(newValue);\n      return newValue;\n    });\n  }, [onFullscreenChange]);\n\n  // Memoize style to avoid object recreation\n  const dialogStyle = useMemo<React.CSSProperties>(() =>\n    isFullscreen\n      ? {\n          position: 'fixed',\n          top: 0,\n          left: 0,\n          width: '100vw',\n          height: '100vh',\n          maxWidth: '100vw',\n          maxHeight: '100vh',\n          borderRadius: 0,\n          transform: 'none',\n        }\n      : {\n          position: 'fixed',\n          top: position.y,\n          left: position.x,\n          width: size.width,\n          height: size.height,\n          maxWidth: 'none',\n          maxHeight: 'none',\n          transform: 'none',\n          willChange: isInteracting ? 'left, top, width, height' : 'auto',\n        },\n    [isFullscreen, position.x, position.y, size.width, size.height, isInteracting]\n  );\n\n  return (\n    <Dialog open={open} onOpenChange={onOpenChange}>\n      <DialogContent\n        ref={dialogRef}\n        style={dialogStyle}\n        hideCloseButton\n        className={cn(\n          'flex flex-col p-0 gap-0',\n          // Disable transitions during interaction for instant feedback\n          isInteracting && 'transition-none duration-0 [&_*]:transition-none',\n          isFullscreen ? 'rounded-none' : 'rounded-lg',\n          className\n        )}\n      >\n        {/* Header with drag handle */}\n        <div\n          className={cn(\n            'flex items-center gap-2 px-4 py-3 border-b bg-muted/30 flex-shrink-0',\n            !isFullscreen && 'cursor-grab active:cursor-grabbing'\n          )}\n          onMouseDown={handleDragStart}\n        >\n          {!isFullscreen && (\n            <GripVertical className=\"h-4 w-4 text-muted-foreground flex-shrink-0\" />\n          )}\n          <div className=\"flex-1 min-w-0 group flex items-center gap-2\">\n            {title && (\n              <DialogHeader className=\"p-0 space-y-0 min-w-0 flex-1\">\n                <DialogTitle className=\"text-base font-semibold leading-tight truncate\">\n                  {title}\n                </DialogTitle>\n                <DialogDescription className=\"sr-only\">Dialog content</DialogDescription>\n              </DialogHeader>\n            )}\n            {titleExtra && (\n              <div className=\"flex-shrink-0\" onMouseDown={e => e.stopPropagation()}>\n                {titleExtra}\n              </div>\n            )}\n          </div>\n          <div className=\"flex items-center gap-1 flex-shrink-0\">\n            <Button\n              variant=\"ghost\"\n              size=\"sm\"\n              className=\"h-7 w-7 p-0\"\n              onClick={toggleFullscreen}\n            >\n              {isFullscreen ? (\n                <Minimize2 className=\"h-4 w-4\" />\n              ) : (\n                <Maximize2 className=\"h-4 w-4\" />\n              )}\n            </Button>\n            <Button\n              variant=\"ghost\"\n              size=\"sm\"\n              className=\"h-7 w-7 p-0\"\n              onClick={() => onOpenChange(false)}\n            >\n              <X className=\"h-4 w-4\" />\n            </Button>\n          </div>\n        </div>\n\n        {/* Content */}\n        <div className=\"flex-1 overflow-y-auto p-4\">\n          {typeof children === 'function' ? children({ isFullscreen }) : children}\n        </div>\n\n        {/* Footer */}\n        {footer && (\n          <DialogFooter className=\"px-4 py-3 border-t bg-muted/30 flex-shrink-0\">\n            {footer}\n          </DialogFooter>\n        )}\n\n        {/* Resize handles (only when not fullscreen) */}\n        {!isFullscreen && (\n          <>\n            {/* Edges */}\n            <div\n              className=\"absolute top-0 left-2 right-2 h-1 cursor-n-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'n')}\n            />\n            <div\n              className=\"absolute bottom-0 left-2 right-2 h-1 cursor-s-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 's')}\n            />\n            <div\n              className=\"absolute left-0 top-2 bottom-2 w-1 cursor-w-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'w')}\n            />\n            <div\n              className=\"absolute right-0 top-2 bottom-2 w-1 cursor-e-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'e')}\n            />\n            {/* Corners */}\n            <div\n              className=\"absolute top-0 left-0 w-3 h-3 cursor-nw-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'nw')}\n            />\n            <div\n              className=\"absolute top-0 right-0 w-3 h-3 cursor-ne-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'ne')}\n            />\n            <div\n              className=\"absolute bottom-0 left-0 w-3 h-3 cursor-sw-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'sw')}\n            />\n            <div\n              className=\"absolute bottom-0 right-0 w-3 h-3 cursor-se-resize\"\n              onMouseDown={(e) => handleResizeStart(e, 'se')}\n            />\n          </>\n        )}\n      </DialogContent>\n    </Dialog>\n  );\n}\n","import { useEffect, useCallback, useState, useRef, useLayoutEffect, type ReactNode } from 'react';\nimport { cn } from '../../../src/utils/cn';\n\nexport interface ContextMenuPosition {\n  x: number;\n  y: number;\n}\n\nexport interface ContextMenuProps {\n  position: ContextMenuPosition;\n  onClose: () => void;\n  children: ReactNode;\n  className?: string;\n}\n\n/**\n * Base context menu container with positioning, close-on-outside-click,\n * and close-on-scroll behavior. Automatically adjusts position to stay within viewport.\n */\nexport function ContextMenu({ position, onClose, children, className }: ContextMenuProps) {\n  const menuRef = useRef<HTMLDivElement>(null);\n  const [adjustedPosition, setAdjustedPosition] = useState(position);\n\n  // Adjust position to keep menu within viewport\n  useLayoutEffect(() => {\n    if (!menuRef.current) return;\n\n    const menu = menuRef.current;\n    const rect = menu.getBoundingClientRect();\n    const viewportWidth = window.innerWidth;\n    const viewportHeight = window.innerHeight;\n    const padding = 8; // Padding from viewport edges\n\n    let newX = position.x;\n    let newY = position.y;\n\n    // Check right edge\n    if (position.x + rect.width > viewportWidth - padding) {\n      newX = Math.max(padding, viewportWidth - rect.width - padding);\n    }\n\n    // Check bottom edge\n    if (position.y + rect.height > viewportHeight - padding) {\n      newY = Math.max(padding, viewportHeight - rect.height - padding);\n    }\n\n    // Check left edge\n    if (newX < padding) {\n      newX = padding;\n    }\n\n    // Check top edge\n    if (newY < padding) {\n      newY = padding;\n    }\n\n    if (newX !== position.x || newY !== position.y) {\n      setAdjustedPosition({ x: newX, y: newY });\n    }\n  }, [position]);\n\n  // Close on click outside or scroll\n  useEffect(() => {\n    const handleClickOutside = () => onClose();\n    const handleScroll = () => onClose();\n\n    document.addEventListener('click', handleClickOutside);\n    document.addEventListener('scroll', handleScroll, true);\n    return () => {\n      document.removeEventListener('click', handleClickOutside);\n      document.removeEventListener('scroll', handleScroll, true);\n    };\n  }, [onClose]);\n\n  const handleClick = useCallback((e: React.MouseEvent) => {\n    e.stopPropagation();\n  }, []);\n\n  return (\n    <div\n      ref={menuRef}\n      role=\"menu\"\n      aria-label=\"Context menu\"\n      className={cn(\n        \"fixed z-50 min-w-[180px] rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95\",\n        className\n      )}\n      style={{\n        top: adjustedPosition.y,\n        left: adjustedPosition.x,\n      }}\n      onClick={handleClick}\n    >\n      {children}\n    </div>\n  );\n}\n","import { type ReactNode, type MouseEvent } from 'react';\nimport { cn } from '../../../src/utils/cn';\n\nexport interface ContextMenuItemProps {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n onMouseEnter?: () => void;\n icon?: ReactNode;\n children: ReactNode;\n /** Use 'default' for standard items, or specify a color variant */\n variant?: 'default' | 'success' | 'warning' | 'destructive' | 'purple';\n disabled?: boolean;\n className?: string;\n}\n\nconst variantStyles = {\n default: 'hover:bg-accent hover:text-accent-foreground',\n success: 'text-green-600 hover:bg-green-50 hover:text-green-700:bg-green-950',\n warning: 'text-amber-600 hover:bg-amber-50 hover:text-amber-700:bg-amber-950',\n destructive: 'text-destructive hover:bg-destructive hover:text-destructive-foreground',\n purple: 'text-purple-600 hover:bg-purple-50 hover:text-purple-700:bg-purple-950',\n};\n\n/**\n * A single menu item for the context menu.\n */\nexport function ContextMenuItem({\n onClick,\n onMouseEnter,\n icon,\n children,\n variant = 'default',\n disabled = false,\n className,\n}: ContextMenuItemProps) {\n return (\n <button\n role=\"menuitem\"\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={disabled}\n aria-disabled={disabled}\n className={cn(\n \"relative flex w-full cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none\",\n variantStyles[variant],\n disabled && \"opacity-50 cursor-not-allowed\",\n className\n )}\n >\n {icon && <span className=\"mr-2 h-4 w-4 flex items-center justify-center\" aria-hidden=\"true\">{icon}</span>}\n {children}\n </button>\n );\n}\n\n/**\n * Horizontal separator for context menu sections.\n */\nexport function ContextMenuSeparator() {\n return <div role=\"separator\" className=\"h-px bg-border my-1\" />;\n}\n","import { useState, type ReactNode } from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { cn } from '../../../src/utils/cn';\n\nexport interface ContextMenuSubmenuProps {\n  label: string;\n  icon?: ReactNode;\n  children: ReactNode;\n  /** Callback when this submenu opens (useful for closing other submenus) */\n  onOpen?: () => void;\n  /** External control for open state */\n  isOpen?: boolean;\n  /** External control for setting open state */\n  onOpenChange?: (open: boolean) => void;\n  className?: string;\n}\n\n/**\n * A hoverable submenu that opens to the right of the trigger.\n * Can be controlled externally or manage its own state.\n */\nexport function ContextMenuSubmenu({\n  label,\n  icon,\n  children,\n  onOpen,\n  isOpen: externalIsOpen,\n  onOpenChange,\n  className,\n}: ContextMenuSubmenuProps) {\n  const [internalIsOpen, setInternalIsOpen] = useState(false);\n\n  // Use external control if provided, otherwise use internal state\n  const isControlled = externalIsOpen !== undefined;\n  const isOpen = isControlled ? externalIsOpen : internalIsOpen;\n\n  const handleMouseEnter = () => {\n    if (isControlled) {\n      onOpenChange?.(true);\n    } else {\n      setInternalIsOpen(true);\n    }\n    onOpen?.();\n  };\n\n  const handleMouseLeave = () => {\n    if (isControlled) {\n      onOpenChange?.(false);\n    } else {\n      setInternalIsOpen(false);\n    }\n  };\n\n  return (\n    <div\n      className={cn(\"relative\", className)}\n      onMouseEnter={handleMouseEnter}\n      onMouseLeave={handleMouseLeave}\n    >\n      <button\n        role=\"menuitem\"\n        aria-haspopup=\"menu\"\n        aria-expanded={isOpen}\n        className=\"relative flex w-full cursor-pointer select-none items-center justify-between rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground\"\n      >\n        <span className=\"flex items-center\">\n          {icon && <span className=\"mr-2 h-4 w-4 flex items-center justify-center\" aria-hidden=\"true\">{icon}</span>}\n          {label}\n        </span>\n        <ChevronRight className=\"h-4 w-4\" aria-hidden=\"true\" />\n      </button>\n      {isOpen && (\n        <div role=\"menu\" aria-label={`${label} submenu`} className=\"absolute left-full top-0 ml-1 min-w-[160px] max-h-[300px] overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md\">\n          {children}\n        </div>\n      )}\n    </div>\n  );\n}\n","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(220, 13%, 18%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(220, 13%, 18%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"code[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"inherit\",\n    \"textShadow\": \"none\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \"0.2em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(220, 10%, 40%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(220, 10%, 40%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"punctuation\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"cursor\": \"help\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"class-name\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \"property\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"deleted\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"important\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"regex\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"attr-value > .token.punctuation\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"function\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \"url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \"attr-value > .token.punctuation.attr-equals\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"special-attr > .token.attr-value > .token.value.css\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-css .token.selector\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-css .token.property\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-css .token.function\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-css .token.url > .token.function\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-css .token.url > .token.string.url\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".language-css .token.important\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-css .token.atrule .token.rule\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-javascript .token.operator\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation\": {\n    \"color\": \"hsl(5, 48%, 51%)\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-json .token.null.keyword\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \".language-markdown .token.url\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url > .token.operator\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url-reference.url > .token.string\": {\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".language-markdown .token.url > .token.content\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".language-markdown .token.url > .token.url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-markdown .token.url-reference.url\": {\n    \"color\": \"hsl(187, 47%, 55%)\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"hsl(220, 10%, 40%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.code-snippet\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".language-markdown .token.bold .token.content\": {\n    \"color\": \"hsl(29, 54%, 61%)\"\n  },\n  \".language-markdown .token.italic .token.content\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".language-markdown .token.strike .token.content\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.strike .token.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".language-markdown .token.title.important > .token.punctuation\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \"0.8\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"token.space:before\": {\n    \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n    \"textShadow\": \"none\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item\": {\n    \"marginRight\": \"0.4em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 9%, 55%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"background\": \"hsl(220, 13%, 28%)\",\n    \"color\": \"hsl(220, 14%, 71%)\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"hsla(220, 100%, 80%, 0.04)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"background\": \"hsl(220, 13%, 26%)\",\n    \"color\": \"hsl(220, 14%, 71%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"hsla(220, 100%, 80%, 0.04)\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"hsl(220, 14%, 45%)\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"hsl(220, 14%, 45%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"hsl(355, 65%, 65%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"hsl(95, 38%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"hsl(207, 82%, 66%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"hsl(286, 60%, 67%)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \".prism-previewer.prism-previewer:before\": {\n    \"borderColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-gradient.prism-previewer-gradient div\": {\n    \"borderColor\": \"hsl(224, 13%, 17%)\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-color.prism-previewer-color:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer.prism-previewer:after\": {\n    \"borderTopColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-flipped.prism-previewer-flipped.after\": {\n    \"borderBottomColor\": \"hsl(224, 13%, 17%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle:before\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-time.prism-previewer-time:before\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing\": {\n    \"background\": \"hsl(219, 13%, 22%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-time.prism-previewer-time circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing circle\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\",\n    \"fill\": \"transparent\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing path\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing line\": {\n    \"stroke\": \"hsl(220, 14%, 71%)\"\n  }\n};","export default {\n  \"code[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(230, 1%, 98%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\"\n  },\n  \"pre[class*=\\\"language-\\\"]\": {\n    \"background\": \"hsl(230, 1%, 98%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n    \"direction\": \"ltr\",\n    \"textAlign\": \"left\",\n    \"whiteSpace\": \"pre\",\n    \"wordSpacing\": \"normal\",\n    \"wordBreak\": \"normal\",\n    \"lineHeight\": \"1.5\",\n    \"MozTabSize\": \"2\",\n    \"OTabSize\": \"2\",\n    \"tabSize\": \"2\",\n    \"WebkitHyphens\": \"none\",\n    \"MozHyphens\": \"none\",\n    \"msHyphens\": \"none\",\n    \"hyphens\": \"none\",\n    \"padding\": \"1em\",\n    \"margin\": \"0.5em 0\",\n    \"overflow\": \"auto\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::-moz-selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"]::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"code[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \"pre[class*=\\\"language-\\\"] *::selection\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"inherit\"\n  },\n  \":not(pre) > code[class*=\\\"language-\\\"]\": {\n    \"padding\": \"0.2em 0.3em\",\n    \"borderRadius\": \"0.3em\",\n    \"whiteSpace\": \"normal\"\n  },\n  \"comment\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \"prolog\": {\n    \"color\": \"hsl(230, 4%, 64%)\"\n  },\n  \"cdata\": {\n    \"color\": \"hsl(230, 4%, 64%)\"\n  },\n  \"doctype\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"punctuation\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"entity\": {\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"cursor\": \"help\"\n  },\n  \"attr-name\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"class-name\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"boolean\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"constant\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"number\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"atrule\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \"keyword\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \"property\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"tag\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"symbol\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"deleted\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"important\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"selector\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"string\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"char\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"builtin\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"inserted\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"regex\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"attr-value\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"attr-value > .token.punctuation\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \"variable\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"operator\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"function\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \"url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \"attr-value > .token.punctuation.attr-equals\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"special-attr > .token.attr-value > .token.value.css\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-css .token.selector\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-css .token.property\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-css .token.function\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-css .token.url > .token.function\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-css .token.url > .token.string.url\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".language-css .token.important\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-css .token.atrule .token.rule\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-javascript .token.operator\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation\": {\n    \"color\": \"hsl(344, 84%, 43%)\"\n  },\n  \".language-json .token.operator\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-json .token.null.keyword\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \".language-markdown .token.url\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url > .token.operator\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url-reference.url > .token.string\": {\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".language-markdown .token.url > .token.content\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".language-markdown .token.url > .token.url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-markdown .token.url-reference.url\": {\n    \"color\": \"hsl(198, 99%, 37%)\"\n  },\n  \".language-markdown .token.blockquote.punctuation\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.hr.punctuation\": {\n    \"color\": \"hsl(230, 4%, 64%)\",\n    \"fontStyle\": \"italic\"\n  },\n  \".language-markdown .token.code-snippet\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".language-markdown .token.bold .token.content\": {\n    \"color\": \"hsl(35, 99%, 36%)\"\n  },\n  \".language-markdown .token.italic .token.content\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".language-markdown .token.strike .token.content\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.strike .token.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.list.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".language-markdown .token.title.important > .token.punctuation\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \"bold\": {\n    \"fontWeight\": \"bold\"\n  },\n  \"italic\": {\n    \"fontStyle\": \"italic\"\n  },\n  \"namespace\": {\n    \"Opacity\": \"0.8\"\n  },\n  \"token.tab:not(:empty):before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.cr:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.lf:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"token.space:before\": {\n    \"color\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item\": {\n    \"marginRight\": \"0.4em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 6%, 44%)\",\n    \"padding\": \"0.1em 0.4em\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n    \"background\": \"hsl(230, 1%, 78%)\",\n    \"color\": \"hsl(230, 8%, 24%)\"\n  },\n  \".line-highlight.line-highlight\": {\n    \"background\": \"hsla(230, 8%, 24%, 0.05)\"\n  },\n  \".line-highlight.line-highlight:before\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \".line-highlight.line-highlight[data-end]:after\": {\n    \"background\": \"hsl(230, 1%, 90%)\",\n    \"color\": \"hsl(230, 8%, 24%)\",\n    \"padding\": \"0.1em 0.6em\",\n    \"borderRadius\": \"0.3em\",\n    \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n  },\n  \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n    \"backgroundColor\": \"hsla(230, 8%, 24%, 0.05)\"\n  },\n  \".line-numbers.line-numbers .line-numbers-rows\": {\n    \"borderRightColor\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \".command-line .command-line-prompt\": {\n    \"borderRightColor\": \"hsla(230, 8%, 24%, 0.2)\"\n  },\n  \".line-numbers .line-numbers-rows > span:before\": {\n    \"color\": \"hsl(230, 1%, 62%)\"\n  },\n  \".command-line .command-line-prompt > span:before\": {\n    \"color\": \"hsl(230, 1%, 62%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n    \"color\": \"hsl(5, 74%, 59%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n    \"color\": \"hsl(119, 34%, 47%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n    \"color\": \"hsl(221, 87%, 60%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n    \"color\": \"hsl(301, 63%, 40%)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n    \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection\": {\n    \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n  },\n  \".prism-previewer.prism-previewer:before\": {\n    \"borderColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-gradient.prism-previewer-gradient div\": {\n    \"borderColor\": \"hsl(0, 0, 95%)\",\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-color.prism-previewer-color:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing:before\": {\n    \"borderRadius\": \"0.3em\"\n  },\n  \".prism-previewer.prism-previewer:after\": {\n    \"borderTopColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-flipped.prism-previewer-flipped.after\": {\n    \"borderBottomColor\": \"hsl(0, 0, 95%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle:before\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-time.prism-previewer-time:before\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing\": {\n    \"background\": \"hsl(0, 0%, 100%)\"\n  },\n  \".prism-previewer-angle.prism-previewer-angle circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-time.prism-previewer-time circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"strokeOpacity\": \"1\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing circle\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\",\n    \"fill\": \"transparent\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing path\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\"\n  },\n  \".prism-previewer-easing.prism-previewer-easing line\": {\n    \"stroke\": \"hsl(230, 8%, 24%)\"\n  }\n};","import { useRef, useEffect, useCallback } from 'react';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { oneDark, oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport { cn } from '../../src/utils/cn';\n\ninterface CodeViewerProps {\n  code: string;\n  language?: string;\n  filename?: string;\n  lineStart?: number;\n  highlightLines?: number[];\n  className?: string;\n  showLineNumbers?: boolean;\n  showFilename?: boolean;\n  autoScrollToHighlight?: boolean;\n}\n\n// Map file extensions to Prism language identifiers\nfunction getLanguageFromFilename(filename: string): string {\n  const ext = filename.split('.').pop()?.toLowerCase() || '';\n  const languageMap: Record<string, string> = {\n    ts: 'typescript',\n    tsx: 'tsx',\n    js: 'javascript',\n    jsx: 'jsx',\n    py: 'python',\n    rb: 'ruby',\n    rs: 'rust',\n    go: 'go',\n    java: 'java',\n    kt: 'kotlin',\n    swift: 'swift',\n    cs: 'csharp',\n    cpp: 'cpp',\n    c: 'c',\n    h: 'c',\n    hpp: 'cpp',\n    php: 'php',\n    html: 'html',\n    css: 'css',\n    scss: 'scss',\n    less: 'less',\n    json: 'json',\n    yaml: 'yaml',\n    yml: 'yaml',\n    xml: 'xml',\n    md: 'markdown',\n    sql: 'sql',\n    sh: 'bash',\n    bash: 'bash',\n    zsh: 'bash',\n    dockerfile: 'docker',\n    makefile: 'makefile',\n  };\n  return languageMap[ext] || 'text';\n}\n\n// Detect if dark mode is active\nfunction useIsDarkMode(): boolean {\n  if (typeof window === 'undefined') return false;\n  return document.documentElement.classList.contains('dark');\n}\n\n/**\n * Code viewer with syntax highlighting, line numbers, and highlighted line support.\n *\n * @example\n * ```tsx\n * <CodeViewer\n *   code={sourceCode}\n *   filename=\"example.ts\"\n *   highlightLines={[5, 6, 7]}\n *   lineStart={10}\n * />\n * ```\n */\nexport function CodeViewer({\n  code,\n  language,\n  filename,\n  lineStart = 1,\n  highlightLines = [],\n  className,\n  showLineNumbers = true,\n  showFilename = true,\n  autoScrollToHighlight = true,\n}: CodeViewerProps) {\n  const isDark = useIsDarkMode();\n  const detectedLanguage = language || (filename ? getLanguageFromFilename(filename) : 'text');\n  const containerRef = useRef<HTMLDivElement>(null);\n  const hasScrolledRef = useRef(false);\n\n  // Create a set for O(1) lookup of highlighted lines\n  const highlightSet = new Set(highlightLines);\n\n  // Auto-scroll to the first highlighted line\n  const scrollToHighlight = useCallback(() => {\n    if (!autoScrollToHighlight || highlightLines.length === 0 || !containerRef.current) return;\n    if (hasScrolledRef.current) return;\n\n    // Find the first highlighted line element\n    // The line number in the DOM is relative to the code string (1-indexed)\n    const firstHighlightLine = Math.min(...highlightLines);\n    const lineIndex = firstHighlightLine - lineStart; // Convert to 0-based index in code string\n\n    // react-syntax-highlighter renders lines as spans with class \"linenumber\" for numbers\n    // and the code lines are siblings. We need to find the right line by counting.\n    const container = containerRef.current;\n    const preElement = container.querySelector('pre');\n    if (!preElement) return;\n\n    // Each line is wrapped in a span, find by index\n    const codeElement = preElement.querySelector('code');\n    if (!codeElement) return;\n\n    // Lines are direct children of code element when wrapLines is true\n    const lines = codeElement.children;\n    if (lineIndex >= 0 && lineIndex < lines.length) {\n      const targetLine = lines[lineIndex] as HTMLElement;\n      if (targetLine) {\n        // Scroll to show the line with some context above\n        const lineHeight = targetLine.offsetHeight;\n        const scrollTarget = targetLine.offsetTop - (lineHeight * 3); // 3 lines of context\n        container.scrollTop = Math.max(0, scrollTarget);\n        hasScrolledRef.current = true;\n      }\n    }\n  }, [autoScrollToHighlight, highlightLines, lineStart]);\n\n  // Reset scroll flag when code or highlights change\n  useEffect(() => {\n    hasScrolledRef.current = false;\n  }, [code, highlightLines.join(',')]);\n\n  // Scroll after render\n  useEffect(() => {\n    // Small delay to ensure the syntax highlighter has rendered\n    const timeout = setTimeout(scrollToHighlight, 100);\n    return () => clearTimeout(timeout);\n  }, [scrollToHighlight, code]);\n\n  return (\n    <div className={cn('rounded-lg border flex flex-col', className)}>\n      {filename && showFilename && (\n        <div className=\"px-3 py-2 bg-muted/50 border-b text-xs font-mono text-muted-foreground flex items-center gap-2 flex-shrink-0\">\n          <span className=\"truncate\">{filename}</span>\n          {lineStart > 1 && (\n            <span className=\"text-muted-foreground/60\">starting at line {lineStart}</span>\n          )}\n        </div>\n      )}\n      <div ref={containerRef} className=\"flex-1 overflow-auto\">\n        <SyntaxHighlighter\n        language={detectedLanguage}\n        style={isDark ? oneDark : oneLight}\n        showLineNumbers={showLineNumbers}\n        startingLineNumber={lineStart}\n        wrapLines\n        lineProps={(lineNumber) => {\n          const style: React.CSSProperties = {\n            display: 'block',\n            width: '100%',\n          };\n          if (highlightSet.has(lineNumber)) {\n            style.backgroundColor = isDark ? 'rgba(255, 255, 0, 0.1)' : 'rgba(255, 255, 0, 0.2)';\n            style.borderLeft = '3px solid #f59e0b';\n            style.paddingLeft = '0.5rem';\n            style.marginLeft = '-0.5rem';\n          }\n          return { style };\n        }}\n        customStyle={{\n          margin: 0,\n          padding: '1rem',\n          fontSize: '0.8125rem',\n          lineHeight: '1.5',\n          backgroundColor: isDark ? '#1e1e1e' : '#fafafa',\n        }}\n        codeTagProps={{\n          style: {\n            fontFamily: 'ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace',\n          },\n        }}\n      >\n        {code}\n      </SyntaxHighlighter>\n      </div>\n    </div>\n  );\n}\n\nexport type { CodeViewerProps };\n\n/**\n * Compact version for inline code snippets without line numbers.\n */\nexport function CodeSnippet({\n  code,\n  language,\n  filename,\n  className,\n}: {\n  code: string;\n  language?: string;\n  filename?: string;\n  className?: string;\n}) {\n  return (\n    <CodeViewer\n      code={code}\n      language={language}\n      filename={filename}\n      showLineNumbers={false}\n      className={cn('text-sm', className)}\n    />\n  );\n}\n","import type { ReactNode } from 'react';\nimport { Command } from 'cmdk';\nimport { Button } from './button';\nimport { Dialog, DialogContent } from './dialog';\nimport { cn } from '../../src/utils/cn';\n\nexport interface AppCommandPaletteItem {\n  id: string;\n  title: string;\n  action: () => Promise<void> | void;\n  group?: string;\n  description?: string;\n  icon?: ReactNode;\n  keywords?: string[];\n  badge?: ReactNode;\n  disabled?: boolean;\n}\n\nexport interface AppCommandPaletteProps {\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n  items: AppCommandPaletteItem[];\n  pendingId?: string | null;\n  onRunAction?: (item: AppCommandPaletteItem) => Promise<void> | void;\n  title?: string;\n  description?: string;\n  placeholder?: string;\n  emptyLabel?: string;\n  closeLabel?: string;\n  dialogTestId?: string;\n  maxWidthClassName?: string;\n  groupOrder?: string[];\n  footerHint?: ReactNode;\n}\n\nconst defaultFooterHint = (\n  <div className=\"flex items-center gap-4\">\n    <span><kbd className=\"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px]\">↑↓</kbd> Navigate</span>\n    <span><kbd className=\"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px]\">↵</kbd> Select</span>\n    <span><kbd className=\"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px]\">Esc</kbd> Close</span>\n  </div>\n);\n\nexport function AppCommandPalette({\n  open,\n  onOpenChange,\n  items,\n  pendingId,\n  onRunAction,\n  title = 'Quick Actions',\n  description = 'Search pages, tools, and support actions without leaving the current workflow.',\n  placeholder = 'Search pages, tools, and support actions...',\n  emptyLabel = 'No matching actions.',\n  closeLabel = 'Close',\n  dialogTestId = 'app-command-palette',\n  maxWidthClassName = 'max-w-2xl',\n  groupOrder,\n  footerHint = defaultFooterHint,\n}: AppCommandPaletteProps) {\n  const orderedGroups = groupOrder ?? [];\n  const encounteredGroups = items\n    .map((item) => item.group)\n    .filter((group): group is string => Boolean(group))\n    .filter((group, index, all) => all.indexOf(group) === index);\n\n  const allGroups = [...orderedGroups, ...encounteredGroups].filter(\n    (group, index, all) => all.indexOf(group) === index,\n  );\n\n  const ungroupedItems = items.filter((item) => !item.group);\n  const groupedItems = allGroups\n    .map((group) => ({\n      group,\n      items: items.filter((item) => item.group === group),\n    }))\n    .filter((entry) => entry.items.length > 0);\n\n  const runItem = async (item: AppCommandPaletteItem) => {\n    if (item.disabled) {\n      return;\n    }\n\n    if (onRunAction) {\n      await onRunAction(item);\n      return;\n    }\n\n    await item.action();\n    onOpenChange(false);\n  };\n\n  return (\n    <Dialog open={open} onOpenChange={onOpenChange}>\n      <DialogContent\n        className={cn(maxWidthClassName, 'overflow-hidden p-0')}\n        data-testid={dialogTestId}\n      >\n        <div className=\"border-b border-border/70 px-4 py-4\">\n          <p className=\"text-sm font-semibold text-foreground\">{title}</p>\n          <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n        </div>\n\n        <Command className=\"bg-card text-card-foreground\" loop>\n          <Command.Input\n            autoFocus\n            placeholder={placeholder}\n            className=\"w-full border-b border-border/70 bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground\"\n          />\n\n          <Command.List className=\"max-h-[420px] overflow-y-auto p-2\">\n            <Command.Empty className=\"px-3 py-6 text-center text-sm text-muted-foreground\">\n              {emptyLabel}\n            </Command.Empty>\n\n            {ungroupedItems.map((item) => (\n              <Command.Item\n                key={item.id}\n                value={[item.title, item.description, ...(item.keywords ?? [])].filter(Boolean).join(' ')}\n                onSelect={() => {\n                  void runItem(item);\n                }}\n                disabled={item.disabled}\n                className=\"flex cursor-pointer items-start gap-3 rounded-lg px-3 py-3 text-sm aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\"\n              >\n                {item.icon ? <div className=\"mt-0.5 text-muted-foreground\">{item.icon}</div> : null}\n                <div className=\"min-w-0 flex-1 space-y-1\">\n                  <div className=\"flex items-center gap-2\">\n                    <p className=\"font-medium text-foreground\">\n                      {pendingId === item.id ? `${item.title}...` : item.title}\n                    </p>\n                    {item.badge}\n                  </div>\n                  {item.description ? <p className=\"text-muted-foreground\">{item.description}</p> : null}\n                </div>\n              </Command.Item>\n            ))}\n\n            {groupedItems.map(({ group, items: groupItems }) => (\n              <Command.Group\n                key={group}\n                heading={group}\n                className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-semibold [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-[0.16em] [&_[cmdk-group-heading]]:text-muted-foreground\"\n              >\n                {groupItems.map((item) => (\n                  <Command.Item\n                    key={item.id}\n                    value={[item.title, item.description, group, ...(item.keywords ?? [])].filter(Boolean).join(' ')}\n                    onSelect={() => {\n                      void runItem(item);\n                    }}\n                    disabled={item.disabled}\n                    className=\"flex cursor-pointer items-start gap-3 rounded-lg px-3 py-3 text-sm aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\"\n                  >\n                    {item.icon ? <div className=\"mt-0.5 text-muted-foreground\">{item.icon}</div> : null}\n                    <div className=\"min-w-0 flex-1 space-y-1\">\n                      <div className=\"flex items-center gap-2\">\n                        <p className=\"font-medium text-foreground\">\n                          {pendingId === item.id ? `${item.title}...` : item.title}\n                        </p>\n                        {item.badge}\n                      </div>\n                      {item.description ? <p className=\"text-muted-foreground\">{item.description}</p> : null}\n                    </div>\n                  </Command.Item>\n                ))}\n              </Command.Group>\n            ))}\n          </Command.List>\n        </Command>\n\n        <div className=\"flex items-center justify-between border-t border-border/70 px-4 py-3 text-xs text-muted-foreground\">\n          {footerHint}\n          <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => onOpenChange(false)}>\n            {closeLabel}\n          </Button>\n        </div>\n      </DialogContent>\n    </Dialog>\n  );\n}\n","/**\n * Date formatting utilities for displaying relative time\n */\n\n/**\n * Formats a date/timestamp as relative time (e.g., \"2 minutes ago\", \"3 hours ago\")\n * @param date - Date object, timestamp string, or timestamp number\n * @returns Formatted relative time string\n */\nexport function formatRelativeTime(date: Date | string | number): string {\n  const now = new Date();\n  const then = new Date(date);\n  const seconds = Math.floor((now.getTime() - then.getTime()) / 1000);\n\n  if (isNaN(seconds)) {\n    return 'Unknown';\n  }\n\n  if (seconds < 0) {\n    return 'In the future';\n  }\n\n  if (seconds < 10) {\n    return 'Just now';\n  }\n\n  if (seconds < 60) {\n    return `${seconds} seconds ago`;\n  }\n\n  const minutes = Math.floor(seconds / 60);\n  if (minutes === 1) {\n    return '1 minute ago';\n  }\n  if (minutes < 60) {\n    return `${minutes} minutes ago`;\n  }\n\n  const hours = Math.floor(minutes / 60);\n  if (hours === 1) {\n    return '1 hour ago';\n  }\n  if (hours < 24) {\n    return `${hours} hours ago`;\n  }\n\n  const days = Math.floor(hours / 24);\n  if (days === 1) {\n    return '1 day ago';\n  }\n  if (days < 7) {\n    return `${days} days ago`;\n  }\n\n  const weeks = Math.floor(days / 7);\n  if (weeks === 1) {\n    return '1 week ago';\n  }\n  if (weeks < 4) {\n    return `${weeks} weeks ago`;\n  }\n\n  const months = Math.floor(days / 30);\n  if (months === 1) {\n    return '1 month ago';\n  }\n  if (months < 12) {\n    return `${months} months ago`;\n  }\n\n  const years = Math.floor(days / 365);\n  if (years === 1) {\n    return '1 year ago';\n  }\n  return `${years} years ago`;\n}\n\n/**\n * Formats a date to a standard display format\n * @param date - Date object, timestamp string, or timestamp number\n * @param options - Intl.DateTimeFormatOptions for formatting\n * @returns Formatted date string\n */\nexport function formatDateTime(\n  date: Date | string | number,\n  options: Intl.DateTimeFormatOptions = {\n    year: 'numeric',\n    month: 'short',\n    day: 'numeric',\n    hour: '2-digit',\n    minute: '2-digit',\n  }\n): string {\n  try {\n    const dateObj = new Date(date);\n    if (isNaN(dateObj.getTime())) {\n      return 'Invalid date';\n    }\n    return dateObj.toLocaleString(undefined, options);\n  } catch {\n    return 'Invalid date';\n  }\n}\n\n/**\n * Formats duration in seconds to human-readable format\n * @param seconds - Duration in seconds\n * @returns Formatted duration string (e.g., \"2h 15m\", \"5d 3h\")\n */\nexport function formatDuration(seconds: number): string {\n  if (seconds < 60) {\n    return `${Math.floor(seconds)}s`;\n  }\n\n  const minutes = Math.floor(seconds / 60);\n  if (minutes < 60) {\n    return `${minutes}m`;\n  }\n\n  const hours = Math.floor(minutes / 60);\n  const remainingMinutes = minutes % 60;\n  if (hours < 24) {\n    return remainingMinutes > 0 ? `${hours}h ${remainingMinutes}m` : `${hours}h`;\n  }\n\n  const days = Math.floor(hours / 24);\n  const remainingHours = hours % 24;\n  return remainingHours > 0 ? `${days}d ${remainingHours}h` : `${days}d`;\n}\n\n/**\n * Gets a short relative time label (e.g., \"2m\", \"3h\", \"5d\")\n * @param date - Date object, timestamp string, or timestamp number\n * @returns Short relative time string\n */\nexport function formatShortRelativeTime(date: Date | string | number): string {\n  const now = new Date();\n  const then = new Date(date);\n  const seconds = Math.floor((now.getTime() - then.getTime()) / 1000);\n\n  if (isNaN(seconds) || seconds < 0) {\n    return '--';\n  }\n\n  if (seconds < 60) {\n    return `${seconds}s`;\n  }\n\n  const minutes = Math.floor(seconds / 60);\n  if (minutes < 60) {\n    return `${minutes}m`;\n  }\n\n  const hours = Math.floor(minutes / 60);\n  if (hours < 24) {\n    return `${hours}h`;\n  }\n\n  const days = Math.floor(hours / 24);\n  if (days < 365) {\n    return `${days}d`;\n  }\n\n  const years = Math.floor(days / 365);\n  return `${years}y`;\n}","/**\n * Number and byte formatting utilities\n */\n\n/**\n * Formats bytes to human-readable size\n * @param bytes - Number of bytes\n * @returns Formatted string (e.g., \"1.50 KB\", \"2.30 MB\")\n */\nexport function formatBytes(bytes: number): string {\n  if (bytes === 0) return '0 B';\n  const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];\n  const i = Math.floor(Math.log(bytes) / Math.log(1024));\n  return `${(bytes / Math.pow(1024, i)).toFixed(2)} ${sizes[i]}`;\n}\n\n/**\n * Formats large numbers with K/M suffixes\n * @param num - Number to format\n * @returns Formatted string (e.g., \"1.5K\", \"2.3M\")\n */\nexport function formatNumber(num: number): string {\n  if (num < 1000) return String(num);\n  if (num < 1000000) {\n    const value = num / 1000;\n    return `${Number.isInteger(value) ? value : value.toFixed(1).replace(/\\.0$/, '')}K`;\n  }\n  const value = num / 1000000;\n  return `${Number.isInteger(value) ? value : value.toFixed(1).replace(/\\.0$/, '')}M`;\n}\n\n/**\n * Formats duration in milliseconds to human-readable format\n * @param ms - Duration in milliseconds\n * @returns Formatted duration string (e.g., \"2h 15m\", \"45s\")\n */\nexport function formatDurationMs(ms: number): string {\n  const seconds = Math.floor(ms / 1000);\n  const minutes = Math.floor(seconds / 60);\n  const hours = Math.floor(minutes / 60);\n\n  if (hours > 0) {\n    return `${hours}h ${minutes % 60}m`;\n  }\n  if (minutes > 0) {\n    return `${minutes}m ${seconds % 60}s`;\n  }\n  return `${seconds}s`;\n}\n","// Predefined colors for tags\nconst TAG_COLORS = [\n  { bg: 'bg-blue-100', text: 'text-blue-800', border: 'border-blue-300' },\n  { bg: 'bg-green-100', text: 'text-green-800', border: 'border-green-300' },\n  { bg: 'bg-yellow-100', text: 'text-yellow-800', border: 'border-yellow-300' },\n  { bg: 'bg-purple-100', text: 'text-purple-800', border: 'border-purple-300' },\n  { bg: 'bg-pink-100', text: 'text-pink-800', border: 'border-pink-300' },\n  { bg: 'bg-indigo-100', text: 'text-indigo-800', border: 'border-indigo-300' },\n  { bg: 'bg-red-100', text: 'text-red-800', border: 'border-red-300' },\n  { bg: 'bg-orange-100', text: 'text-orange-800', border: 'border-orange-300' },\n  { bg: 'bg-teal-100', text: 'text-teal-800', border: 'border-teal-300' },\n  { bg: 'bg-cyan-100', text: 'text-cyan-800', border: 'border-cyan-300' },\n];\n\n// Simple hash function to consistently assign colors to tags\nfunction hashString(str: string): number {\n  let hash = 0;\n  for (let i = 0; i < str.length; i++) {\n    const char = str.charCodeAt(i);\n    hash = ((hash << 5) - hash) + char;\n    hash = hash & hash; // Convert to 32-bit integer\n  }\n  return Math.abs(hash);\n}\n\nexport function getTagColor(tag: string) {\n  const index = hashString(tag) % TAG_COLORS.length;\n  return TAG_COLORS[index];\n}\n\nexport function getTagClassName(tag: string) {\n  const color = getTagColor(tag);\n  if (!color) {\n    return 'bg-gray-100 text-gray-700 border-gray-300 border';\n  }\n  return `${color.bg} ${color.text} ${color.border} border`;\n}","/**\n * Formats a date as relative time (e.g., \"5m ago\", \"2d ago\")\n * @param date - Date to format\n * @param options - Formatting options\n * @returns Formatted relative time string\n */\nexport function timeAgo(date: Date | string, options?: { justNow?: boolean }): string {\n  const now = new Date();\n  const past = new Date(date);\n  const seconds = Math.floor((now.getTime() - past.getTime()) / 1000);\n\n  if (seconds < 60) {\n    return options?.justNow ? 'just now' : `${seconds}s ago`;\n  }\n\n  const minutes = Math.floor(seconds / 60);\n  if (minutes < 60) return `${minutes}m ago`;\n\n  const hours = Math.floor(minutes / 60);\n  if (hours < 24) return `${hours}h ago`;\n\n  const days = Math.floor(hours / 24);\n  if (days < 30) return `${days}d ago`;\n\n  const months = Math.floor(days / 30);\n  if (months < 12) return `${months}mo ago`;\n\n  const years = Math.floor(months / 12);\n  return `${years}y ago`;\n}\n\n/**\n * Alias for timeAgo with \"just now\" for recent times\n * @param date - Date to format\n * @returns Formatted relative time string (e.g., \"just now\", \"5m ago\")\n */\nexport function formatTimeAgo(date: Date | string): string {\n  return timeAgo(date, { justNow: true });\n}","/**\n * API Readiness Utility\n * Handles checking if the API server is ready before making requests\n */\n\nexport interface ApiReadinessResult {\n    ready: boolean;\n    error?: string;\n    retryAfter?: number;\n}\n\nexport interface ApiReadinessOptions {\n    healthEndpoint?: string;\n    timeout?: number;\n    maxAttempts?: number;\n    initialDelay?: number;\n    maxDelay?: number;\n}\n\n/**\n * Check if the API server is ready to accept requests\n */\nexport async function checkApiReadiness(\n    apiUrl: string,\n    timeout = 5000\n): Promise<ApiReadinessResult> {\n    try {\n        const controller = new AbortController();\n        const timeoutId = setTimeout(() => controller.abort(), timeout);\n        \n        const response = await fetch(`${apiUrl}/api/health`, {\n            signal: controller.signal,\n            method: 'GET',\n            headers: {\n                'Accept': 'application/json'\n            }\n        });\n        \n        clearTimeout(timeoutId);\n        \n        if (response.ok) {\n            await response.json();\n            // API is ready as long as it responds, regardless of health status\n            return {\n                ready: true\n            };\n        } else {\n            return {\n                ready: false,\n                error: `Server returned ${response.status}: ${response.statusText}`,\n                retryAfter: 2000\n            };\n        }\n        \n    } catch (error: any) {\n        if (error.name === 'AbortError') {\n            return {\n                ready: false,\n                error: 'Request timeout',\n                retryAfter: 3000\n            };\n        }\n        \n        if (error.code === 'ECONNREFUSED' || error.message.includes('fetch')) {\n            return {\n                ready: false,\n                error: 'Server not ready',\n                retryAfter: 2000\n            };\n        }\n        \n        return {\n            ready: false,\n            error: error.message,\n            retryAfter: 5000\n        };\n    }\n}\n\n/**\n * Wait for API to be ready with exponential backoff\n */\nexport async function waitForApiReady(\n    apiUrl: string,\n    options: ApiReadinessOptions = {}\n): Promise<boolean> {\n    const {\n        maxAttempts = 10,\n        initialDelay = 1000,\n        maxDelay = 10000,\n        timeout = 5000\n    } = options;\n    \n    let attempts = 0;\n    let delay = initialDelay;\n    \n    while (attempts < maxAttempts) {\n        attempts++;\n        \n        console.log(`🔍 Checking API readiness (attempt ${attempts}/${maxAttempts})...`);\n        \n        const result = await checkApiReadiness(apiUrl, timeout);\n        \n        if (result.ready) {\n            console.log('✅ API is ready!');\n            return true;\n        }\n        \n        console.log(`⏳ API not ready: ${result.error}. Retrying in ${delay}ms...`);\n        \n        if (attempts < maxAttempts) {\n            await new Promise(resolve => setTimeout(resolve, delay));\n            delay = Math.min(delay * 2, maxDelay);\n        }\n    }\n    \n    console.error('❌ API failed to become ready after all attempts');\n    return false;\n}\n\n/**\n * Enhanced fetch with API readiness check\n */\nexport async function apiRequest<T = any>(\n    apiUrl: string,\n    endpoint: string,\n    options: RequestInit = {}\n): Promise<T> {\n    // Check API readiness first\n    const readiness = await checkApiReadiness(apiUrl);\n    \n    if (!readiness.ready) {\n        throw new Error(`API not ready: ${readiness.error}`);\n    }\n    \n    const url = endpoint.startsWith('http') ? endpoint : `${apiUrl}${endpoint}`;\n    \n    const response = await fetch(url, {\n        ...options,\n        headers: {\n            'Content-Type': 'application/json',\n            ...options.headers\n        }\n    });\n    \n    if (!response.ok) {\n        throw new Error(`API request failed: ${response.status} ${response.statusText}`);\n    }\n    \n    return response.json();\n}\n\n/**\n * React Hook for API Readiness\n */\nexport function useApiReadiness(\n    apiUrl: string,\n    options: ApiReadinessOptions = {}\n): { ready: boolean; error: string | null; checking: boolean } {\n    if (typeof window === 'undefined') {\n        // Server-side rendering\n        return { ready: true, error: null, checking: false };\n    }\n    \n    const [state, setState] = (window as any).React?.useState?.({\n        ready: false,\n        error: null as string | null,\n        checking: true\n    }) || { ready: false, error: null, checking: true };\n    \n    (window as any).React?.useEffect?.(() => {\n        let mounted = true;\n        \n        async function check() {\n            if (!mounted) return;\n            \n            setState((prev: any) => ({ ...prev, checking: true }));\n            \n            const ready = await waitForApiReady(apiUrl, options);\n            \n            if (mounted) {\n                setState({\n                    ready,\n                    error: ready ? null : 'API is not available',\n                    checking: false\n                });\n            }\n        }\n        \n        check();\n        \n        return () => {\n            mounted = false;\n        };\n    }, [apiUrl]);\n    \n    return state;\n}\n","declare const process:\n  | {\n      env?: {\n        NODE_ENV?: string;\n      };\n    }\n  | undefined;\n\nexport const browserLogLevels = ['debug', 'info', 'warn', 'error'] as const;\n\nexport type BrowserLogLevel = (typeof browserLogLevels)[number];\n\nexport interface BrowserLogEntry {\n  level: BrowserLogLevel;\n  message: string;\n  timestamp: string;\n  scope?: string;\n  data?: unknown;\n}\n\nexport interface BrowserLoggerOptions {\n  scope?: string;\n  level?: BrowserLogLevel;\n  consoleOutput?: boolean;\n  bufferSize?: number;\n  sink?: (entry: BrowserLogEntry) => void;\n}\n\nexport interface BrowserLogger {\n  debug: (message: string, data?: unknown) => void;\n  info: (message: string, data?: unknown) => void;\n  warn: (message: string, data?: unknown) => void;\n  error: (message: string, data?: unknown) => void;\n  child: (scope: string) => BrowserLogger;\n  getRecentLogs: () => BrowserLogEntry[];\n  clear: () => void;\n  setLevel: (level: BrowserLogLevel) => void;\n  getLevel: () => BrowserLogLevel;\n}\n\ninterface BrowserLoggerState {\n  level: BrowserLogLevel;\n  buffer: BrowserLogEntry[];\n  bufferSize: number;\n  consoleOutput: boolean;\n  sink?: (entry: BrowserLogEntry) => void;\n}\n\nconst levelWeights: Record<BrowserLogLevel, number> = {\n  debug: 10,\n  info: 20,\n  warn: 30,\n  error: 40,\n};\n\nfunction resolveIsDevelopment(): boolean {\n  const nodeEnv = typeof process !== 'undefined' && process.env ? process.env.NODE_ENV : undefined;\n  return nodeEnv !== 'production';\n}\n\nfunction resolveDefaultLevel(): BrowserLogLevel {\n  return resolveIsDevelopment() ? 'debug' : 'info';\n}\n\nfunction normalizeScope(scope?: string): string | undefined {\n  const trimmed = scope?.trim();\n  return trimmed ? trimmed : undefined;\n}\n\nfunction joinScope(parentScope?: string, childScope?: string): string | undefined {\n  const segments = [normalizeScope(parentScope), normalizeScope(childScope)].filter(\n    (segment): segment is string => Boolean(segment),\n  );\n  return segments.length > 0 ? segments.join(':') : undefined;\n}\n\nfunction formatEntry(entry: BrowserLogEntry): string {\n  const scope = entry.scope ? ` [${entry.scope}]` : '';\n  return `${entry.timestamp} ${entry.level.toUpperCase()}${scope} ${entry.message}`;\n}\n\nfunction writeToConsole(entry: BrowserLogEntry): void {\n  const formatted = formatEntry(entry);\n\n  switch (entry.level) {\n    case 'debug':\n      console.debug(formatted, entry.data);\n      return;\n    case 'info':\n      console.info(formatted, entry.data);\n      return;\n    case 'warn':\n      console.warn(formatted, entry.data);\n      return;\n    case 'error':\n      console.error(formatted, entry.data);\n      return;\n  }\n}\n\nclass BrowserLoggerImpl implements BrowserLogger {\n  constructor(\n    private readonly state: BrowserLoggerState,\n    private readonly scope?: string,\n  ) {}\n\n  private shouldLog(level: BrowserLogLevel): boolean {\n    return levelWeights[level] >= levelWeights[this.state.level];\n  }\n\n  private record(level: BrowserLogLevel, message: string, data?: unknown): void {\n    if (!this.shouldLog(level)) {\n      return;\n    }\n\n    const entry: BrowserLogEntry = {\n      level,\n      message,\n      timestamp: new Date().toISOString(),\n      scope: this.scope,\n      data,\n    };\n\n    this.state.buffer.push(entry);\n    if (this.state.buffer.length > this.state.bufferSize) {\n      this.state.buffer.shift();\n    }\n\n    if (this.state.consoleOutput) {\n      writeToConsole(entry);\n    }\n\n    try {\n      this.state.sink?.(entry);\n    } catch {\n      // Sink failures must not break renderer execution.\n    }\n  }\n\n  debug(message: string, data?: unknown): void {\n    this.record('debug', message, data);\n  }\n\n  info(message: string, data?: unknown): void {\n    this.record('info', message, data);\n  }\n\n  warn(message: string, data?: unknown): void {\n    this.record('warn', message, data);\n  }\n\n  error(message: string, data?: unknown): void {\n    this.record('error', message, data);\n  }\n\n  child(scope: string): BrowserLogger {\n    return new BrowserLoggerImpl(this.state, joinScope(this.scope, scope));\n  }\n\n  getRecentLogs(): BrowserLogEntry[] {\n    return [...this.state.buffer];\n  }\n\n  clear(): void {\n    this.state.buffer.length = 0;\n  }\n\n  setLevel(level: BrowserLogLevel): void {\n    this.state.level = level;\n  }\n\n  getLevel(): BrowserLogLevel {\n    return this.state.level;\n  }\n}\n\nexport function createBrowserLogger(options: BrowserLoggerOptions = {}): BrowserLogger {\n  const state: BrowserLoggerState = {\n    level: options.level ?? resolveDefaultLevel(),\n    buffer: [],\n    bufferSize: options.bufferSize ?? 100,\n    consoleOutput: options.consoleOutput ?? resolveIsDevelopment(),\n    sink: options.sink,\n  };\n\n  return new BrowserLoggerImpl(state, normalizeScope(options.scope));\n}\n\nexport function createScopedBrowserLogger(\n  scope: string,\n  options: Omit<BrowserLoggerOptions, 'scope'> = {},\n): BrowserLogger {\n  return createBrowserLogger({ ...options, scope });\n}\n\nexport const browserLogger = createBrowserLogger();\n","import { useState, useCallback, useRef, useEffect } from 'react';\n\nexport interface UseFormStateOptions<T> {\n  initialValues: T;\n  defaultValues?: T; // Default values for reset to defaults\n  onSave: (values: T) => Promise<void>;\n  timeout?: number; // Save timeout in ms, default 10000\n  validateChanges?: (values: T) => boolean; // Custom validation for dirty check\n}\n\nexport interface FormState<T> {\n  values: T;\n  isDirty: boolean;\n  isSaving: boolean;\n  error: string | null;\n  setValues: (values: T | ((prev: T) => T)) => void;\n  setFieldValue: <K extends keyof T>(field: K, value: T[K]) => void;\n  save: () => Promise<void>;\n  reset: () => void;\n  resetToDefaults: () => void;\n  canSave: boolean;\n}\n\n// Simple deep equality check\nfunction isEqual(a: any, b: any): boolean {\n  if (a === b) return true;\n  if (a == null || b == null) return false;\n  if (typeof a !== 'object' || typeof b !== 'object') return false;\n  \n  const keysA = Object.keys(a);\n  const keysB = Object.keys(b);\n  \n  if (keysA.length !== keysB.length) return false;\n  \n  for (const key of keysA) {\n    if (!keysB.includes(key)) return false;\n    if (!isEqual(a[key], b[key])) return false;\n  }\n  \n  return true;\n}\n\n/**\n * Custom hook for managing form state with dirty checking and save lifecycle\n */\nexport function useFormState<T extends Record<string, any>>({\n  initialValues,\n  defaultValues,\n  onSave,\n  timeout = 10000,\n  validateChanges\n}: UseFormStateOptions<T>): FormState<T> {\n  const [values, setValues] = useState<T>(initialValues);\n  const [isDirty, setIsDirty] = useState(false);\n  const [isSaving, setIsSaving] = useState(false);\n  const [error, setError] = useState<string | null>(null);\n  \n  const initialValuesRef = useRef(initialValues);\n  const saveTimeoutRef = useRef<NodeJS.Timeout>();\n\n  // Check if form is dirty whenever values change\n  useEffect(() => {\n    const hasChanges = validateChanges \n      ? validateChanges(values)\n      : !isEqual(values, initialValuesRef.current);\n    setIsDirty(hasChanges);\n  }, [values, validateChanges]);\n\n  // Set individual field value\n  const setFieldValue = useCallback(<K extends keyof T>(field: K, value: T[K]) => {\n    setValues(prev => ({\n      ...prev,\n      [field]: value\n    }));\n  }, []);\n\n  // Save with timeout and error handling\n  const save = useCallback(async () => {\n    if (!isDirty || isSaving) return;\n    \n    setIsSaving(true);\n    setError(null);\n\n    // Set up timeout\n    const timeoutPromise = new Promise<never>((_, reject) => {\n      saveTimeoutRef.current = setTimeout(() => {\n        reject(new Error('Save operation timed out'));\n      }, timeout);\n    });\n\n    try {\n      // Race between save operation and timeout\n      await Promise.race([\n        onSave(values),\n        timeoutPromise\n      ]);\n      \n      // Update initial values on successful save\n      initialValuesRef.current = values;\n      setIsDirty(false);\n    } catch (err) {\n      const message = err instanceof Error ? err.message : 'Failed to save changes';\n      setError(message);\n      console.error('Save failed:', err);\n    } finally {\n      if (saveTimeoutRef.current) {\n        clearTimeout(saveTimeoutRef.current);\n      }\n      setIsSaving(false);\n    }\n  }, [values, isDirty, isSaving, onSave, timeout]);\n\n  // Reset form to initial values (undo changes)\n  const reset = useCallback(() => {\n    setValues(initialValuesRef.current);\n    setIsDirty(false);\n    setError(null);\n  }, []);\n\n  // Reset form to default values\n  const resetToDefaults = useCallback(() => {\n    if (defaultValues) {\n      setValues(defaultValues);\n      setError(null);\n      // Mark as dirty since defaults may differ from current saved values\n      setIsDirty(!isEqual(defaultValues, initialValuesRef.current));\n    }\n  }, [defaultValues]);\n\n  // Cleanup on unmount\n  useEffect(() => {\n    return () => {\n      if (saveTimeoutRef.current) {\n        clearTimeout(saveTimeoutRef.current);\n      }\n    };\n  }, []);\n\n  return {\n    values,\n    isDirty,\n    isSaving,\n    error,\n    setValues,\n    setFieldValue,\n    save,\n    reset,\n    resetToDefaults,\n    canSave: isDirty && !isSaving\n  };\n}\n","import React, { useState } from 'react';\nimport { Link, useLocation as useRouterLocation } from 'react-router-dom';\nimport { Menu, X, LogOut } from 'lucide-react';\nimport { ConnectionStatus } from '../connections/ConnectionStatus';\nimport { cn } from '../../src/utils/cn';\n\nexport interface NavItem {\n  name: string;\n  href: string;\n  icon?: React.ReactNode;\n}\n\nexport interface AppLayoutProps {\n  appName: string;\n  appVersion?: string;\n  navigation: NavItem[];\n  children: React.ReactNode;\n  headerActions?: React.ReactNode;\n  logoSrc?: string;\n  /** Custom CSS class for logo (default: \"h-8 w-auto\") */\n  logoClassName?: string;\n  /** Offset for logo positioning, e.g., { top: -4, left: 0 } */\n  logoOffset?: { top?: number; left?: number };\n  /** Custom header height class (default: \"h-16\") */\n  headerHeight?: string;\n  showLogout?: boolean;\n  onLogout?: () => void;\n  authenticated?: boolean;\n  connectionStatusUrl?: string;\n  className?: string;\n  primaryColor?: string;\n  /** 'inline' is the framework default; 'stacked' remains for legacy layouts */\n  navLayout?: 'stacked' | 'inline';\n  /** 'pill' is the framework default; 'bar' remains for legacy layouts */\n  navActiveStyle?: 'bar' | 'pill';\n  /** Custom class for the <header> element (replaces default 'bg-black') */\n  headerClassName?: string;\n  /** Custom class for the <nav> element (replaces default 'bg-[#444444]'); unused in inline mode */\n  navClassName?: string;\n  /** Custom class for the header actions slot */\n  headerActionsClassName?: string;\n}\n\n/**\n * Standardized application layout for web apps\n * Provides consistent header, navigation, and connection status\n */\nexport function AppLayout({\n  appName,\n  appVersion,\n  navigation,\n  children,\n  headerActions,\n  logoSrc = '/assets/logo.png',\n  logoClassName = 'h-8 w-auto',\n  logoOffset,\n  headerHeight = 'h-16',\n  showLogout = false,\n  onLogout,\n  authenticated = true,\n  connectionStatusUrl,\n  className,\n  primaryColor = '#3b82f6',\n  navLayout = 'inline',\n  navActiveStyle = 'pill',\n  headerClassName,\n  navClassName,\n  headerActionsClassName,\n}: AppLayoutProps) {\n  // Safe useLocation - returns a default if not in Router context\n  let location = { pathname: '/' };\n  try {\n    // Try to use the router location\n    const routerLocation = useRouterLocation();\n    if (routerLocation) {\n      location = routerLocation;\n    }\n  } catch (error) {\n    // Silently fallback to default if not in router context\n  }\n  const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n\n  const handleLogout = async () => {\n    if (onLogout) {\n      onLogout();\n    } else {\n      try {\n        await fetch('/api/logout', { method: 'POST' });\n        window.location.href = '/login';\n      } catch (error) {\n        console.error('Logout failed:', error);\n      }\n    }\n  };\n\n  const isInline = navLayout === 'inline';\n  const isPill = navActiveStyle === 'pill';\n\n  const getNavLinkClasses = (isActive: boolean) => {\n    if (isPill) {\n      return cn(\n        \"flex items-center gap-2 rounded-full px-4 py-1.5 text-sm font-medium transition-colors\",\n        isActive\n          ? \"text-white\"\n          : \"text-gray-300 hover:bg-white/10\"\n      );\n    }\n    // Legacy bar style for older apps that still opt into the stacked nav.\n    return cn(\n      \"flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors\",\n      isActive\n        ? \"text-white\"\n        : \"text-gray-300 hover:bg-[#555555] hover:text-white\"\n    );\n  };\n\n  const getMobileLinkClasses = (isActive: boolean) => {\n    if (isPill) {\n      return cn(\n        \"flex items-center gap-2 rounded-full px-4 py-1.5 text-sm font-medium\",\n        isActive\n          ? \"text-white\"\n          : \"text-gray-300 hover:bg-white/10\"\n      );\n    }\n    return cn(\n      \"flex items-center gap-2 px-3 py-2 rounded text-sm font-medium\",\n      isActive\n        ? \"text-white\"\n        : \"text-gray-300 hover:text-white hover:bg-[#555555]\"\n    );\n  };\n\n  const renderNavLinks = (mobile: boolean) =>\n    navigation.map((item) => {\n      const isActive = location.pathname === item.href ||\n        (item.href === '/' && location.pathname === '/') ||\n        (item.href !== '/' && location.pathname.startsWith(item.href));\n\n      return (\n        <Link\n          key={item.href}\n          to={item.href}\n          className={mobile ? getMobileLinkClasses(isActive) : getNavLinkClasses(isActive)}\n          style={isActive ? { backgroundColor: primaryColor } : undefined}\n          onClick={mobile ? () => setMobileMenuOpen(false) : undefined}\n        >\n          {item.icon}\n          {item.name}\n        </Link>\n      );\n    });\n\n  return (\n    <div className={cn(\"min-h-screen min-w-[360px] bg-background\", className)}>\n      {/* Header */}\n      <header className={headerClassName ?? \"bg-black\"}>\n        <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n          <div className={cn(\"flex items-center\", headerHeight)}>\n            {/* Logo + version */}\n            <div className=\"flex items-center shrink-0\">\n              <img\n                src={logoSrc}\n                alt=\"Logo\"\n                className={cn(logoClassName, \"mr-3 shrink-0\")}\n                style={logoOffset ? {\n                  position: 'relative',\n                  top: logoOffset.top ?? 0,\n                  left: logoOffset.left ?? 0\n                } : undefined}\n                onError={(e) => {\n                  // Hide image if it fails to load\n                  (e.target as HTMLImageElement).style.display = 'none';\n                }}\n              />\n              {appName && (\n                <h1 className=\"text-xl font-semibold text-white\">\n                  {appName}\n                </h1>\n              )}\n              {appVersion && (\n                <span className=\"ml-2 text-xs text-gray-400\">v{appVersion}</span>\n              )}\n            </div>\n\n            {/* Connection status — before spacer in inline mode, after in stacked */}\n            {isInline && (\n              <div className=\"flex items-center ml-4 overflow-hidden\">\n                <ConnectionStatus\n                  url={connectionStatusUrl}\n                  className=\"text-xs text-gray-400 whitespace-nowrap\"\n                />\n              </div>\n            )}\n\n            {/* Spacer */}\n            <div className=\"flex-1\" />\n\n            {/* Inline nav links (desktop only) — right-aligned */}\n            {isInline && (\n              <div className=\"hidden lg:flex items-center gap-1 mr-4\">\n                {renderNavLinks(false)}\n              </div>\n            )}\n\n            {/* Right-side controls */}\n            <div\n              className={cn(\"flex items-center space-x-4\", headerActionsClassName)}\n              data-app-layout-header-actions\n            >\n              {headerActions}\n              {!isInline && (\n                <ConnectionStatus\n                  url={connectionStatusUrl}\n                  className=\"text-xs text-gray-400\"\n                />\n              )}\n              {showLogout && authenticated && (\n                <button\n                  onClick={handleLogout}\n                  className=\"text-gray-400 hover:text-white flex items-center gap-2 text-sm\"\n                >\n                  <LogOut className=\"h-4 w-4\" />\n                  <span className=\"hidden sm:inline\">Logout</span>\n                </button>\n              )}\n              {/* Mobile menu button */}\n              <button\n                className=\"lg:hidden p-2 text-white\"\n                onClick={() => setMobileMenuOpen(!mobileMenuOpen)}\n              >\n                {mobileMenuOpen ? (\n                  <X className=\"h-6 w-6\" />\n                ) : (\n                  <Menu className=\"h-6 w-6\" />\n                )}\n              </button>\n            </div>\n          </div>\n\n          {/* Mobile navigation (inline mode — renders inside header) */}\n          {isInline && mobileMenuOpen && (\n            <div className=\"md:hidden py-2 space-y-1\">\n              {renderNavLinks(true)}\n            </div>\n          )}\n        </div>\n      </header>\n\n      {/* Navigation — separate bar (stacked mode only) */}\n      {!isInline && (\n        <nav className={navClassName ?? \"bg-[#444444]\"}>\n          <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n            {/* Desktop navigation */}\n            <div className={cn(\"hidden lg:flex\", isPill ? \"gap-1 py-2\" : \"space-x-0\")}>\n              {renderNavLinks(false)}\n            </div>\n\n            {/* Mobile navigation */}\n            {mobileMenuOpen && (\n              <div className=\"md:hidden py-2 space-y-1\">\n                {renderNavLinks(true)}\n              </div>\n            )}\n          </div>\n        </nav>\n      )}\n\n      {/* Main content */}\n      <main className=\"flex-1 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6\">\n        {children}\n      </main>\n    </div>\n  );\n}\n\n/**\n * Layout with sidebar navigation (alternative layout style)\n */\nexport interface SidebarLayoutProps extends Omit<AppLayoutProps, 'primaryColor'> {\n  sidebarWidth?: number;\n}\n\nexport function SidebarLayout({\n  appName,\n  appVersion,\n  navigation,\n  children,\n  logoSrc = '/assets/logo.png',\n  logoClassName = 'h-8 w-auto',\n  logoOffset,\n  headerHeight = 'h-16',\n  showLogout = false,\n  onLogout,\n  authenticated = true,\n  connectionStatusUrl,\n  sidebarWidth = 256,\n  className\n}: SidebarLayoutProps) {\n  // Safe useLocation - returns a default if not in Router context\n  let location = { pathname: '/' };\n  try {\n    location = useRouterLocation();\n  } catch (error) {\n    console.warn('SidebarLayout: useLocation called outside Router context, using default pathname');\n  }\n\n  const handleLogout = async () => {\n    if (onLogout) {\n      onLogout();\n    } else {\n      try {\n        await fetch('/api/logout', { method: 'POST' });\n        window.location.href = '/login';\n      } catch (error) {\n        console.error('Logout failed:', error);\n      }\n    }\n  };\n\n  return (\n    <div className={cn(\"h-screen flex flex-col bg-background\", className)}>\n      {/* Header */}\n      <header className=\"bg-black\">\n        <div className=\"px-4 sm:px-6 lg:px-8\">\n          <div className={cn(\"flex justify-between items-center\", headerHeight)}>\n            <div className=\"flex items-center\">\n              <img\n                src={logoSrc}\n                alt=\"Logo\"\n                className={cn(logoClassName, \"mr-3\")}\n                style={logoOffset ? {\n                  position: 'relative',\n                  top: logoOffset.top ?? 0,\n                  left: logoOffset.left ?? 0\n                } : undefined}\n                onError={(e) => {\n                  (e.target as HTMLImageElement).style.display = 'none';\n                }}\n              />\n              {appName && (\n                <h1 className=\"text-xl font-semibold text-white\">\n                  {appName}\n                </h1>\n              )}\n              {appVersion && (\n                <span className=\"ml-2 text-xs text-gray-400\">v{appVersion}</span>\n              )}\n            </div>\n            <div className=\"flex items-center space-x-4\">\n              <ConnectionStatus\n                url={connectionStatusUrl}\n                className=\"text-white\"\n              />\n              {showLogout && authenticated && (\n                <button\n                  onClick={handleLogout}\n                  className=\"text-gray-400 hover:text-white flex items-center gap-2 text-sm\"\n                >\n                  <LogOut className=\"h-4 w-4\" />\n                  <span>Logout</span>\n                </button>\n              )}\n            </div>\n          </div>\n        </div>\n      </header>\n      \n      <div className=\"flex flex-1 overflow-hidden\">\n        {/* Sidebar */}\n        <nav \n          className=\"bg-white border-r border-gray-200\"\n          style={{ width: `${sidebarWidth}px` }}\n        >\n          <div className=\"p-4\">\n            <ul className=\"space-y-1\">\n              {navigation.map((item) => {\n                const isActive = location.pathname === item.href || \n                               (item.href === '/' && location.pathname === '/') ||\n                               (item.href !== '/' && location.pathname.startsWith(item.href));\n                \n                return (\n                  <li key={item.href}>\n                    <Link\n                      to={item.href}\n                      className={cn(\n                        'flex items-center space-x-3 px-3 py-2 rounded-lg transition-colors',\n                        isActive\n                          ? 'bg-blue-50 text-blue-600'\n                          : 'text-gray-700 hover:bg-gray-100'\n                      )}\n                    >\n                      {item.icon}\n                      <span className=\"font-medium\">{item.name}</span>\n                    </Link>\n                  </li>\n                );\n              })}\n            </ul>\n          </div>\n        </nav>\n\n        {/* Main Content */}\n        <main className=\"flex-1 overflow-auto\">\n          {children}\n        </main>\n      </div>\n    </div>\n  );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../../src/utils/cn';\n\nexport type AppFooterStatusTone = 'neutral' | 'info' | 'success' | 'warning' | 'error';\n\nexport interface AppFooterProps extends HTMLAttributes<HTMLElement> {\n  leading?: ReactNode;\n  center?: ReactNode;\n  trailing?: ReactNode;\n  statusLabel: string;\n  statusTone?: AppFooterStatusTone;\n  statusPulse?: boolean;\n  fixed?: boolean;\n  leadingClassName?: string;\n  centerClassName?: string;\n  trailingClassName?: string;\n  statusClassName?: string;\n  statusWidthClassName?: string;\n}\n\nconst toneStyles: Record<AppFooterStatusTone, { container: string; indicator: string; ping: string | null }> = {\n  neutral: {\n    container: 'bg-muted/50 text-muted-foreground',\n    indicator: 'bg-muted-foreground/40',\n    ping: null,\n  },\n  info: {\n    container: 'bg-sky-500/15 text-sky-600 dark:text-sky-400',\n    indicator: 'bg-sky-500',\n    ping: 'bg-sky-400',\n  },\n  success: {\n    container: 'bg-emerald-500/15 text-emerald-600 dark:text-emerald-400',\n    indicator: 'bg-emerald-500',\n    ping: 'bg-emerald-400',\n  },\n  warning: {\n    container: 'bg-amber-500/15 text-amber-600 dark:text-amber-400',\n    indicator: 'bg-amber-500',\n    ping: 'bg-amber-400',\n  },\n  error: {\n    container: 'bg-destructive/15 text-destructive',\n    indicator: 'bg-destructive',\n    ping: 'bg-destructive/70',\n  },\n};\n\nexport function AppFooter({\n  leading,\n  center,\n  trailing,\n  statusLabel,\n  statusTone = 'neutral',\n  statusPulse = false,\n  fixed = true,\n  className,\n  leadingClassName,\n  centerClassName,\n  trailingClassName,\n  statusClassName,\n  statusWidthClassName,\n  ...props\n}: AppFooterProps) {\n  const tone = toneStyles[statusTone];\n  const showPulse = statusPulse && tone.ping !== null;\n\n  return (\n    <footer\n      className={cn(\n        fixed && 'fixed bottom-0 left-0 right-0 z-40',\n        'border-t border-border/50 bg-background/95 backdrop-blur-sm',\n        'h-8',\n        className,\n      )}\n      {...props}\n    >\n      <div className=\"flex h-8 items-center justify-between gap-2 overflow-hidden px-4\">\n        <div className={cn('flex min-w-0 flex-shrink-0 items-center gap-1', leadingClassName)}>\n          {leading}\n        </div>\n\n        <div\n          className={cn(\n            'hidden min-w-0 max-w-xl flex-1 items-center justify-center gap-4 sm:flex',\n            centerClassName,\n          )}\n        >\n          {center}\n        </div>\n\n        <div className={cn('flex min-w-0 flex-shrink-0 items-center gap-2 sm:gap-3', trailingClassName)}>\n          {trailing}\n\n          <div className=\"flex h-8 items-center -my-1 -mr-4\">\n            <div className=\"h-8 w-px bg-border/50\" />\n            <div\n              data-testid=\"app-footer-status\"\n              className={cn(\n                'flex h-8 items-center justify-center gap-1.5',\n                statusWidthClassName ?? 'w-[96px]',\n                tone.container,\n                statusClassName,\n              )}\n            >\n              <span className=\"relative flex h-2 w-2\">\n                {showPulse ? (\n                  <>\n                    <span className={cn('absolute inline-flex h-full w-full animate-ping rounded-full opacity-75', tone.ping)} />\n                    <span className={cn('relative inline-flex h-2 w-2 rounded-full', tone.indicator)} />\n                  </>\n                ) : (\n                  <span className={cn('relative inline-flex h-2 w-2 rounded-full', tone.indicator)} />\n                )}\n              </span>\n              <span className=\"hidden text-xs font-medium sm:inline\">{statusLabel}</span>\n            </div>\n          </div>\n        </div>\n      </div>\n    </footer>\n  );\n}\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../src/utils/cn';\n\n// ============================================================================\n// Sidebar Context\n// ============================================================================\n\ninterface SidebarContextValue {\n  collapsed: boolean;\n  toggle: () => void;\n  isMobile: boolean;\n}\n\nconst SidebarContext = React.createContext<SidebarContextValue | undefined>(undefined);\n\ninterface SidebarProviderProps {\n  children: React.ReactNode;\n  defaultCollapsed?: boolean;\n  collapsible?: boolean;\n}\n\nexport function SidebarProvider({\n  children,\n  defaultCollapsed = false,\n  collapsible = false\n}: SidebarProviderProps) {\n  const [collapsed, setCollapsed] = React.useState(defaultCollapsed);\n  const [isMobile, setIsMobile] = React.useState(false);\n\n  React.useEffect(() => {\n    const mq = window.matchMedia('(max-width: 1024px)');\n    const update = (matches: boolean) => {\n      setIsMobile(matches);\n    };\n\n    update(mq.matches);\n    const handler = (event: MediaQueryListEvent) => update(event.matches);\n    mq.addEventListener('change', handler);\n    return () => mq.removeEventListener('change', handler);\n  }, []);\n\n  const toggle = React.useCallback(() => {\n    if (collapsible) {\n      setCollapsed(prev => !prev);\n    }\n  }, [collapsible]);\n\n  const value = React.useMemo(() => ({ collapsed, toggle, isMobile }), [collapsed, toggle, isMobile]);\n\n  return <SidebarContext.Provider value={value}>{children}</SidebarContext.Provider>;\n}\n\nfunction useSidebarContext(component: string) {\n  const context = React.useContext(SidebarContext);\n  if (!context) {\n    throw new Error(`${component} must be used within a <SidebarProvider />`);\n  }\n  return context;\n}\n\nexport function useSidebar() {\n  return useSidebarContext('useSidebar');\n}\n\n// ============================================================================\n// Sidebar Components\n// ============================================================================\n\ninterface SidebarProps extends React.HTMLAttributes<HTMLDivElement> {\n  collapsible?: 'icon' | 'none';\n  width?: number;\n}\n\nexport function Sidebar({\n  className,\n  collapsible = 'none',\n  width = 260,\n  ...props\n}: SidebarProps) {\n  const { collapsed } = useSidebarContext('Sidebar');\n  const dataState = collapsed ? 'collapsed' : 'expanded';\n\n  return (\n    <div\n      data-collapsible={collapsible}\n      data-state={dataState}\n      className={cn(\n        'group/sidebar-wrapper relative flex h-screen flex-col border-r border-border bg-background transition-[max-width] duration-200 ease-linear overflow-hidden',\n        collapsible === 'icon' && 'data-[state=collapsed]:max-w-[72px]',\n        className,\n      )}\n      style={{ maxWidth: collapsed && collapsible === 'icon' ? 72 : width }}\n    >\n      {/* Content wrapper */}\n      <div className=\"relative z-10 flex h-full flex-col\" {...props} />\n    </div>\n  );\n}\n\nexport function SidebarTrigger({ className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n  const { toggle } = useSidebarContext('SidebarTrigger');\n\n  return (\n    <button\n      type=\"button\"\n      onClick={toggle}\n      className={cn(\n        'inline-flex h-9 w-9 items-center justify-center rounded-md border bg-background text-sm shadow-sm transition-colors hover:bg-muted',\n        className\n      )}\n      {...props}\n    >\n      <span className=\"sr-only\">Toggle Sidebar</span>\n      <svg viewBox=\"0 0 24 24\" className=\"h-4 w-4\" aria-hidden>\n        <path\n          d=\"M4 6h16M4 12h16M4 18h16\"\n          stroke=\"currentColor\"\n          strokeWidth=\"1.5\"\n          strokeLinecap=\"round\"\n          strokeLinejoin=\"round\"\n        />\n      </svg>\n    </button>\n  );\n}\n\nexport function SidebarInset({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n  return <div className={cn('flex flex-1 flex-col overflow-hidden', className)} {...props} />;\n}\n\nexport function SidebarRail({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n  const { collapsed } = useSidebarContext('SidebarRail');\n  if (!collapsed) return null;\n\n  return <div className={cn('mx-auto mt-2 h-8 w-12 rounded-full bg-muted', className)} {...props} />;\n}\n\nexport function SidebarHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n  return <div className={cn('px-4 py-3 border-b border-border', className)} {...props} />;\n}\n\nexport function SidebarFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n  return <div className={cn('mt-auto px-2 py-4 border-t border-border', className)} {...props} />;\n}\n\nexport function SidebarContent({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n  return <div className={cn('flex-1 space-y-2 overflow-y-auto px-2 py-4', className)} {...props} />;\n}\n\nexport const SidebarGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarGroup({ className, ...props }, ref) {\n    return <div ref={ref} className={cn('space-y-2 px-2', className)} {...props} />;\n  }\n);\n\nexport const SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarGroupLabel({ className, ...props }, ref) {\n    return (\n      <div\n        ref={ref}\n        className={cn('px-2 text-xs font-medium uppercase text-muted-foreground tracking-wider', className)}\n        {...props}\n      />\n    );\n  }\n);\n\nexport const SidebarMenu = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarMenu({ className, ...props }, ref) {\n    return <div ref={ref} className={cn('space-y-1', className)} {...props} />;\n  }\n);\n\nexport const SidebarMenuItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarMenuItem({ className, ...props }, ref) {\n    return <div ref={ref} className={cn('group/sidebar-item relative', className)} {...props} />;\n  }\n);\n\nconst sidebarMenuButtonVariants = cva(\n  'flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n  {\n    variants: {\n      variant: {\n        default: 'text-foreground/80 hover:bg-muted hover:text-foreground',\n        active: 'bg-primary text-primary-foreground hover:bg-primary/90',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n    },\n  },\n);\n\ninterface SidebarMenuButtonProps\n  extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof sidebarMenuButtonVariants> {\n  asChild?: boolean;\n  isActive?: boolean;\n  tooltip?: string;\n}\n\nexport const SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n  function SidebarMenuButton({ className, variant, asChild, isActive, tooltip, children, ...props }, ref) {\n    const effectiveVariant = isActive ? 'active' : variant;\n\n    if (asChild) {\n      const child = React.Children.only(children);\n      return (\n        <Slot\n          ref={ref as React.ForwardedRef<HTMLElement>}\n          className={cn(sidebarMenuButtonVariants({ variant: effectiveVariant }), className)}\n          {...props}\n        >\n          {child}\n        </Slot>\n      );\n    }\n\n    return (\n      <button ref={ref} className={cn(sidebarMenuButtonVariants({ variant: effectiveVariant }), className)} {...props}>\n        {children}\n        {tooltip && <span className=\"sr-only\">{tooltip}</span>}\n      </button>\n    );\n  }\n);\n\nexport const SidebarMenuAction = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(\n  function SidebarMenuAction({ className, ...props }, ref) {\n    return (\n      <button\n        ref={ref}\n        className={cn(\n          'flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted',\n          className,\n        )}\n        {...props}\n      />\n    );\n  }\n);\n\nexport const SidebarMenuSub = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarMenuSub({ className, ...props }, ref) {\n    return (\n      <div\n        ref={ref}\n        className={cn('mt-1 space-y-1 pl-6 text-sm border-l border-border/50 ml-3', className)}\n        {...props}\n      />\n    );\n  }\n);\n\nexport const SidebarMenuSubItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarMenuSubItem({ className, ...props }, ref) {\n    return <div ref={ref} className={cn('group/sidebar-sub-item relative', className)} {...props} />;\n  }\n);\n\nexport const SidebarMenuSubButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n  function SidebarMenuSubButton({ className, asChild, isActive, ...props }, ref) {\n    const Comp = asChild ? Slot : 'button';\n    return (\n      <Comp\n        ref={ref}\n        className={cn(\n          'flex w-full items-center rounded-md px-2 py-1.5 text-sm transition-colors',\n          isActive\n            ? 'text-primary font-medium'\n            : 'text-muted-foreground hover:text-foreground hover:bg-muted',\n          className\n        )}\n        {...props}\n      />\n    );\n  }\n);\n\nexport const SidebarSection = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  function SidebarSection({ className, ...props }, ref) {\n    return <div ref={ref} className={cn('px-2', className)} {...props} />;\n  }\n);\n\nexport const SidebarSeparator = React.forwardRef<HTMLHRElement, React.HTMLAttributes<HTMLHRElement>>(\n  function SidebarSeparator({ className, ...props }, ref) {\n    return <hr ref={ref} className={cn('my-3 border-border', className)} {...props} />;\n  }\n);\n\n// ============================================================================\n// Sidebar Menu Badge\n// ============================================================================\n\ninterface SidebarMenuBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n  variant?: 'default' | 'secondary' | 'destructive';\n}\n\nexport const SidebarMenuBadge = React.forwardRef<HTMLSpanElement, SidebarMenuBadgeProps>(\n  function SidebarMenuBadge({ className, variant = 'secondary', ...props }, ref) {\n    return (\n      <span\n        ref={ref}\n        className={cn(\n          'ml-auto inline-flex h-5 min-w-5 items-center justify-center rounded-full px-1.5 text-xs font-medium',\n          variant === 'default' && 'bg-primary text-primary-foreground',\n          variant === 'secondary' && 'bg-muted text-muted-foreground',\n          variant === 'destructive' && 'bg-destructive text-destructive-foreground',\n          className,\n        )}\n        {...props}\n      />\n    );\n  }\n);\n","import React from 'react';\nimport { Link, useLocation as useRouterLocation, matchPath } from 'react-router-dom';\nimport { LogOut, type LucideIcon } from 'lucide-react';\nimport {\n  SidebarProvider,\n  Sidebar,\n  SidebarHeader,\n  SidebarContent,\n  SidebarFooter,\n  SidebarInset,\n  SidebarGroup,\n  SidebarGroupLabel,\n  SidebarMenu,\n  SidebarMenuItem,\n  SidebarMenuButton,\n  SidebarMenuBadge,\n  SidebarSeparator,\n} from './sidebar';\nimport { ConnectionStatus } from '../connections/ConnectionStatus';\nimport { cn } from '../../src/utils/cn';\n\nexport interface SidebarNavItem {\n  name: string;\n  href: string;\n  icon?: LucideIcon | React.ReactNode;\n  badge?: number | string;\n  /** Group label - items with the same group will be grouped together */\n  group?: string;\n}\n\nexport interface SidebarNavGroup {\n  label: string;\n  items: SidebarNavItem[];\n}\n\nexport interface SidebarAppLayoutProps {\n  /** Application name displayed in the sidebar header */\n  appName: string;\n  /** Application version (optional) */\n  appVersion?: string;\n  /** Navigation items - can be flat array or grouped */\n  navigation: SidebarNavItem[] | SidebarNavGroup[];\n  /** Page content */\n  children: React.ReactNode;\n  /** Logo image source */\n  logoSrc?: string;\n  /** Custom CSS class for logo */\n  logoClassName?: string;\n  /** Show logout button */\n  showLogout?: boolean;\n  /** Custom logout handler */\n  onLogout?: () => void;\n  /** Whether user is authenticated (controls logout visibility) */\n  authenticated?: boolean;\n  /** WebSocket URL for connection status */\n  connectionStatusUrl?: string;\n  /** Custom sidebar width (default: 260px) */\n  sidebarWidth?: number;\n  /** Additional className for the layout container */\n  className?: string;\n  /** Custom header content (replaces default logo/name) */\n  headerContent?: React.ReactNode;\n  /** Custom footer content (replaces default logout) */\n  footerContent?: React.ReactNode;\n  /** Primary accent color for active states */\n  primaryColor?: string;\n}\n\n/**\n * Full-featured application layout with sidebar navigation.\n * Based on the epi-edge-bms sidebar design pattern.\n *\n * @example\n * ```tsx\n * <SidebarAppLayout\n *   appName=\"My App\"\n *   appVersion=\"1.0.0\"\n *   navigation={[\n *     { name: 'Dashboard', href: '/', icon: LayoutDashboard },\n *     { name: 'Settings', href: '/settings', icon: Settings },\n *   ]}\n * >\n *   <Routes>...</Routes>\n * </SidebarAppLayout>\n * ```\n */\nexport function SidebarAppLayout({\n  appName,\n  appVersion,\n  navigation,\n  children,\n  logoSrc = '/assets/logo.png',\n  logoClassName = 'h-8 w-auto',\n  showLogout = false,\n  onLogout,\n  authenticated = true,\n  connectionStatusUrl,\n  sidebarWidth = 260,\n  className,\n  headerContent,\n  footerContent,\n  primaryColor,\n}: SidebarAppLayoutProps) {\n  // Safe useLocation - returns a default if not in Router context\n  let location = { pathname: '/', search: '' };\n  try {\n    const routerLocation = useRouterLocation();\n    if (routerLocation) {\n      location = routerLocation;\n    }\n  } catch {\n    // Silently fallback to default if not in router context\n  }\n\n  const handleLogout = async () => {\n    if (onLogout) {\n      onLogout();\n    } else {\n      try {\n        await fetch('/api/logout', { method: 'POST' });\n        window.location.href = '/login';\n      } catch (error) {\n        console.error('Logout failed:', error);\n      }\n    }\n  };\n\n  // Check if a nav item is active\n  const isActive = (href: string): boolean => {\n    if (href === '/') {\n      return location.pathname === '/';\n    }\n    // Check for exact match or prefix match\n    return !!matchPath({ path: href, end: false }, location.pathname);\n  };\n\n  // Normalize navigation to groups format\n  const navGroups: SidebarNavGroup[] = React.useMemo(() => {\n    if (navigation.length === 0) return [];\n\n    // Check if it's already grouped (first item has 'items' property)\n    const firstItem = navigation[0];\n    if (firstItem && 'items' in firstItem) {\n      return navigation as SidebarNavGroup[];\n    }\n\n    // It's a flat array - group by the 'group' property\n    const items = navigation as SidebarNavItem[];\n    const groups = new Map<string, SidebarNavItem[]>();\n\n    items.forEach(item => {\n      const groupKey = item.group || '';\n      if (!groups.has(groupKey)) {\n        groups.set(groupKey, []);\n      }\n      groups.get(groupKey)!.push(item);\n    });\n\n    return Array.from(groups.entries()).map(([label, groupItems]) => ({\n      label,\n      items: groupItems,\n    }));\n  }, [navigation]);\n\n  // Helper to check if something is a React component (function or forwardRef)\n  const isReactComponent = (icon: unknown): boolean => {\n    if (!icon) return false;\n    // Function components\n    if (typeof icon === 'function') return true;\n    // ForwardRef components (Lucide icons) - they have $$typeof symbol\n    if (typeof icon === 'object' && icon !== null) {\n      const iconObj = icon as { $$typeof?: symbol; render?: unknown };\n      // Check for ForwardRef pattern\n      if (iconObj.$$typeof && typeof iconObj.render === 'function') return true;\n    }\n    return false;\n  };\n\n  // Render a navigation item\n  const renderNavItem = (item: SidebarNavItem) => {\n    const active = isActive(item.href);\n\n    // Render icon - handle Lucide icons (ForwardRef), function components, and ReactNode\n    const renderIcon = () => {\n      if (!item.icon) return null;\n\n      // Check if it's a component we can render (function or ForwardRef)\n      if (isReactComponent(item.icon)) {\n        const IconComponent = item.icon as LucideIcon;\n        return <IconComponent className=\"h-4 w-4 shrink-0\" />;\n      }\n\n      // It's already a rendered ReactNode (JSX element)\n      return <span className=\"h-4 w-4 shrink-0 flex items-center justify-center\">{item.icon as React.ReactNode}</span>;\n    };\n\n    return (\n      <SidebarMenuItem key={item.href}>\n        <SidebarMenuButton asChild isActive={active}>\n          <Link to={item.href}>\n            {renderIcon()}\n            <span className=\"truncate\">{item.name}</span>\n            {item.badge !== undefined && (\n              <SidebarMenuBadge variant={typeof item.badge === 'number' && item.badge > 0 ? 'destructive' : 'secondary'}>\n                {item.badge}\n              </SidebarMenuBadge>\n            )}\n          </Link>\n        </SidebarMenuButton>\n      </SidebarMenuItem>\n    );\n  };\n\n  return (\n    <SidebarProvider>\n      <div className={cn('flex h-screen w-full bg-muted/20', className)}>\n        <Sidebar width={sidebarWidth}>\n          {/* Header */}\n          <SidebarHeader>\n            {headerContent || (\n              <div className=\"flex items-center gap-3\">\n                <img\n                  src={logoSrc}\n                  alt=\"Logo\"\n                  className={cn(logoClassName)}\n                  onError={(e) => {\n                    (e.target as HTMLImageElement).style.display = 'none';\n                  }}\n                />\n                <div className=\"flex flex-col\">\n                  <span className=\"font-semibold text-foreground\">{appName}</span>\n                  {appVersion && (\n                    <span className=\"text-xs text-muted-foreground\">v{appVersion}</span>\n                  )}\n                </div>\n              </div>\n            )}\n          </SidebarHeader>\n\n          {/* Navigation */}\n          <SidebarContent>\n            {navGroups.map((group, index) => (\n              <React.Fragment key={group.label || `group-${index}`}>\n                {index > 0 && <SidebarSeparator />}\n                <SidebarGroup>\n                  {group.label && <SidebarGroupLabel>{group.label}</SidebarGroupLabel>}\n                  <SidebarMenu>\n                    {group.items.map(renderNavItem)}\n                  </SidebarMenu>\n                </SidebarGroup>\n              </React.Fragment>\n            ))}\n          </SidebarContent>\n\n          {/* Footer */}\n          <SidebarFooter>\n            {footerContent || (\n              <div className=\"space-y-3\">\n                {connectionStatusUrl && (\n                  <div className=\"px-2\">\n                    <ConnectionStatus url={connectionStatusUrl} className=\"text-xs\" />\n                  </div>\n                )}\n                {showLogout && authenticated && (\n                  <button\n                    onClick={handleLogout}\n                    className=\"flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-destructive\"\n                  >\n                    <LogOut className=\"h-4 w-4\" />\n                    <span>Logout</span>\n                  </button>\n                )}\n              </div>\n            )}\n          </SidebarFooter>\n        </Sidebar>\n\n        {/* Main Content */}\n        <SidebarInset>\n          <main className=\"flex-1 overflow-y-auto\">\n            {children}\n          </main>\n        </SidebarInset>\n      </div>\n\n      {/* Apply primary color as CSS variable if provided */}\n      {primaryColor && (\n        <style>{`\n          :root {\n            --sidebar-primary: ${primaryColor};\n          }\n          [data-state=\"expanded\"] .bg-primary {\n            background-color: ${primaryColor};\n          }\n        `}</style>\n      )}\n    </SidebarProvider>\n  );\n}\n","/**\n * Activity LED Component\n * Shows a status indicator with optional animation\n */\n\n\nimport { cn } from '../../src/utils/cn';\n\nexport type LEDStatus = 'active' | 'inactive' | 'warning' | 'error' | 'success';\n\nexport interface ActivityLEDProps {\n  status: LEDStatus;\n  size?: 'xs' | 'sm' | 'md' | 'lg';\n  animate?: boolean;\n  label?: string;\n  className?: string;\n}\n\nconst statusColors: Record<LEDStatus, { bg: string; ring: string }> = {\n  active: { bg: 'bg-green-500', ring: 'ring-green-400' },\n  success: { bg: 'bg-emerald-500', ring: 'ring-emerald-400' },\n  inactive: { bg: 'bg-gray-400', ring: 'ring-gray-300' },\n  warning: { bg: 'bg-yellow-500', ring: 'ring-yellow-400' },\n  error: { bg: 'bg-red-500', ring: 'ring-red-400' }\n};\n\nconst sizeClasses = {\n  xs: 'h-2 w-2',\n  sm: 'h-3 w-3',\n  md: 'h-4 w-4',\n  lg: 'h-5 w-5'\n};\n\nexport function ActivityLED({\n  status,\n  size = 'sm',\n  animate = true,\n  label,\n  className\n}: ActivityLEDProps) {\n  const colors = statusColors[status];\n  const shouldAnimate = animate && (status === 'active' || status === 'warning' || status === 'error');\n\n  return (\n    <div className={cn('inline-flex items-center gap-2', className)}>\n      <span className=\"relative inline-flex\">\n        {shouldAnimate && (\n          <span\n            className={cn(\n              'absolute inline-flex h-full w-full rounded-full opacity-75',\n              colors.bg,\n              status === 'active' && 'animate-ping',\n              status === 'warning' && 'animate-pulse',\n              status === 'error' && 'animate-pulse'\n            )}\n          />\n        )}\n        <span\n          className={cn(\n            'relative inline-flex rounded-full',\n            sizeClasses[size],\n            colors.bg,\n            shouldAnimate && 'ring-1',\n            shouldAnimate && colors.ring\n          )}\n        />\n      </span>\n      {label && (\n        <span className=\"text-xs text-muted-foreground\">{label}</span>\n      )}\n    </div>\n  );\n}\n\nexport default ActivityLED;","import { useMemo } from 'react';\n\nexport interface SparklineProps {\n  data: number[];\n  width?: number;\n  height?: number;\n  color?: string;\n  strokeWidth?: number;\n  fill?: boolean;\n  className?: string;\n}\n\nexport function Sparkline({\n  data,\n  width = 100,\n  height = 30,\n  color = '#10b981',\n  strokeWidth = 2,\n  fill = false,\n  className\n}: SparklineProps) {\n  const points = useMemo(() => {\n    if (!data || data.length === 0) return '';\n    \n    const max = Math.max(...data);\n    const min = Math.min(...data);\n    const range = max - min || 1;\n    \n    return data.map((value, index) => {\n      const x = (index / (data.length - 1)) * width;\n      const y = height - ((value - min) / range) * height;\n      return `${x},${y}`;\n    }).join(' ');\n  }, [data, width, height]);\n\n  if (!data || data.length === 0) {\n    return (\n      <svg width={width} height={height} className={className}>\n        <line\n          x1=\"0\"\n          y1={height / 2}\n          x2={width}\n          y2={height / 2}\n          stroke=\"#e5e7eb\"\n          strokeWidth={1}\n        />\n      </svg>\n    );\n  }\n\n  const fillPoints = points ? `0,${height} ${points} ${width},${height}` : '';\n\n  return (\n    <svg width={width} height={height} className={className}>\n      {fill && points && (\n        <polygon\n          points={fillPoints}\n          fill={color}\n          fillOpacity={0.1}\n        />\n      )}\n      {points && (\n        <polyline\n          points={points}\n          fill=\"none\"\n          stroke={color}\n          strokeWidth={strokeWidth}\n          strokeLinecap=\"round\"\n          strokeLinejoin=\"round\"\n        />\n      )}\n      {/* Optional: Add dots for last point */}\n      {data.length > 0 && (\n        <circle\n          cx={width}\n          cy={height - ((data[data.length - 1]! - Math.min(...data)) / (Math.max(...data) - Math.min(...data) || 1)) * height}\n          r={strokeWidth}\n          fill={color}\n        />\n      )}\n    </svg>\n  );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport { Card } from '../base/card';\nimport { Badge } from '../base/badge';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../base/table';\nimport { ActivityLED } from '../activity/ActivityLED';\nimport { Sparkline } from './Sparkline';\nimport { cn } from '../../src/utils/cn';\n\nexport interface DataColumn<T> {\n  key: string;\n  label: string;\n  accessor: (item: T) => any;\n  render?: (value: any, item: T) => React.ReactNode;\n  width?: string;\n  align?: 'left' | 'center' | 'right';\n}\n\nexport interface RealtimeDataTableProps<T> {\n  data: T[];\n  columns: DataColumn<T>[];\n  keyField: string;\n  title?: string;\n  description?: string;\n  \n  // Real-time features\n  showActivity?: boolean;\n  activityField?: string;\n  activityDecay?: number;\n  \n  // Sparkline features\n  showSparkline?: boolean;\n  sparklineField?: string;\n  sparklineHistory?: Map<string, number[]>;\n  sparklineColor?: string;\n  \n  // Status features\n  showStatus?: boolean;\n  statusField?: string;\n  statusConfig?: {\n    [key: string]: {\n      label: string;\n      variant: 'default' | 'secondary' | 'destructive' | 'outline';\n      icon?: React.ReactNode;\n    };\n  };\n  \n  // Hierarchy features\n  expandable?: boolean;\n  childrenField?: string;\n  defaultExpanded?: boolean;\n  \n  // Styling\n  className?: string;\n  striped?: boolean;\n  hover?: boolean;\n  compact?: boolean;\n  \n  // Callbacks\n  onRowClick?: (item: T) => void;\n  onRefresh?: () => void;\n}\n\nexport function RealtimeDataTable<T extends Record<string, any>>({\n  data,\n  columns,\n  keyField,\n  title,\n  description,\n  showActivity = false,\n  activityField = 'activity',\n  activityDecay = 1000,\n  showSparkline = false,\n  sparklineField = 'value',\n  sparklineHistory,\n  sparklineColor = '#10b981',\n  showStatus = false,\n  statusField = 'status',\n  statusConfig,\n  expandable = false,\n  childrenField = 'children',\n  defaultExpanded = false,\n  className,\n  striped: _striped = false,\n  hover = true,\n  compact = false,\n  onRowClick,\n  onRefresh: _onRefresh\n}: RealtimeDataTableProps<T>) {\n  const [expandedRows, setExpandedRows] = useState<Set<string>>(new Set());\n  const [activityMap, setActivityMap] = useState<Map<string, string>>(new Map());\n\n  useEffect(() => {\n    if (defaultExpanded && expandable) {\n      const keys = data.map(item => item[keyField]);\n      setExpandedRows(new Set(keys));\n    }\n  }, [defaultExpanded, expandable, data, keyField]);\n\n  // Track activity changes\n  useEffect(() => {\n    if (showActivity) {\n      const newActivityMap = new Map<string, string>();\n      data.forEach(item => {\n        const key = item[keyField];\n        const activity = item[activityField];\n        if (activity && activity !== 'inactive') {\n          newActivityMap.set(key, activity);\n          // Clear activity after decay time\n          setTimeout(() => {\n            setActivityMap(prev => {\n              const next = new Map(prev);\n              next.delete(key);\n              return next;\n            });\n          }, activityDecay);\n        }\n      });\n      setActivityMap(prev => new Map([...prev, ...newActivityMap]));\n    }\n  }, [data, showActivity, keyField, activityField, activityDecay]);\n\n  const toggleRow = useCallback((key: string) => {\n    setExpandedRows(prev => {\n      const next = new Set(prev);\n      if (next.has(key)) {\n        next.delete(key);\n      } else {\n        next.add(key);\n      }\n      return next;\n    });\n  }, []);\n\n  const renderRow = (item: T, level: number = 0) => {\n    const key = item[keyField];\n    const isExpanded = expandedRows.has(key);\n    const hasChildren = expandable && item[childrenField] && item[childrenField].length > 0;\n    const activity = activityMap.get(key) || 'inactive';\n\n    return (\n      <>\n        <TableRow\n          key={key}\n          className={cn(\n            hover && 'hover:bg-gray-50 transition-colors',\n            onRowClick && 'cursor-pointer',\n            level > 0 && 'bg-gray-50/50'\n          )}\n          onClick={() => onRowClick?.(item)}\n        >\n          {columns.map((column, idx) => (\n            <TableCell\n              key={column.key}\n              className={cn(\n                column.align === 'center' && 'text-center',\n                column.align === 'right' && 'text-right',\n                compact && 'py-2',\n                idx === 0 && level > 0 && `pl-${4 + level * 4}`\n              )}\n              style={{ width: column.width }}\n            >\n              <div className=\"flex items-center gap-2\">\n                {/* Expand/collapse button */}\n                {idx === 0 && hasChildren && (\n                  <button\n                    onClick={(e) => {\n                      e.stopPropagation();\n                      toggleRow(key);\n                    }}\n                    className=\"p-0.5 hover:bg-gray-200 rounded\"\n                  >\n                    {isExpanded ? '▼' : '▶'}\n                  </button>\n                )}\n                \n                {/* Activity indicator */}\n                {idx === 0 && showActivity && (\n                  <ActivityLED status={activity as any} size=\"sm\" />\n                )}\n                \n                {/* Column content */}\n                {column.render ? \n                  column.render(column.accessor(item), item) : \n                  column.accessor(item)\n                }\n                \n                {/* Status badge */}\n                {column.key === statusField && showStatus && statusConfig && (\n                  <Badge variant={statusConfig[item[statusField]]?.variant || 'default'}>\n                    {statusConfig[item[statusField]]?.icon}\n                    {statusConfig[item[statusField]]?.label || item[statusField]}\n                  </Badge>\n                )}\n                \n                {/* Sparkline */}\n                {column.key === sparklineField && showSparkline && sparklineHistory && (\n                  <Sparkline\n                    data={sparklineHistory.get(key) || []}\n                    color={sparklineColor}\n                    width={60}\n                    height={20}\n                  />\n                )}\n              </div>\n            </TableCell>\n          ))}\n        </TableRow>\n        \n        {/* Render children if expanded */}\n        {isExpanded && hasChildren && item[childrenField].map((child: T) => \n          renderRow(child, level + 1)\n        )}\n      </>\n    );\n  };\n\n  return (\n    <Card className={className}>\n      {(title || description) && (\n        <div className=\"p-4 border-b\">\n          {title && <h3 className=\"font-semibold text-lg\">{title}</h3>}\n          {description && <p className=\"text-sm text-gray-600 mt-1\">{description}</p>}\n        </div>\n      )}\n      \n      <div className=\"overflow-x-auto\">\n        <Table>\n          <TableHeader>\n            <TableRow>\n              {columns.map(column => (\n                <TableHead\n                  key={column.key}\n                  className={cn(\n                    column.align === 'center' && 'text-center',\n                    column.align === 'right' && 'text-right'\n                  )}\n                  style={{ width: column.width }}\n                >\n                  {column.label}\n                </TableHead>\n              ))}\n            </TableRow>\n          </TableHeader>\n          <TableBody>\n            {data.length === 0 ? (\n              <TableRow>\n                <TableCell colSpan={columns.length} className=\"text-center py-8 text-gray-500\">\n                  No data available\n                </TableCell>\n              </TableRow>\n            ) : (\n              data.map(item => renderRow(item))\n            )}\n          </TableBody>\n        </Table>\n      </div>\n    </Card>\n  );\n}\n","import { Card } from '../base/card';\nimport { cn } from '../../src/utils/cn';\nimport { LucideIcon } from 'lucide-react';\n\nexport interface StatCard {\n  label: string;\n  value: string | number;\n  icon?: LucideIcon;\n  description?: string;\n  trend?: {\n    value: number;\n    label?: string;\n    positive?: boolean;\n  };\n  color?: 'default' | 'primary' | 'success' | 'warning' | 'danger';\n  className?: string;\n}\n\nexport interface DashboardStatsProps {\n  stats: StatCard[];\n  columns?: 1 | 2 | 3 | 4 | 5 | 6;\n  className?: string;\n}\n\nexport function DashboardStats({\n  stats,\n  columns = 4,\n  className\n}: DashboardStatsProps) {\n  const gridCols = {\n    1: 'grid-cols-1',\n    2: 'grid-cols-1 md:grid-cols-2',\n    3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n    4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n    5: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-5',\n    6: 'grid-cols-1 md:grid-cols-3 lg:grid-cols-6'\n  };\n\n  const colorClasses = {\n    default: '',\n    primary: 'border-blue-200 bg-blue-50/50',\n    success: 'border-green-200 bg-green-50/50',\n    warning: 'border-yellow-200 bg-yellow-50/50',\n    danger: 'border-red-200 bg-red-50/50'\n  };\n\n  const iconColorClasses = {\n    default: 'text-gray-600',\n    primary: 'text-blue-600',\n    success: 'text-green-600',\n    warning: 'text-yellow-600',\n    danger: 'text-red-600'\n  };\n\n  return (\n    <div className={cn(`grid gap-4 ${gridCols[columns]}`, className)}>\n      {stats.map((stat, index) => {\n        const Icon = stat.icon;\n        const color = stat.color || 'default';\n        \n        return (\n          <Card\n            key={index}\n            className={cn(\n              'p-4 transition-all hover:shadow-md',\n              colorClasses[color],\n              stat.className\n            )}\n          >\n            <div className=\"flex items-start justify-between\">\n              <div className=\"flex-1\">\n                <div className=\"flex items-center gap-2\">\n                  {Icon && (\n                    <Icon className={cn('h-4 w-4', iconColorClasses[color])} />\n                  )}\n                  <p className=\"text-sm font-medium text-gray-600\">\n                    {stat.label}\n                  </p>\n                </div>\n                \n                <div className=\"mt-2\">\n                  <p className=\"text-2xl font-bold\">\n                    {stat.value}\n                  </p>\n                  \n                  {stat.description && (\n                    <p className=\"text-xs text-gray-500 mt-1\">\n                      {stat.description}\n                    </p>\n                  )}\n                  \n                  {stat.trend && (\n                    <div className=\"flex items-center gap-1 mt-2\">\n                      <span className={cn(\n                        'text-xs font-medium',\n                        stat.trend.positive ? 'text-green-600' : 'text-red-600'\n                      )}>\n                        {stat.trend.positive ? '↑' : '↓'}\n                        {Math.abs(stat.trend.value)}%\n                      </span>\n                      {stat.trend.label && (\n                        <span className=\"text-xs text-gray-500\">\n                          {stat.trend.label}\n                        </span>\n                      )}\n                    </div>\n                  )}\n                </div>\n              </div>\n            </div>\n          </Card>\n        );\n      })}\n    </div>\n  );\n}\n\n/**\n * Compact stat card for smaller displays\n */\nexport interface CompactStatProps {\n  label: string;\n  value: string | number;\n  icon?: LucideIcon;\n  trend?: number;\n  className?: string;\n}\n\nexport function CompactStat({\n  label,\n  value,\n  icon: Icon,\n  trend,\n  className\n}: CompactStatProps) {\n  return (\n    <div className={cn('flex items-center justify-between p-3 bg-white rounded-lg border', className)}>\n      <div className=\"flex items-center gap-3\">\n        {Icon && (\n          <div className=\"p-2 bg-gray-100 rounded\">\n            <Icon className=\"h-4 w-4 text-gray-600\" />\n          </div>\n        )}\n        <div>\n          <p className=\"text-xs text-gray-600\">{label}</p>\n          <p className=\"font-semibold\">{value}</p>\n        </div>\n      </div>\n      {trend !== undefined && (\n        <span className={cn(\n          'text-xs font-medium',\n          trend >= 0 ? 'text-green-600' : 'text-red-600'\n        )}>\n          {trend >= 0 ? '↑' : '↓'} {Math.abs(trend)}%\n        </span>\n      )}\n    </div>\n  );\n}\n","import { Card } from '../base/card';\nimport { Badge } from '../base/badge';\n\nexport interface LogStatsProps {\n  stats: {\n    total?: number;\n    error?: number;\n    warn?: number;\n    info?: number;\n    debug?: number;\n    fileSize?: string | number;\n    oldestEntry?: string;\n    newestEntry?: string;\n    [key: string]: any;\n  } | null;\n}\n\nexport function LogStats({ stats }: LogStatsProps) {\n  if (!stats) return null;\n\n  const { total, error, warn, info, debug, fileSize, oldestEntry, newestEntry } = stats as any;\n\n  return (\n    <Card className=\"p-4 mb-4\">\n      <div className=\"grid grid-cols-2 md:grid-cols-6 gap-4\">\n        <div>\n          <div className=\"text-sm text-muted-foreground\">Total</div>\n          <div className=\"text-xl font-semibold\">{total ?? 0}</div>\n        </div>\n        <div>\n          <div className=\"text-sm text-muted-foreground\">Errors</div>\n          <Badge variant=\"destructive\">{error ?? 0}</Badge>\n        </div>\n        <div>\n          <div className=\"text-sm text-muted-foreground\">Warnings</div>\n          <Badge variant=\"secondary\">{warn ?? 0}</Badge>\n        </div>\n        <div>\n          <div className=\"text-sm text-muted-foreground\">Info</div>\n          <Badge variant=\"outline\">{info ?? 0}</Badge>\n        </div>\n        <div>\n          <div className=\"text-sm text-muted-foreground\">Debug</div>\n          <Badge variant=\"outline\">{debug ?? 0}</Badge>\n        </div>\n        <div>\n          <div className=\"text-sm text-muted-foreground\">File Size</div>\n          <div className=\"text-xl font-semibold\">{String(fileSize ?? '-')}</div>\n        </div>\n      </div>\n      {(oldestEntry || newestEntry) && (\n        <div className=\"mt-3 text-xs text-muted-foreground\">\n          {oldestEntry && <span>Oldest: {oldestEntry} </span>}\n          {newestEntry && <span>Newest: {newestEntry}</span>}\n        </div>\n      )}\n    </Card>\n  );\n}\n\nexport default LogStats;\n\n","import { useState, useEffect, ReactNode } from 'react';\nimport { Card } from '../base/card';\nimport { Button } from '../base/button';\nimport { Input } from '../base/input';\nimport { Label } from '../base/label';\nimport { Switch } from '../base/switch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../base/select';\nimport { Alert, AlertDescription } from '../base/alert';\nimport {\n  Save, RefreshCw, Check, AlertCircle, Eye, EyeOff, Info, Undo, RotateCcw, LucideIcon\n} from 'lucide-react';\nimport { cn } from '../../src/utils/cn';\nimport { HelpTooltip } from '../base/HelpTooltip';\n\n// Extensible type definitions\nexport interface SettingDefinition {\n  key: string;\n  label: string;\n  type: 'string' | 'text' | 'number' | 'boolean' | 'select' | 'password' | 'custom';\n  defaultValue?: any;\n  description?: string;\n  help?: string;\n  hint?: string;\n  placeholder?: string;\n  options?: Array<{ label: string; value: string | number }>;\n  validation?: (value: any) => string | null;\n  requiresRestart?: boolean;\n  hidden?: boolean;\n  customComponent?: React.ComponentType<CustomFieldProps>;\n  // Additional UI properties\n  inputWidth?: 'small' | 'medium' | 'large';\n  suffix?: string;\n  step?: number;\n  min?: number;\n  max?: number;\n  showIf?: (values: any) => boolean;\n}\n\nexport interface SettingsCategory {\n  id: string;\n  label: string;\n  icon?: LucideIcon | string | React.ReactNode;\n  description?: string;\n  /** Inline help text shown via HelpTooltip next to category heading */\n  help?: string | React.ReactNode;\n  /** Settings for form-based categories */\n  settings?: SettingDefinition[];\n  /** Custom component to render instead of settings form */\n  component?: React.ComponentType<SettingsCategoryComponentProps>;\n}\n\nexport interface SettingsCategoryComponentProps {\n  /** The category definition */\n  category: SettingsCategory;\n}\n\nexport interface CustomFieldProps {\n  value: any;\n  onChange: (value: any) => void;\n  error?: string;\n  disabled?: boolean;\n  setting: SettingDefinition;\n}\n\nexport interface SettingsFrameworkProps {\n  // Required props\n  categories: SettingsCategory[];\n  onSave: (values: Record<string, any>) => Promise<void>;\n\n  // Optional props for customization\n  onLoad?: () => Promise<Record<string, any>>;\n  onValidate?: (values: Record<string, any>) => Record<string, string> | null;\n  onRestartRequired?: (changedSettings: string[]) => void;\n\n  // UI customization\n  title?: string;\n  description?: string;\n  showResetButton?: boolean;\n  showUndoButton?: boolean;\n  customFields?: Record<string, React.ComponentType<CustomFieldProps>>;\n  renderCategory?: (category: SettingsCategory, children: ReactNode) => ReactNode;\n  renderSetting?: (setting: SettingDefinition, field: ReactNode) => ReactNode;\n\n  // Behavior customization\n  autoSave?: boolean;\n  autoSaveDelay?: number;\n  confirmReset?: boolean;\n  persistState?: boolean;\n\n  // Styling\n  className?: string;\n  containerClassName?: string;\n  categoryClassName?: string;\n  settingClassName?: string;\n  /** Height of the settings container (default: calc(100vh - 200px)) */\n  height?: string;\n  /** Max width for settings content to avoid overly wide inputs */\n  maxContentWidth?: string;\n}\n\nexport function SettingsFramework({\n  categories,\n  onSave,\n  onLoad,\n  onValidate,\n  onRestartRequired,\n  title = \"Settings\",\n  description = \"Configure application preferences\",\n  showResetButton = true,\n  showUndoButton = true,\n  customFields = {},\n  renderCategory,\n  renderSetting,\n  autoSave = false,\n  autoSaveDelay = 3000,\n  confirmReset = true,\n  persistState = true,\n  className,\n  containerClassName,\n  categoryClassName,\n  settingClassName,\n  height = 'calc(100vh - 200px)',\n  maxContentWidth = '800px'\n}: SettingsFrameworkProps) {\n  const [values, setValues] = useState<Record<string, any>>({});\n  const [initialValues, setInitialValues] = useState<Record<string, any>>({});\n  const [errors, setErrors] = useState<Record<string, string>>({});\n  const [loading, setLoading] = useState(true);\n  const [saving, setSaving] = useState(false);\n  const [activeCategory, setActiveCategory] = useState(categories?.[0]?.id || '');\n  const [showPasswords, setShowPasswords] = useState<Record<string, boolean>>({});\n  const [restartRequired, setRestartRequired] = useState(false);\n  const [isDirty, setIsDirty] = useState(false);\n  const [saveError, setSaveError] = useState<string | null>(null);\n\n  // Build default values from settings definition\n  const getDefaultValues = () => {\n    const defaults: Record<string, any> = {};\n    categories.forEach(category => {\n      (category.settings || []).forEach(setting => {\n        defaults[setting.key] = setting.defaultValue;\n      });\n    });\n    return defaults;\n  };\n\n  // Load settings on mount\n  useEffect(() => {\n    const loadSettings = async () => {\n      setLoading(true);\n      try {\n        const loadedValues = onLoad ? await onLoad() : getDefaultValues();\n        setValues(loadedValues);\n        setInitialValues(loadedValues);\n        \n        if (persistState) {\n          const savedCategory = localStorage.getItem('settings-active-category');\n          if (savedCategory && categories.find(c => c.id === savedCategory)) {\n            setActiveCategory(savedCategory);\n          }\n        }\n      } catch (error) {\n        console.error('Failed to load settings:', error);\n        setValues(getDefaultValues());\n        setInitialValues(getDefaultValues());\n      } finally {\n        setLoading(false);\n      }\n    };\n    \n    loadSettings();\n  }, []);\n\n  // Track dirty state\n  useEffect(() => {\n    const dirty = JSON.stringify(values) !== JSON.stringify(initialValues);\n    setIsDirty(dirty);\n  }, [values, initialValues]);\n\n  // Auto-save functionality\n  useEffect(() => {\n    if (!autoSave || !isDirty) return;\n    \n    const timer = setTimeout(() => {\n      handleSave();\n    }, autoSaveDelay);\n    \n    return () => clearTimeout(timer);\n  }, [values, autoSave, autoSaveDelay, isDirty]);\n\n  // Persist active category\n  useEffect(() => {\n    if (persistState) {\n      localStorage.setItem('settings-active-category', activeCategory);\n    }\n  }, [activeCategory, persistState]);\n\n  const validateField = (setting: SettingDefinition, value: any): string | null => {\n    if (setting.validation) {\n      return setting.validation(value);\n    }\n    return null;\n  };\n\n  const validateAll = (): boolean => {\n    const newErrors: Record<string, string> = {};\n    let hasErrors = false;\n\n    categories.forEach(category => {\n      (category.settings || []).forEach(setting => {\n        const error = validateField(setting, values[setting.key]);\n        if (error) {\n          newErrors[setting.key] = error;\n          hasErrors = true;\n        }\n      });\n    });\n    \n    if (onValidate) {\n      const customErrors = onValidate(values);\n      if (customErrors) {\n        Object.assign(newErrors, customErrors);\n        hasErrors = true;\n      }\n    }\n    \n    setErrors(newErrors);\n    return !hasErrors;\n  };\n\n  const handleSave = async () => {\n    if (!validateAll()) return;\n    \n    setSaving(true);\n    try {\n      // Check for settings that require restart\n      const changedKeys = Object.keys(values).filter(\n        key => values[key] !== initialValues[key]\n      );\n      \n      const restartSettings = changedKeys.filter(key => {\n        const setting = categories\n          .flatMap(c => c.settings || [])\n          .find(s => s.key === key);\n        return setting?.requiresRestart;\n      });\n      \n      if (restartSettings.length > 0) {\n        setRestartRequired(true);\n        onRestartRequired?.(restartSettings);\n      }\n      \n      await onSave(values);\n      setInitialValues(values);\n    } catch (error) {\n      console.error('Failed to save settings:', error);\n      setSaveError(error instanceof Error ? error.message : 'Failed to save settings. Please try again.');\n    } finally {\n      setSaving(false);\n    }\n  };\n\n  const handleReset = () => {\n    if (confirmReset && !confirm('Reset all settings to defaults? This will override your current configuration.')) {\n      return;\n    }\n    const defaults = getDefaultValues();\n    setValues(defaults);\n  };\n\n  const handleUndo = () => {\n    setValues(initialValues);\n  };\n\n  const setValue = (key: string, value: any) => {\n    setValues(prev => ({ ...prev, [key]: value }));\n    \n    // Clear field error when value changes\n    if (errors[key]) {\n      setErrors(prev => {\n        const next = { ...prev };\n        delete next[key];\n        return next;\n      });\n    }\n    \n    // Clear save error when user makes changes\n    if (saveError) {\n      setSaveError(null);\n    }\n  };\n\n  const renderField = (setting: SettingDefinition) => {\n    if (setting.hidden) return null;\n    \n    const value = values[setting.key] ?? setting.defaultValue;\n    const error = errors[setting.key];\n    const showPassword = showPasswords[setting.key];\n    if (setting.showIf && !setting.showIf(values)) return null;\n\n    // Default to medium width for most inputs to avoid overly wide fields\n    const widthClass = setting.inputWidth === 'small'\n      ? 'max-w-[180px]'\n      : setting.inputWidth === 'large'\n        ? 'w-full max-w-xl'\n        : 'max-w-sm'; // medium is the default\n    \n    // Custom field component\n    if (setting.type === 'custom' || setting.customComponent) {\n      const CustomComponent = setting.customComponent || customFields[setting.type];\n      if (CustomComponent) {\n        return (\n          <CustomComponent\n            value={value}\n            onChange={(val) => setValue(setting.key, val)}\n            error={error}\n            disabled={saving}\n            setting={setting}\n          />\n        );\n      }\n    }\n    \n    // Check for custom field type\n    const CustomField = customFields[setting.type];\n    if (CustomField) {\n      return (\n        <CustomField\n          value={value}\n          onChange={(val) => setValue(setting.key, val)}\n          error={error}\n          disabled={saving}\n          setting={setting}\n        />\n      );\n    }\n    \n    // Default field types\n    switch (setting.type) {\n      case 'string':\n      case 'text':\n      case 'password':\n        return (\n          <div className={cn(\"flex items-center gap-2\", widthClass)}>\n            <Input\n              id={setting.key}\n              type={setting.type === 'password' && !showPassword ? 'password' : 'text'}\n              value={value || ''}\n              onChange={(e) => setValue(setting.key, e.target.value)}\n              className={cn(error && \"border-red-500\", widthClass)}\n              placeholder={setting.placeholder || (setting.type === 'password' ? '••••••••' : undefined)}\n              disabled={saving}\n            />\n            {setting.suffix && (\n              <span className=\"text-xs text-muted-foreground\">{setting.suffix}</span>\n            )}\n          </div>\n        );\n      \n      case 'number':\n        return (\n          <div className={cn(\"flex items-center gap-2\", widthClass)}>\n            <Input\n              id={setting.key}\n              type=\"number\"\n              value={value ?? ''}\n              onChange={(e) => setValue(setting.key, parseFloat(e.target.value) || 0)}\n              className={cn(error && \"border-red-500\", widthClass)}\n              placeholder={setting.placeholder}\n              disabled={saving}\n              step={setting.step}\n              min={setting.min}\n              max={setting.max}\n            />\n            {setting.suffix && (\n              <span className=\"text-xs text-muted-foreground\">{setting.suffix}</span>\n            )}\n          </div>\n        );\n      \n      case 'boolean':\n        return (\n          <Switch\n            id={setting.key}\n            checked={value || false}\n            onCheckedChange={(checked) => setValue(setting.key, checked)}\n            disabled={saving}\n          />\n        );\n      \n      case 'select':\n        return (\n          <Select\n            value={String(value || setting.defaultValue)}\n            onValueChange={(val) => setValue(setting.key, val)}\n            disabled={saving}\n          >\n            <SelectTrigger id={setting.key} className={cn(error && \"border-red-500\")}>\n              <SelectValue />\n            </SelectTrigger>\n            <SelectContent>\n              {setting.options?.map(option => (\n                <SelectItem key={option.value} value={String(option.value)}>\n                  {option.label}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        );\n      \n      default:\n        return null;\n    }\n  };\n\n  const activeSettings = categories.find(cat => cat.id === activeCategory);\n\n  return (\n    <div className={cn(\"flex flex-col\", className)} style={{ height }}>\n      {/* Header */}\n      <div className=\"flex items-center justify-between mb-6 shrink-0\">\n        <div>\n          <h1 className=\"text-3xl font-bold\">{title}</h1>\n          <p className=\"text-muted-foreground\">{description}</p>\n        </div>\n        <div className=\"flex items-center gap-2\">\n          {showUndoButton && isDirty && (\n            <Button \n              variant=\"outline\"\n              onClick={handleUndo}\n              disabled={saving}\n            >\n              <Undo className=\"h-4 w-4 mr-2\" />\n              Undo\n            </Button>\n          )}\n          {showResetButton && (\n            <Button \n              variant=\"outline\"\n              onClick={handleReset}\n              disabled={saving}\n            >\n              <RotateCcw className=\"h-4 w-4 mr-2\" />\n              Defaults\n            </Button>\n          )}\n          <Button \n            onClick={handleSave} \n            disabled={!isDirty || saving}\n            className={cn(\n              \"transition-all\",\n              isDirty && \"ring-2 ring-primary/20\"\n            )}\n          >\n            {saving ? (\n              <>\n                <RefreshCw className=\"h-4 w-4 mr-2 animate-spin\" />\n                Saving...\n              </>\n            ) : isDirty ? (\n              <>\n                <Save className=\"h-4 w-4 mr-2\" />\n                Save\n              </>\n            ) : (\n              <>\n                <Check className=\"h-4 w-4 mr-2\" />\n                Saved\n              </>\n            )}\n          </Button>\n        </div>\n      </div>\n\n      {/* Error message display */}\n      {saveError && (\n        <Alert variant=\"destructive\" className=\"mb-6 shrink-0\">\n          <AlertCircle className=\"h-4 w-4\" />\n          <AlertDescription>\n            {saveError}\n          </AlertDescription>\n        </Alert>\n      )}\n\n      <div className={cn(\"flex gap-6 flex-1 min-h-0\", containerClassName)}>\n        {/* Categories Sidebar */}\n        <Card className=\"w-56 shrink-0 flex flex-col min-h-0\">\n          <div className=\"p-4 border-b shrink-0\">\n            <h3 className=\"font-semibold\">Categories</h3>\n          </div>\n          <div className=\"flex-1 overflow-y-auto p-2 min-h-0\">\n            <div className=\"space-y-1\">\n              {categories.map((category) => {\n                // Render icon if it exists and is a valid React component\n                const IconComponent = category.icon as LucideIcon | undefined;\n                return (\n                  <button\n                    key={category.id}\n                    onClick={() => setActiveCategory(category.id)}\n                    className={cn(\n                      \"w-full flex items-center gap-3 px-3 py-2 rounded-md text-sm transition-colors\",\n                      activeCategory === category.id\n                        ? \"bg-primary text-primary-foreground\"\n                        : \"hover:bg-muted\",\n                      categoryClassName\n                    )}\n                  >\n                    {IconComponent && <IconComponent className=\"h-4 w-4 shrink-0\" />}\n                    <span className=\"text-left truncate\">{category.label}</span>\n                  </button>\n                );\n              })}\n            </div>\n          </div>\n        </Card>\n\n        {/* Settings Content */}\n        <div className=\"flex-1 min-h-0 flex flex-col\">\n          {loading ? (\n            <Card className=\"p-8\">\n              <div className=\"flex items-center justify-center\">\n                <RefreshCw className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n              </div>\n            </Card>\n          ) : activeSettings?.component ? (\n            // Render custom component category\n            <Card className=\"p-6 flex-1 min-h-0 flex flex-col overflow-hidden\">\n              <div className=\"mb-6 flex-shrink-0\">\n                <div className=\"group flex items-center gap-2\">\n                  <h2 className=\"text-xl font-semibold\">{activeSettings.label}</h2>\n                  {activeSettings.help && (\n                    <HelpTooltip\n                      content={activeSettings.help}\n                      className=\"opacity-0 group-hover:opacity-100 transition-opacity\"\n                    />\n                  )}\n                </div>\n                {activeSettings.description && (\n                  <p className=\"text-sm text-muted-foreground mt-1\">\n                    {activeSettings.description}\n                  </p>\n                )}\n              </div>\n              <div className=\"flex-1 min-h-0 overflow-y-auto\">\n                <activeSettings.component category={activeSettings} />\n              </div>\n            </Card>\n          ) : activeSettings ? (\n            <Card className=\"p-6 flex-1 min-h-0 overflow-y-auto\">\n              <div style={{ maxWidth: maxContentWidth }}>\n              {renderCategory ? (\n                renderCategory(activeSettings, (\n                  <div className=\"space-y-6\">\n                    {(activeSettings.settings || []).map(setting => {\n                      const field = renderField(setting);\n                      if (!field) return null;\n                      \n                      const settingElement = (\n                        <div key={setting.key} className={cn(\"space-y-2\", settingClassName)}>\n                          <div className=\"flex items-center justify-between\">\n                            <div className=\"flex items-center gap-2\">\n                              <Label htmlFor={setting.key} className=\"text-sm font-medium\">\n                                {setting.label}\n                                {setting.requiresRestart && (\n                                  <span className=\"ml-2 text-xs text-amber-600 dark:text-amber-400\">\n                                    (Requires restart)\n                                  </span>\n                                )}\n                              </Label>\n                              {setting.help && (\n                                <button\n                                  type=\"button\"\n                                  className=\"text-muted-foreground hover:text-foreground transition-colors\"\n                                  title={setting.help}\n                                >\n                                  <Info className=\"h-3 w-3\" />\n                                </button>\n                              )}\n                            </div>\n                            {setting.type === 'password' && values[setting.key] && (\n                              <Button\n                                type=\"button\"\n                                variant=\"ghost\"\n                                size=\"sm\"\n                                className=\"h-6 px-2\"\n                                onClick={() => setShowPasswords(prev => ({ \n                                  ...prev, \n                                  [setting.key]: !prev[setting.key] \n                                }))}\n                              >\n                                {showPasswords[setting.key] ? (\n                                  <EyeOff className=\"h-3 w-3\" />\n                                ) : (\n                                  <Eye className=\"h-3 w-3\" />\n                                )}\n                              </Button>\n                            )}\n                          </div>\n                          \n                          {setting.description && (\n                            <p className=\"text-xs text-muted-foreground\">{setting.description}</p>\n                          )}\n                          {setting.hint && (\n                            <p className=\"text-[11px] text-muted-foreground\">{setting.hint}</p>\n                          )}\n                          \n                          {field}\n                          \n                          {errors[setting.key] && (\n                            <p className=\"text-xs text-red-500\">{errors[setting.key]}</p>\n                          )}\n                        </div>\n                      );\n                      \n                      return renderSetting ? renderSetting(setting, settingElement) : settingElement;\n                    })}\n                  </div>\n                ))\n              ) : (\n                <>\n                  <div className=\"mb-6\">\n                    <div className=\"group flex items-center gap-2\">\n                      <h2 className=\"text-xl font-semibold\">{activeSettings.label}</h2>\n                      {activeSettings.help && (\n                        <HelpTooltip\n                          content={activeSettings.help}\n                          className=\"opacity-0 group-hover:opacity-100 transition-opacity\"\n                        />\n                      )}\n                    </div>\n                    {activeSettings.description && (\n                      <p className=\"text-sm text-muted-foreground mt-1\">\n                        {activeSettings.description}\n                      </p>\n                    )}\n                  </div>\n                  \n                  <div className=\"space-y-6\">\n                    {(activeSettings.settings || []).map(setting => {\n                      const field = renderField(setting);\n                      if (!field) return null;\n\n                      const settingElement = (\n                        <div key={setting.key} className={cn(\"space-y-2\", settingClassName)}>\n                          <div className=\"flex items-center justify-between\">\n                            <div className=\"flex items-center gap-2\">\n                              <Label htmlFor={setting.key} className=\"text-sm font-medium\">\n                                {setting.label}\n                                {setting.requiresRestart && (\n                                  <span className=\"ml-2 text-xs text-amber-600 dark:text-amber-400\">\n                                    (Requires restart)\n                                  </span>\n                                )}\n                              </Label>\n                              {setting.help && (\n                                <button\n                                  type=\"button\"\n                                  className=\"text-muted-foreground hover:text-foreground transition-colors\"\n                                  title={setting.help}\n                                >\n                                  <Info className=\"h-3 w-3\" />\n                                </button>\n                              )}\n                            </div>\n                            {setting.type === 'password' && values[setting.key] && (\n                              <Button\n                                type=\"button\"\n                                variant=\"ghost\"\n                                size=\"sm\"\n                                className=\"h-6 px-2\"\n                                onClick={() => setShowPasswords(prev => ({ \n                                  ...prev, \n                                  [setting.key]: !prev[setting.key] \n                                }))}\n                              >\n                                {showPasswords[setting.key] ? (\n                                  <EyeOff className=\"h-3 w-3\" />\n                                ) : (\n                                  <Eye className=\"h-3 w-3\" />\n                                )}\n                              </Button>\n                            )}\n                          </div>\n                          \n                          {setting.description && (\n                            <p className=\"text-xs text-muted-foreground\">{setting.description}</p>\n                          )}\n                          \n                          {field}\n                          \n                          {errors[setting.key] && (\n                            <p className=\"text-xs text-red-500\">{errors[setting.key]}</p>\n                          )}\n                        </div>\n                      );\n                      \n                      return renderSetting ? renderSetting(setting, settingElement) : settingElement;\n                    })}\n                  </div>\n                </>\n              )}\n              </div>\n            </Card>\n          ) : (\n            <Card className=\"p-8\">\n              <Alert>\n                <AlertCircle className=\"h-4 w-4\" />\n                <AlertDescription>\n                  No settings available for this category\n                </AlertDescription>\n              </Alert>\n            </Card>\n          )}\n        </div>\n      </div>\n      \n      {restartRequired && (\n        <Alert className=\"border-amber-500\">\n          <AlertCircle className=\"h-4 w-4 text-amber-600\" />\n          <AlertDescription>\n            Some settings require a restart to take effect.\n          </AlertDescription>\n        </Alert>\n      )}\n    </div>\n  );\n}\n","import { LogViewer, LogEntry, LogFile } from '../logs/LogViewer';\nimport type { SettingsCategoryComponentProps } from './SettingsFramework';\n\nexport interface LiveLogsSettingsProps extends SettingsCategoryComponentProps {\n  /** Fetch current log entries */\n  onFetchLogs: () => Promise<LogEntry[]>;\n  /** Clear current logs */\n  onClearLogs?: () => Promise<void>;\n  /** Auto-refresh interval in ms (default: 3000) */\n  autoRefreshMs?: number;\n  /** Height of the log viewer (default: 100%) */\n  height?: string;\n}\n\nexport interface LogArchivesSettingsProps extends SettingsCategoryComponentProps {\n  /** Fetch log archive files */\n  onFetchArchives: () => Promise<LogFile[]>;\n  /** Download an archive file */\n  onDownloadArchive?: (filename: string) => void;\n  /** Delete an archive file */\n  onDeleteArchive?: (filename: string) => Promise<void>;\n  /** Height of the archives viewer (default: 100%) */\n  height?: string;\n}\n\n/**\n * Live logs settings component for use in SettingsFramework categories.\n * Shows only the live log viewer without archives or internal navigation.\n *\n * @example\n * ```tsx\n * const categories = [\n *   {\n *     id: 'liveLogs',\n *     label: 'Live Logs',\n *     icon: Terminal,\n *     description: 'View real-time application logs',\n *     component: (props) => (\n *       <LiveLogsSettings\n *         {...props}\n *         onFetchLogs={fetchLogs}\n *         onClearLogs={clearLogs}\n *       />\n *     ),\n *   },\n * ];\n * ```\n */\nexport function LiveLogsSettings({\n  onFetchLogs,\n  onClearLogs,\n  autoRefreshMs = 3000,\n  height = '100%',\n}: LiveLogsSettingsProps) {\n  return (\n    <LogViewer\n      mode=\"logs\"\n      showHeader={false}\n      onFetchLogs={onFetchLogs}\n      onClearLogs={onClearLogs}\n      enableAutoScroll\n      autoRefreshMs={autoRefreshMs}\n      enableSearch\n      enableFilter\n      enableExport\n      enableClear={!!onClearLogs}\n      height={height}\n    />\n  );\n}\n\n/**\n * Log archives settings component for use in SettingsFramework categories.\n * Shows only the archived log files without live logs or internal navigation.\n *\n * @example\n * ```tsx\n * const categories = [\n *   {\n *     id: 'logArchives',\n *     label: 'Log Archives',\n *     icon: Archive,\n *     description: 'Download and manage archived log files',\n *     component: (props) => (\n *       <LogArchivesSettings\n *         {...props}\n *         onFetchArchives={fetchArchives}\n *         onDownloadArchive={downloadArchive}\n *         onDeleteArchive={deleteArchive}\n *       />\n *     ),\n *   },\n * ];\n * ```\n */\nexport function LogArchivesSettings({\n  onFetchArchives,\n  onDownloadArchive,\n  onDeleteArchive,\n  height = '100%',\n}: LogArchivesSettingsProps) {\n  return (\n    <LogViewer\n      mode=\"archives\"\n      showHeader={false}\n      onFetchArchives={onFetchArchives}\n      onDownloadArchive={onDownloadArchive}\n      onDeleteArchive={onDeleteArchive}\n      height={height}\n    />\n  );\n}\n\n// Legacy export for backwards compatibility\nexport interface LogsSettingsProps extends SettingsCategoryComponentProps {\n  onFetchLogs: () => Promise<LogEntry[]>;\n  onFetchArchives?: () => Promise<LogFile[]>;\n  onClearLogs?: () => Promise<void>;\n  onDownloadArchive?: (filename: string) => void;\n  onDeleteArchive?: (filename: string) => Promise<void>;\n  autoRefreshMs?: number;\n  height?: string;\n}\n\n/** @deprecated Use LiveLogsSettings and LogArchivesSettings instead */\nexport function LogsSettings({\n  onFetchLogs,\n  onFetchArchives,\n  onClearLogs,\n  onDownloadArchive,\n  onDeleteArchive,\n  autoRefreshMs = 3000,\n  height = '100%',\n}: LogsSettingsProps) {\n  return (\n    <LogViewer\n      mode=\"full\"\n      showHeader={false}\n      onFetchLogs={onFetchLogs}\n      onFetchArchives={onFetchArchives}\n      onClearLogs={onClearLogs}\n      onDownloadArchive={onDownloadArchive}\n      onDeleteArchive={onDeleteArchive}\n      enableAutoScroll\n      autoRefreshMs={autoRefreshMs}\n      enableSearch\n      enableFilter\n      enableExport\n      enableClear={!!onClearLogs}\n      showArchives={!!onFetchArchives}\n      height={height}\n    />\n  );\n}\n","import type { ReactNode } from 'react';\nimport { Button, type ButtonProps } from '../base/button';\nimport { cn } from '../../src/utils/cn';\n\nexport interface SettingsPanelProps {\n  title: ReactNode;\n  description?: ReactNode;\n  icon?: ReactNode;\n  meta?: ReactNode;\n  actions?: ReactNode;\n  children?: ReactNode;\n  className?: string;\n  headerClassName?: string;\n  bodyClassName?: string;\n}\n\nexport interface SettingsDetailListItem {\n  key?: string;\n  label: ReactNode;\n  value: ReactNode;\n}\n\nexport interface SettingsDetailListProps {\n  items: SettingsDetailListItem[];\n  className?: string;\n  itemClassName?: string;\n}\n\nexport type SettingsNoticeTone = 'neutral' | 'info' | 'warning' | 'danger' | 'success';\n\nexport interface SettingsNoticePanelProps extends SettingsPanelProps {\n  tone?: SettingsNoticeTone;\n}\n\nexport interface SettingsActionPanelProps extends Omit<SettingsPanelProps, 'actions'> {\n  action?: ReactNode;\n  actionLabel?: ReactNode;\n  onAction?: ButtonProps['onClick'];\n  actionIcon?: ReactNode;\n  actionVariant?: ButtonProps['variant'];\n  actionDisabled?: boolean;\n  actionButtonProps?: Omit<ButtonProps, 'children' | 'variant' | 'onClick'>;\n}\n\nconst noticeToneClasses: Record<SettingsNoticeTone, string> = {\n  neutral: 'bg-muted/50',\n  info: 'border border-border/60 bg-background/70',\n  warning: 'border border-amber-500/30 bg-amber-500/10',\n  danger: 'border border-destructive/30 bg-destructive/10',\n  success: 'border border-emerald-500/25 bg-emerald-500/10',\n};\n\nexport function SettingsPanel({\n  title,\n  description,\n  icon,\n  meta,\n  actions,\n  children,\n  className,\n  headerClassName,\n  bodyClassName,\n}: SettingsPanelProps) {\n  const hasHeader = Boolean(title || description || icon || meta || actions);\n\n  return (\n    <div className={cn('rounded-lg bg-muted/50 p-4', className)}>\n      {hasHeader && (\n        <div className={cn('flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between', headerClassName)}>\n          <div className=\"space-y-1\">\n            <div className=\"flex items-center gap-2\">\n              {icon ? <span className=\"text-muted-foreground\">{icon}</span> : null}\n              <h4 className=\"font-medium\">{title}</h4>\n            </div>\n            {description ? <p className=\"text-sm text-muted-foreground\">{description}</p> : null}\n            {meta ? <div className=\"flex flex-wrap gap-2 pt-1\">{meta}</div> : null}\n          </div>\n          {actions ? <div className=\"flex shrink-0 flex-wrap gap-2\">{actions}</div> : null}\n        </div>\n      )}\n\n      {children ? (\n        <div className={cn(hasHeader ? 'mt-4' : null, bodyClassName)}>\n          {children}\n        </div>\n      ) : null}\n    </div>\n  );\n}\n\nexport function SettingsDetailList({ items, className, itemClassName }: SettingsDetailListProps) {\n  return (\n    <dl className={cn('grid gap-2 text-sm', className)}>\n      {items.map((item, index) => (\n        <div\n          key={item.key || `${index}-${String(item.label)}`}\n          className={cn('flex items-center justify-between gap-4', itemClassName)}\n        >\n          <dt className=\"text-muted-foreground\">{item.label}</dt>\n          <dd className=\"text-foreground\">{item.value}</dd>\n        </div>\n      ))}\n    </dl>\n  );\n}\n\nexport function SettingsNoticePanel({\n  tone = 'neutral',\n  className,\n  ...props\n}: SettingsNoticePanelProps) {\n  return (\n    <SettingsPanel\n      {...props}\n      className={cn(noticeToneClasses[tone], className)}\n    />\n  );\n}\n\nexport function SettingsActionPanel({\n  action,\n  actionLabel,\n  onAction,\n  actionIcon,\n  actionVariant = 'outline',\n  actionDisabled = false,\n  actionButtonProps,\n  ...props\n}: SettingsActionPanelProps) {\n  const actions = action ?? (\n    actionLabel ? (\n      <Button\n        type=\"button\"\n        variant={actionVariant}\n        onClick={onAction}\n        disabled={actionDisabled}\n        {...actionButtonProps}\n      >\n        {actionIcon}\n        {actionLabel}\n      </Button>\n    ) : null\n  );\n\n  return <SettingsPanel {...props} actions={actions} />;\n}\n","/**\n * SuperDangerous UI Framework - Centralized Theme Configuration\n * \n * @module @superdangerous/app-framework/ui\n */\n\nexport const theme = {\n  colors: {\n    // Primary brand colors (customizable)\n    primary: {\n      DEFAULT: '#3b82f6', // Blue\n      hover: '#2563eb',\n      light: '#60a5fa',\n      dark: '#1d4ed8',\n    },\n    \n    // Dark theme colors (oxide-inspired)\n    dark: {\n      bg: {\n        primary: '#0a0a0a',\n        secondary: '#141414',\n        tertiary: '#1a1a1a',\n        elevated: '#242424',\n      },\n      border: {\n        DEFAULT: '#2a2a2a',\n        subtle: '#1f1f1f',\n        strong: '#3a3a3a',\n      },\n    },\n    \n    // Light theme colors (current)\n    light: {\n      bg: {\n        primary: '#ffffff',\n        secondary: '#f8f9fa',\n        tertiary: '#f3f4f6',\n        elevated: '#ffffff',\n      },\n      border: {\n        DEFAULT: '#e5e7eb',\n        subtle: '#f3f4f6',\n        strong: '#d1d5db',\n      },\n    },\n    \n    // Semantic colors\n    success: {\n      DEFAULT: '#10b981',\n      light: '#34d399',\n      dark: '#059669',\n    },\n    warning: {\n      DEFAULT: '#f59e0b',\n      light: '#fbbf24',\n      dark: '#d97706',\n    },\n    error: {\n      DEFAULT: '#ef4444',\n      light: '#f87171',\n      dark: '#dc2626',\n    },\n    info: {\n      DEFAULT: '#3b82f6',\n      light: '#60a5fa',\n      dark: '#2563eb',\n    },\n    \n    // Special colors\n    intelligent: {\n      DEFAULT: '#8b5cf6', // Purple for intelligent templates\n      light: '#a78bfa',\n      dark: '#7c3aed',\n    },\n    \n    // Activity indicators\n    activity: {\n      read: '#10b981', // Green\n      write: '#3b82f6', // Blue\n      inactive: '#6b7280', // Gray\n    },\n  },\n  \n  // Gradients (oxide-inspired)\n  gradients: {\n    subtle: 'linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0) 100%)',\n    card: 'linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%)',\n    glow: 'radial-gradient(circle at 50% 0%, rgba(226,19,80,0.15) 0%, transparent 70%)',\n    intelligent: 'linear-gradient(135deg, rgba(139,92,246,0.1) 0%, rgba(139,92,246,0.05) 100%)',\n  },\n  \n  // Shadows (oxide-inspired)\n  shadows: {\n    sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n    DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',\n    md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n    lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n    xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n    glow: '0 0 20px rgba(226,19,80,0.3)',\n    'glow-intelligent': '0 0 20px rgba(139,92,246,0.3)',\n  },\n  \n  // Border radius\n  radius: {\n    sm: '0.25rem',\n    DEFAULT: '0.375rem',\n    md: '0.5rem',\n    lg: '0.75rem',\n    xl: '1rem',\n    '2xl': '1.5rem',\n    full: '9999px',\n  },\n  \n  // Spacing\n  spacing: {\n    xs: '0.5rem',\n    sm: '0.75rem',\n    DEFAULT: '1rem',\n    md: '1.5rem',\n    lg: '2rem',\n    xl: '3rem',\n    '2xl': '4rem',\n  },\n  \n  // Typography\n  typography: {\n    fonts: {\n      sans: 'Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',\n      mono: '\"JetBrains Mono\", \"SF Mono\", Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n    },\n    sizes: {\n      xs: '0.75rem',\n      sm: '0.875rem',\n      base: '1rem',\n      lg: '1.125rem',\n      xl: '1.25rem',\n      '2xl': '1.5rem',\n      '3xl': '1.875rem',\n      '4xl': '2.25rem',\n    },\n    weights: {\n      light: '300',\n      normal: '400',\n      medium: '500',\n      semibold: '600',\n      bold: '700',\n    },\n  },\n  \n  // Transitions\n  transitions: {\n    fast: '150ms',\n    DEFAULT: '200ms',\n    slow: '300ms',\n    timing: 'cubic-bezier(0.4, 0, 0.2, 1)',\n  },\n  \n  // Z-index layers\n  zIndex: {\n    base: 0,\n    elevated: 10,\n    dropdown: 20,\n    sticky: 30,\n    fixed: 40,\n    modal: 50,\n    popover: 60,\n    tooltip: 70,\n  },\n  \n  // Opacity values for oxide-style effects\n  opacity: {\n    hover: 0.8,\n    disabled: 0.5,\n    backdrop: 0.7,\n    subtle: 0.1,\n  },\n};\n\n// Helper function to get CSS variables\nexport const getCSSVariables = (isDark: boolean = false) => {\n  const colors = isDark ? theme.colors.dark : theme.colors.light;\n  \n  return {\n    '--color-bg-primary': colors.bg.primary,\n    '--color-bg-secondary': colors.bg.secondary,\n    '--color-bg-tertiary': colors.bg.tertiary,\n    '--color-bg-elevated': colors.bg.elevated,\n    '--color-border': colors.border.DEFAULT,\n    '--color-border-subtle': colors.border.subtle,\n    '--color-border-strong': colors.border.strong,\n    '--color-text': isDark ? '#ffffff' : '#000000',\n    '--color-text-secondary': isDark ? '#a1a1aa' : '#6b7280',\n    '--color-text-tertiary': isDark ? '#71717a' : '#9ca3af',\n  };\n};\n\n// Export theme type for TypeScript support\nexport type Theme = typeof theme;\n","/**\n * EpiSensor UI Framework - Theme Provider\n * Provides theme context and configuration for all apps\n * \n * @module @episensor/ui-framework/theme\n */\n\nimport React, { createContext, useContext, useEffect, useState } from 'react';\nimport { theme as defaultTheme } from './index';\n\nexport type ThemeMode = 'light' | 'dark' | 'system';\n\nexport interface ThemeConfig {\n  mode: ThemeMode;\n  theme: typeof defaultTheme;\n  customColors?: {\n    primary?: string;\n    secondary?: string;\n    accent?: string;\n  };\n}\n\ninterface ThemeContextValue {\n  themeConfig: ThemeConfig;\n  setThemeMode: (mode: ThemeMode) => void;\n  toggleTheme: () => void;\n  isDark: boolean;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\nexport interface ThemeProviderProps {\n  children: React.ReactNode;\n  defaultMode?: ThemeMode;\n  theme?: typeof defaultTheme;\n  customColors?: ThemeConfig['customColors'];\n  persistPreference?: boolean;\n}\n\n/**\n * Theme Provider Component\n * Manages theme state and provides theme context to the app\n */\nexport function ThemeProvider({\n  children,\n  defaultMode = 'system',\n  theme = defaultTheme,\n  customColors,\n  persistPreference = true,\n}: ThemeProviderProps) {\n  const [themeConfig, setThemeConfig] = useState<ThemeConfig>({\n    mode: defaultMode,\n    theme,\n    customColors,\n  });\n  \n  const [isDark, setIsDark] = useState(false);\n\n  // Load saved theme preference\n  useEffect(() => {\n    if (persistPreference) {\n      const savedMode = localStorage.getItem('theme-mode') as ThemeMode;\n      if (savedMode) {\n        setThemeConfig(prev => ({ ...prev, mode: savedMode }));\n      }\n    }\n  }, [persistPreference]);\n\n  // Apply theme mode\n  useEffect(() => {\n    const root = document.documentElement;\n    \n    if (themeConfig.mode === 'system') {\n      // Use system preference\n      const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n      const actuallyDark = mediaQuery.matches;\n      setIsDark(actuallyDark);\n      root.classList.toggle('dark', actuallyDark);\n      \n      // Listen for system theme changes\n      const handler = (e: MediaQueryListEvent) => {\n        const isDarkMode = e.matches;\n        setIsDark(isDarkMode);\n        root.classList.toggle('dark', isDarkMode);\n      };\n      \n      mediaQuery.addEventListener('change', handler);\n      return () => {\n        mediaQuery.removeEventListener('change', handler);\n      };\n    } else {\n      // Use manual setting\n      const actuallyDark = themeConfig.mode === 'dark';\n      setIsDark(actuallyDark);\n      root.classList.toggle('dark', actuallyDark);\n      return undefined;\n    }\n  }, [themeConfig.mode]);\n\n  // Apply custom colors\n  useEffect(() => {\n    if (customColors) {\n      const root = document.documentElement;\n      \n      if (customColors.primary) {\n        // Convert hex to HSL for CSS variables\n        const hsl = hexToHSL(customColors.primary);\n        root.style.setProperty('--primary', hsl);\n      }\n      \n      if (customColors.secondary) {\n        const hsl = hexToHSL(customColors.secondary);\n        root.style.setProperty('--secondary', hsl);\n      }\n      \n      if (customColors.accent) {\n        const hsl = hexToHSL(customColors.accent);\n        root.style.setProperty('--accent', hsl);\n      }\n    }\n  }, [customColors]);\n\n  const setThemeMode = (mode: ThemeMode) => {\n    setThemeConfig(prev => ({ ...prev, mode }));\n    if (persistPreference) {\n      localStorage.setItem('theme-mode', mode);\n    }\n  };\n\n  const toggleTheme = () => {\n    const newMode = isDark ? 'light' : 'dark';\n    setThemeMode(newMode);\n  };\n\n  const value: ThemeContextValue = {\n    themeConfig,\n    setThemeMode,\n    toggleTheme,\n    isDark,\n  };\n\n  return (\n    <ThemeContext.Provider value={value}>\n      {children}\n    </ThemeContext.Provider>\n  );\n}\n\n/**\n * Hook to use theme context\n */\nexport function useTheme() {\n  const context = useContext(ThemeContext);\n  if (!context) {\n    throw new Error('useTheme must be used within a ThemeProvider');\n  }\n  return context;\n}\n\n/**\n * Helper function to convert hex color to HSL\n */\nfunction hexToHSL(hex: string): string {\n  // Remove the hash if present\n  hex = hex.replace('#', '');\n  \n  // Convert hex to RGB\n  const r = parseInt(hex.substr(0, 2), 16) / 255;\n  const g = parseInt(hex.substr(2, 2), 16) / 255;\n  const b = parseInt(hex.substr(4, 2), 16) / 255;\n  \n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  let h = 0;\n  let s = 0;\n  const l = (max + min) / 2;\n  \n  if (max !== min) {\n    const d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n    \n    switch (max) {\n      case r: h = ((g - b) / d + (g < b ? 6 : 0)) / 6; break;\n      case g: h = ((b - r) / d + 2) / 6; break;\n      case b: h = ((r - g) / d + 4) / 6; break;\n    }\n  }\n  \n  return `${Math.round(h * 360)} ${Math.round(s * 100)}% ${Math.round(l * 100)}%`;\n}\n","/**\n * Theme Toggle Component\n * Provides UI for switching between light/dark/system themes\n */\n\nimport { Moon, Sun, Monitor } from 'lucide-react';\nimport { useTheme } from '../../src/theme/ThemeProvider';\nimport { Button } from '../base/button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../base/select';\nimport { Label } from '../base/label';\nimport { cn } from '../../src/utils/cn';\n\nexport interface ThemeToggleProps {\n  className?: string;\n  showLabel?: boolean;\n  variant?: 'button' | 'select';\n}\n\n/**\n * Theme toggle component for settings pages\n */\nexport function ThemeToggle({ \n  className, \n  showLabel = true,\n  variant = 'select' \n}: ThemeToggleProps) {\n  const { themeConfig, setThemeMode, toggleTheme, isDark } = useTheme();\n\n  if (variant === 'button') {\n    return (\n      <div className={cn(\"flex items-center gap-2\", className)}>\n        {showLabel && <Label>Theme</Label>}\n        <Button\n          variant=\"outline\"\n          size=\"icon\"\n          onClick={toggleTheme}\n          className=\"w-10 h-10\"\n        >\n          {isDark ? (\n            <Sun className=\"h-4 w-4\" />\n          ) : (\n            <Moon className=\"h-4 w-4\" />\n          )}\n        </Button>\n      </div>\n    );\n  }\n\n  return (\n    <div className={cn(\"flex flex-col gap-2\", className)}>\n      {showLabel && <Label htmlFor=\"theme-select\">Theme</Label>}\n      <Select value={themeConfig.mode} onValueChange={(value: any) => setThemeMode(value)}>\n        <SelectTrigger id=\"theme-select\" className=\"w-[180px]\">\n          <SelectValue placeholder=\"Select theme\" />\n        </SelectTrigger>\n        <SelectContent>\n          <SelectItem value=\"light\">\n            <div className=\"flex items-center gap-2\">\n              <Sun className=\"h-4 w-4\" />\n              <span>Light</span>\n            </div>\n          </SelectItem>\n          <SelectItem value=\"dark\">\n            <div className=\"flex items-center gap-2\">\n              <Moon className=\"h-4 w-4\" />\n              <span>Dark</span>\n            </div>\n          </SelectItem>\n          <SelectItem value=\"system\">\n            <div className=\"flex items-center gap-2\">\n              <Monitor className=\"h-4 w-4\" />\n              <span>System</span>\n            </div>\n          </SelectItem>\n        </SelectContent>\n      </Select>\n    </div>\n  );\n}\n\n/**\n * Compact theme toggle for headers/toolbars\n */\nexport function CompactThemeToggle({ className }: { className?: string }) {\n  const { toggleTheme, isDark } = useTheme();\n  \n  return (\n    <Button\n      variant=\"ghost\"\n      size=\"icon\"\n      onClick={toggleTheme}\n      className={cn(\"w-8 h-8\", className)}\n      title={`Switch to ${isDark ? 'light' : 'dark'} theme`}\n    >\n      {isDark ? (\n        <Sun className=\"h-4 w-4\" />\n      ) : (\n        <Moon className=\"h-4 w-4\" />\n      )}\n    </Button>\n  );\n}\n","import { \n  Server, Network, FileText, Shield, Mail, Settings,\n  Database, Bell, Users, Palette, Globe, Activity\n} from 'lucide-react';\nimport { SettingsCategory } from '../pages/SettingsPage';\n\n/**\n * Default settings categories with icons for common application settings\n * Apps can import and extend these categories or create their own\n */\nexport const defaultSettingsCategories: SettingsCategory[] = [\n  {\n    id: 'general',\n    label: 'General',\n    description: 'Basic application settings',\n    icon: <Settings className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'network',\n    label: 'Network',\n    description: 'Network and connectivity',\n    icon: <Network className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'logging',\n    label: 'Logging',\n    description: 'Logging configuration',\n    icon: <FileText className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'security',\n    label: 'Security',\n    description: 'Security settings',\n    icon: <Shield className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'notifications',\n    label: 'Notifications',\n    description: 'Email and alerts',\n    icon: <Mail className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'appearance',\n    label: 'Appearance',\n    description: 'UI preferences',\n    icon: <Palette className=\"h-4 w-4\" />,\n    settings: []\n  },\n  {\n    id: 'advanced',\n    label: 'Advanced',\n    description: 'Advanced settings',\n    icon: <Activity className=\"h-4 w-4\" />,\n    settings: []\n  }\n];\n\n/**\n * Helper function to create a settings category with icon\n */\nexport function createSettingsCategory(\n  id: string,\n  label: string,\n  iconName: keyof typeof iconMap,\n  description?: string\n): Omit<SettingsCategory, 'settings'> {\n  return {\n    id,\n    label,\n    description,\n    icon: iconMap[iconName] || <Settings className=\"h-4 w-4\" />\n  };\n}\n\n// Icon map for easy reference\nconst iconMap = {\n  Server: <Server className=\"h-4 w-4\" />,\n  Network: <Network className=\"h-4 w-4\" />,\n  FileText: <FileText className=\"h-4 w-4\" />,\n  Shield: <Shield className=\"h-4 w-4\" />,\n  Mail: <Mail className=\"h-4 w-4\" />,\n  Settings: <Settings className=\"h-4 w-4\" />,\n  Database: <Database className=\"h-4 w-4\" />,\n  Bell: <Bell className=\"h-4 w-4\" />,\n  Users: <Users className=\"h-4 w-4\" />,\n  Palette: <Palette className=\"h-4 w-4\" />,\n  Globe: <Globe className=\"h-4 w-4\" />,\n  Activity: <Activity className=\"h-4 w-4\" />\n};\n","import { useState, useEffect } from 'react';\nimport { Alert, AlertDescription } from '../base/alert';\nimport { Button } from '../base/button';\nimport { Download, X, RefreshCw, ExternalLink } from 'lucide-react';\n// import { cn } from '../../src/utils/cn'; // Not used\n\ninterface UpdateInfo {\n  currentVersion: string;\n  updateAvailable: boolean;\n  latestRelease?: {\n    version: string;\n    name: string;\n    body: string;\n    url: string;\n    publishedAt: string;\n  };\n  lastCheck: number | null;\n}\n\ninterface UpdateNotificationProps {\n  apiUrl?: string;\n  checkInterval?: number;\n  onDownload?: (updateInfo: UpdateInfo) => void;\n}\n\nexport function UpdateNotification({ \n  apiUrl = '/api/updates',\n  checkInterval = 3600000, // 1 hour default\n  onDownload\n}: UpdateNotificationProps) {\n  const [updateInfo, setUpdateInfo] = useState<UpdateInfo | null>(null);\n  const [_isChecking, setIsChecking] = useState(false);\n  const [isDismissed, setIsDismissed] = useState(false);\n  const [showChangelog, setShowChangelog] = useState(false);\n\n  useEffect(() => {\n    // Check for updates on mount\n    checkForUpdates();\n    \n    // Check periodically\n    const interval = setInterval(checkForUpdates, checkInterval);\n    \n    return () => clearInterval(interval);\n  }, [checkInterval]);\n\n  const checkForUpdates = async (force = false) => {\n    setIsChecking(true);\n    try {\n      const response = await fetch(`${apiUrl}/check${force ? '?force=true' : ''}`);\n      if (response.ok) {\n        const data = await response.json();\n        setUpdateInfo(data);\n\n        // Persist dismissal per version; only hide if the same version was dismissed.\n        if (data.updateAvailable && data.latestRelease?.version) {\n          const dismissedVersion = localStorage.getItem('dismissedUpdateVersion');\n          setIsDismissed(dismissedVersion === data.latestRelease.version);\n        } else {\n          setIsDismissed(false);\n        }\n      }\n    } catch (error) {\n      console.error('Failed to check for updates:', error);\n    } finally {\n      setIsChecking(false);\n    }\n  };\n\n  const handleDismiss = () => {\n    setIsDismissed(true);\n    if (updateInfo?.latestRelease) {\n      localStorage.setItem('dismissedUpdateVersion', updateInfo.latestRelease.version);\n    }\n  };\n\n  const handleDownload = async () => {\n    if (onDownload && updateInfo) {\n      onDownload(updateInfo);\n    } else {\n      try {\n        const response = await fetch(`${apiUrl}/download-url`);\n        if (response.ok) {\n          const { url } = await response.json();\n          window.open(url, '_blank');\n        }\n      } catch (error) {\n        // Fallback to GitHub release page\n        if (updateInfo?.latestRelease?.url) {\n          window.open(updateInfo.latestRelease.url, '_blank');\n        }\n      }\n    }\n  };\n\n  if (!updateInfo?.updateAvailable || isDismissed) {\n    return null;\n  }\n\n  return (\n    <div className=\"fixed bottom-4 right-4 z-50 max-w-md animate-in slide-in-from-bottom-2\">\n      <Alert className=\"border-green-500 bg-green-50 dark:bg-green-950/20\">\n        <Download className=\"h-4 w-4 text-green-600 dark:text-green-400\" />\n        <AlertDescription className=\"pr-8\">\n          <div className=\"font-semibold text-green-800 dark:text-green-200 mb-1\">\n            Update Available: v{updateInfo.latestRelease?.version}\n          </div>\n          <div className=\"text-sm text-green-700 dark:text-green-300 mb-3\">\n            {updateInfo.latestRelease?.name || 'A new version is available'}\n          </div>\n          \n          {showChangelog && updateInfo.latestRelease?.body && (\n            <div className=\"mt-3 p-2 bg-white/50 dark:bg-black/20 rounded text-xs\">\n              <pre className=\"whitespace-pre-wrap font-sans\">\n                {updateInfo.latestRelease.body}\n              </pre>\n            </div>\n          )}\n          \n          <div className=\"flex gap-2 mt-3\">\n            <Button\n              size=\"sm\"\n              variant=\"default\"\n              onClick={handleDownload}\n              className=\"bg-green-600 hover:bg-green-700\"\n            >\n              <Download className=\"h-3 w-3 mr-1\" />\n              Download\n            </Button>\n            <Button\n              size=\"sm\"\n              variant=\"outline\"\n              onClick={() => setShowChangelog(!showChangelog)}\n            >\n              {showChangelog ? 'Hide' : 'Show'} Changes\n            </Button>\n            <Button\n              size=\"sm\"\n              variant=\"ghost\"\n              aria-label=\"Open release page\"\n              onClick={() => window.open(updateInfo.latestRelease?.url, '_blank')}\n            >\n              <ExternalLink className=\"h-3 w-3\" />\n            </Button>\n          </div>\n        </AlertDescription>\n        \n        <Button\n          size=\"sm\"\n          variant=\"ghost\"\n          aria-label=\"Dismiss update\"\n          className=\"absolute top-2 right-2 h-6 w-6 p-0\"\n          onClick={handleDismiss}\n        >\n          <X className=\"h-4 w-4\" />\n        </Button>\n      </Alert>\n    </div>\n  );\n}\n\n// Settings component for update preferences\nexport function UpdateSettings({ apiUrl = '/api/updates' }) {\n  const [autoCheck, setAutoCheck] = useState(true);\n  const [_isChecking, setIsChecking] = useState(false);\n  const [lastCheck, setLastCheck] = useState<Date | null>(null);\n\n  const handleCheckNow = async () => {\n    setIsChecking(true);\n    try {\n      const response = await fetch(`${apiUrl}/check?force=true`);\n      if (response.ok) {\n        const data = await response.json();\n        setLastCheck(new Date());\n        \n        if (data.updateAvailable) {\n          alert(`Update available: v${data.latestRelease?.version}`);\n        } else {\n          alert('You are running the latest version');\n        }\n      }\n    } catch (error) {\n      console.error('Failed to check for updates:', error);\n      alert('Failed to check for updates');\n    } finally {\n      setIsChecking(false);\n    }\n  };\n\n  const handleAutoCheckToggle = async (enabled: boolean) => {\n    try {\n      const response = await fetch(`${apiUrl}/auto-check`, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ enabled })\n      });\n      if (response.ok) {\n        setAutoCheck(enabled);\n      }\n    } catch (error) {\n      console.error('Failed to update auto-check setting:', error);\n    }\n  };\n\n  return (\n    <div className=\"space-y-4\">\n      <div className=\"flex items-center justify-between\">\n        <div>\n          <h3 className=\"text-sm font-medium\">Automatic Updates</h3>\n          <p className=\"text-xs text-muted-foreground\">\n            Check for updates automatically\n          </p>\n        </div>\n        <input\n          type=\"checkbox\"\n          checked={autoCheck}\n          onChange={(e) => handleAutoCheckToggle(e.target.checked)}\n          className=\"toggle\"\n        />\n      </div>\n      \n      <div className=\"flex items-center gap-2\">\n        <Button\n          size=\"sm\"\n          variant=\"outline\"\n          onClick={handleCheckNow}\n          disabled={_isChecking}\n        >\n          {_isChecking ? (\n            <>\n              <RefreshCw className=\"h-3 w-3 mr-1 animate-spin\" />\n              Checking...\n            </>\n          ) : (\n            <>\n              <RefreshCw className=\"h-3 w-3 mr-1\" />\n              Check Now\n            </>\n          )}\n        </Button>\n        \n        {lastCheck && (\n          <span className=\"text-xs text-muted-foreground\">\n            Last checked: {lastCheck.toLocaleTimeString()}\n          </span>\n        )}\n      </div>\n    </div>\n  );\n}\n","import { useSocketIO } from './useSocketIO';\n\nexport interface ConnectionStatus {\n  connected: boolean;\n  connecting: boolean;\n  transport: 'websocket' | 'polling' | null;\n  error: Error | null;\n  retryCount: number;\n  reconnect: () => void;\n}\n\n/**\n * Enhanced connection status hook that provides comprehensive connection information\n * including transport type detection for better UX in HTTP/2 environments\n */\nexport function useConnectionStatus(options?: Parameters<typeof useSocketIO>[0]): ConnectionStatus {\n  const [state, actions] = useSocketIO(options);\n\n  return {\n    connected: state.connected,\n    connecting: state.connecting,\n    transport: state.transport,\n    error: state.error,\n    retryCount: state.retryCount,\n    reconnect: actions.reconnect\n  };\n}\n","/**\n * Authentication Handler Utilities\n * \n * Provides common authentication functionality for applications\n */\n\nexport interface AuthConfig {\n  loginEndpoint?: string;\n  logoutEndpoint?: string;\n  refreshEndpoint?: string;\n  tokenKey?: string;\n  authKey?: string;\n  tokenExpiry?: number; // in milliseconds\n}\n\nexport interface AuthResponse {\n  success: boolean;\n  token?: string;\n  user?: {\n    username: string;\n    email?: string;\n    roles?: string[];\n  };\n  error?: string;\n  expiresIn?: number;\n}\n\nexport class AuthHandler {\n  private config: Required<AuthConfig>;\n  private refreshTimer?: NodeJS.Timeout;\n\n  constructor(config: AuthConfig = {}) {\n    this.config = {\n      loginEndpoint: config.loginEndpoint || '/api/login',\n      logoutEndpoint: config.logoutEndpoint || '/api/logout',\n      refreshEndpoint: config.refreshEndpoint || '/api/refresh',\n      tokenKey: config.tokenKey || 'auth_token',\n      authKey: config.authKey || 'authenticated',\n      tokenExpiry: config.tokenExpiry || 3600000, // 1 hour default\n    };\n  }\n\n  /**\n   * Attempt to log in with credentials\n   */\n  async login(username: string, password: string): Promise<AuthResponse> {\n    try {\n      const response = await fetch(this.config.loginEndpoint, {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ username, password }),\n      });\n\n      const data = await response.json();\n\n      if (response.ok && data.success) {\n        // Store authentication state\n        localStorage.setItem(this.config.authKey, 'true');\n        \n        if (data.token) {\n          localStorage.setItem(this.config.tokenKey, data.token);\n          this.scheduleTokenRefresh(data.expiresIn || this.config.tokenExpiry);\n        }\n\n        if (data.user) {\n          localStorage.setItem('user', JSON.stringify(data.user));\n        }\n\n        return {\n          success: true,\n          token: data.token,\n          user: data.user,\n          expiresIn: data.expiresIn,\n        };\n      }\n\n      return {\n        success: false,\n        error: data.error || 'Invalid credentials',\n      };\n    } catch (error) {\n      console.error('Login error:', error);\n      return {\n        success: false,\n        error: 'Login failed. Please try again.',\n      };\n    }\n  }\n\n  /**\n   * Log out the current user\n   */\n  async logout(): Promise<void> {\n    try {\n      const token = this.getToken();\n      \n      if (token) {\n        await fetch(this.config.logoutEndpoint, {\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            'Authorization': `Bearer ${token}`,\n          },\n        });\n      }\n    } catch (error) {\n      console.error('Logout error:', error);\n    } finally {\n      // Clear local storage\n      localStorage.removeItem(this.config.authKey);\n      localStorage.removeItem(this.config.tokenKey);\n      localStorage.removeItem('user');\n      \n      // Clear refresh timer\n      if (this.refreshTimer) {\n        clearTimeout(this.refreshTimer);\n      }\n    }\n  }\n\n  /**\n   * Check if user is authenticated\n   */\n  isAuthenticated(): boolean {\n    return localStorage.getItem(this.config.authKey) === 'true';\n  }\n\n  /**\n   * Get the current auth token\n   */\n  getToken(): string | null {\n    return localStorage.getItem(this.config.tokenKey);\n  }\n\n  /**\n   * Get the current user\n   */\n  getUser(): any {\n    const userStr = localStorage.getItem('user');\n    if (userStr) {\n      try {\n        return JSON.parse(userStr);\n      } catch {\n        return null;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * Refresh the authentication token\n   */\n  async refreshToken(): Promise<boolean> {\n    try {\n      const currentToken = this.getToken();\n      if (!currentToken) {\n        return false;\n      }\n\n      const response = await fetch(this.config.refreshEndpoint, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${currentToken}`,\n        },\n      });\n\n      if (response.ok) {\n        const data = await response.json();\n        if (data.token) {\n          localStorage.setItem(this.config.tokenKey, data.token);\n          this.scheduleTokenRefresh(data.expiresIn || this.config.tokenExpiry);\n          return true;\n        }\n      }\n\n      return false;\n    } catch (error) {\n      console.error('Token refresh error:', error);\n      return false;\n    }\n  }\n\n  /**\n   * Schedule automatic token refresh\n   */\n  private scheduleTokenRefresh(expiresIn: number): void {\n    if (this.refreshTimer) {\n      clearTimeout(this.refreshTimer);\n    }\n\n    // Refresh 5 minutes before expiry\n    const refreshTime = Math.max(0, expiresIn - 300000);\n    \n    this.refreshTimer = setTimeout(() => {\n      this.refreshToken();\n    }, refreshTime);\n  }\n\n  /**\n   * Make an authenticated API request\n   */\n  async authenticatedFetch(url: string, options: RequestInit = {}): Promise<Response> {\n    const token = this.getToken();\n    \n    const headers = new Headers(options.headers);\n    if (token) {\n      headers.set('Authorization', `Bearer ${token}`);\n    }\n\n    const response = await fetch(url, {\n      ...options,\n      headers,\n    });\n\n    // If unauthorized, try to refresh token and retry\n    if (response.status === 401) {\n      const refreshed = await this.refreshToken();\n      if (refreshed) {\n        const newToken = this.getToken();\n        if (newToken) {\n          headers.set('Authorization', `Bearer ${newToken}`);\n        }\n        \n        return fetch(url, {\n          ...options,\n          headers,\n        });\n      }\n    }\n\n    return response;\n  }\n\n  /**\n   * Protected route wrapper\n   */\n  requireAuth(redirectTo: string = '/login'): boolean {\n    if (!this.isAuthenticated()) {\n      window.location.href = redirectTo;\n      return false;\n    }\n    return true;\n  }\n}\n\n// Export a default instance\nexport const authHandler = new AuthHandler();\n\n// Export utility functions for convenience\nexport const login = (username: string, password: string) => authHandler.login(username, password);\nexport const logout = () => authHandler.logout();\nexport const isAuthenticated = () => authHandler.isAuthenticated();\nexport const getToken = () => authHandler.getToken();\nexport const getUser = () => authHandler.getUser();\nexport const authenticatedFetch = (url: string, options?: RequestInit) => authHandler.authenticatedFetch(url, options);","/**\n * SuperDangerous UI Framework - Shared Style Constants\n * Reusable Tailwind class combinations for consistency\n * \n * @module @superdangerous/app-framework/ui\n */\n\nexport const cardStyles = {\n  base: \"transition-all duration-200\",\n  interactive: \"hover:shadow-md hover:border-gray-300 dark:hover:border-gray-700 cursor-pointer\",\n  elevation: \"shadow-sm\",\n} as const;\n\nexport const buttonStyles = {\n  primary: \"gap-2\",\n  icon: \"h-4 w-4\",\n} as const;\n\nexport const emptyStateStyles = {\n  container: \"flex flex-col items-center justify-center py-12 text-center\",\n  icon: \"h-12 w-12 text-muted-foreground mb-4\",\n  title: \"text-lg font-medium mb-2\",\n  description: \"text-sm text-muted-foreground max-w-sm\",\n} as const;\n\nexport const activityStyles = {\n  led: \"w-2 h-2 rounded-full transition-all duration-200\",\n  pulse: \"animate-pulse\",\n  colors: {\n    read: \"bg-green-500\",\n    write: \"bg-blue-500\",\n    inactive: \"bg-gray-400\",\n    error: \"bg-red-500\",\n  }\n} as const;\n\nexport const statusStyles = {\n  badge: {\n    success: \"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200\",\n    warning: \"bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200\",\n    error: \"bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200\",\n    info: \"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200\",\n    default: \"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200\",\n  }\n} as const;\n","import { useState, useMemo, useCallback, useEffect } from 'react';\n\ninterface UsePaginationOptions<T> {\n  data: T[];\n  pageSize?: number;\n  storageKey?: string;\n}\n\ninterface PaginationState {\n  page: number;\n  pageSize: number;\n}\n\ninterface UsePaginationResult<T> {\n  // Paginated data\n  paginatedData: T[];\n\n  // Current state\n  page: number;\n  pageSize: number;\n  totalPages: number;\n  totalItems: number;\n\n  // Navigation\n  setPage: (page: number) => void;\n  setPageSize: (size: number) => void;\n  nextPage: () => void;\n  prevPage: () => void;\n  firstPage: () => void;\n  lastPage: () => void;\n\n  // Info\n  startIndex: number;\n  endIndex: number;\n  canGoNext: boolean;\n  canGoPrev: boolean;\n\n  // Page size options\n  pageSizeOptions: number[];\n}\n\nconst DEFAULT_PAGE_SIZE = 25;\nconst PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\nexport function usePagination<T>({\n  data,\n  pageSize: initialPageSize = DEFAULT_PAGE_SIZE,\n  storageKey,\n}: UsePaginationOptions<T>): UsePaginationResult<T> {\n  // Initialize state from localStorage if available\n  const [state, setState] = useState<PaginationState>(() => {\n    if (storageKey) {\n      try {\n        const stored = localStorage.getItem(`pagination-${storageKey}`);\n        if (stored) {\n          const parsed = JSON.parse(stored);\n          return {\n            page: 1, // Always start on first page\n            pageSize: parsed.pageSize || initialPageSize,\n          };\n        }\n      } catch {\n        // Ignore localStorage errors\n      }\n    }\n    return {\n      page: 1,\n      pageSize: initialPageSize,\n    };\n  });\n\n  const { page, pageSize } = state;\n\n  // Calculate total pages\n  const totalPages = useMemo(\n    () => Math.max(1, Math.ceil(data.length / pageSize)),\n    [data.length, pageSize]\n  );\n\n  // Reset to first page if current page is out of bounds\n  useEffect(() => {\n    if (page > totalPages) {\n      setState((prev) => ({ ...prev, page: Math.max(1, totalPages) }));\n    }\n  }, [totalPages, page]);\n\n  // Persist pageSize to localStorage\n  useEffect(() => {\n    if (storageKey) {\n      try {\n        localStorage.setItem(\n          `pagination-${storageKey}`,\n          JSON.stringify({ pageSize })\n        );\n      } catch {\n        // Ignore localStorage errors\n      }\n    }\n  }, [pageSize, storageKey]);\n\n  // Calculate start and end indices\n  const startIndex = (page - 1) * pageSize;\n  const endIndex = Math.min(startIndex + pageSize, data.length);\n\n  // Get paginated data\n  const paginatedData = useMemo(\n    () => data.slice(startIndex, endIndex),\n    [data, startIndex, endIndex]\n  );\n\n  // Navigation functions\n  const setPage = useCallback((newPage: number) => {\n    setState((prev) => ({\n      ...prev,\n      page: Math.max(1, Math.min(newPage, totalPages)),\n    }));\n  }, [totalPages]);\n\n  const setPageSize = useCallback((newSize: number) => {\n    setState({\n      page: 1, // Reset to first page when changing page size\n      pageSize: newSize,\n    });\n  }, []);\n\n  const nextPage = useCallback(() => {\n    setPage(page + 1);\n  }, [page, setPage]);\n\n  const prevPage = useCallback(() => {\n    setPage(page - 1);\n  }, [page, setPage]);\n\n  const firstPage = useCallback(() => {\n    setPage(1);\n  }, [setPage]);\n\n  const lastPage = useCallback(() => {\n    setPage(totalPages);\n  }, [totalPages, setPage]);\n\n  return {\n    paginatedData,\n    page,\n    pageSize,\n    totalPages,\n    totalItems: data.length,\n    setPage,\n    setPageSize,\n    nextPage,\n    prevPage,\n    firstPage,\n    lastPage,\n    startIndex: startIndex + 1, // 1-indexed for display\n    endIndex,\n    canGoNext: page < totalPages,\n    canGoPrev: page > 1,\n    pageSizeOptions: PAGE_SIZE_OPTIONS,\n  };\n}\n","import { useState, useEffect, useCallback } from 'react';\n\nexport interface ColumnConfig {\n  id: string;\n  label: string;\n  defaultVisible?: boolean;\n  locked?: boolean; // If true, column cannot be hidden\n}\n\nexport interface ColumnVisibilityState {\n  [key: string]: boolean;\n}\n\ninterface UseColumnVisibilityOptions {\n  columns: ColumnConfig[];\n  storageKey: string;\n}\n\ninterface UseColumnVisibilityReturn {\n  visibleColumns: ColumnVisibilityState;\n  isColumnVisible: (columnId: string) => boolean;\n  toggleColumn: (columnId: string) => void;\n  showAllColumns: () => void;\n  hideAllColumns: () => void;\n  columns: ColumnConfig[];\n}\n\nexport function useColumnVisibility({\n  columns,\n  storageKey,\n}: UseColumnVisibilityOptions): UseColumnVisibilityReturn {\n  const fullStorageKey = `column-visibility-${storageKey}`;\n\n  // Initialize state from localStorage or defaults (with SSR guard)\n  const [visibleColumns, setVisibleColumns] = useState<ColumnVisibilityState>(() => {\n    // Default state\n    const defaults: ColumnVisibilityState = {};\n    columns.forEach(col => {\n      defaults[col.id] = col.defaultVisible !== false;\n    });\n\n    // SSR guard - localStorage is not available on server\n    if (typeof window === 'undefined') {\n      return defaults;\n    }\n\n    try {\n      const stored = localStorage.getItem(fullStorageKey);\n      if (stored) {\n        const parsed = JSON.parse(stored);\n        // Merge with defaults to handle new columns\n        const merged: ColumnVisibilityState = {};\n        columns.forEach(col => {\n          if (col.locked) {\n            merged[col.id] = true;\n          } else if (parsed[col.id] !== undefined) {\n            merged[col.id] = parsed[col.id];\n          } else {\n            merged[col.id] = col.defaultVisible !== false;\n          }\n        });\n        return merged;\n      }\n    } catch (e) {\n      console.error('Error loading column visibility state:', e);\n    }\n\n    return defaults;\n  });\n\n  // Persist to localStorage (with SSR guard)\n  useEffect(() => {\n    if (typeof window === 'undefined') return;\n\n    try {\n      localStorage.setItem(fullStorageKey, JSON.stringify(visibleColumns));\n    } catch (e) {\n      console.error('Error saving column visibility state:', e);\n    }\n  }, [visibleColumns, fullStorageKey]);\n\n  const isColumnVisible = useCallback(\n    (columnId: string): boolean => {\n      const col = columns.find(c => c.id === columnId);\n      if (col?.locked) return true;\n      return visibleColumns[columnId] !== false;\n    },\n    [visibleColumns, columns]\n  );\n\n  const toggleColumn = useCallback(\n    (columnId: string) => {\n      const col = columns.find(c => c.id === columnId);\n      if (col?.locked) return; // Cannot toggle locked columns\n\n      setVisibleColumns(prev => ({\n        ...prev,\n        [columnId]: !prev[columnId],\n      }));\n    },\n    [columns]\n  );\n\n  const showAllColumns = useCallback(() => {\n    const allVisible: ColumnVisibilityState = {};\n    columns.forEach(col => {\n      allVisible[col.id] = true;\n    });\n    setVisibleColumns(allVisible);\n  }, [columns]);\n\n  const hideAllColumns = useCallback(() => {\n    const onlyLocked: ColumnVisibilityState = {};\n    columns.forEach(col => {\n      onlyLocked[col.id] = col.locked === true;\n    });\n    setVisibleColumns(onlyLocked);\n  }, [columns]);\n\n  return {\n    visibleColumns,\n    isColumnVisible,\n    toggleColumn,\n    showAllColumns,\n    hideAllColumns,\n    columns,\n  };\n}\n","import { useState, useCallback, useEffect, useRef } from 'react';\n\ninterface ColumnConfig {\n  key: string;\n  minWidth?: number;\n  maxWidth?: number;\n  defaultWidth?: number;\n}\n\ninterface UseResizableColumnsOptions {\n  tableId: string;\n  columns: ColumnConfig[];\n  storageKey?: string;\n}\n\ninterface ResizableColumnState {\n  widths: Record<string, number>;\n  isResizing: boolean;\n  resizingColumn: string | null;\n}\n\nexport interface ResizableColumnResult {\n  widths: Record<string, number>;\n  isResizing: boolean;\n  totalWidth: number;\n  getResizeHandleProps: (columnKey: string) => {\n    onPointerDown: (e: React.PointerEvent) => void;\n    onMouseDown: (e: React.MouseEvent) => void;\n    draggable: boolean;\n    onDragStart: (e: React.DragEvent) => void;\n    className: string;\n    'data-resizing': boolean;\n  };\n  getColumnStyle: (columnKey: string) => React.CSSProperties;\n  getTableStyle: () => React.CSSProperties;\n  resetToDefaults: () => void;\n}\n\nconst DEFAULT_MIN_WIDTH = 50;\nconst DEFAULT_WIDTH = 150;\nconst DRAG_THRESHOLD = 3; // Minimum pixels before resize activates\n\nexport function useResizableColumns({\n  tableId,\n  columns,\n  storageKey,\n}: UseResizableColumnsOptions): ResizableColumnResult {\n  const effectiveStorageKey = storageKey || `table-columns-${tableId}`;\n\n  // Get default widths from column config\n  const getDefaultWidths = useCallback(() => {\n    return columns.reduce((acc, col) => {\n      acc[col.key] = col.defaultWidth || DEFAULT_WIDTH;\n      return acc;\n    }, {} as Record<string, number>);\n  }, [columns]);\n\n  // Initialize widths from localStorage or defaults\n  const [state, setState] = useState<ResizableColumnState>(() => {\n    try {\n      const stored = localStorage.getItem(effectiveStorageKey);\n      if (stored) {\n        const parsed = JSON.parse(stored);\n        // Merge with defaults in case new columns were added\n        const defaults = getDefaultWidths();\n        return {\n          widths: { ...defaults, ...parsed },\n          isResizing: false,\n          resizingColumn: null,\n        };\n      }\n    } catch {\n      // Ignore localStorage errors\n    }\n    return {\n      widths: getDefaultWidths(),\n      isResizing: false,\n      resizingColumn: null,\n    };\n  });\n\n  // Refs for resize handling - these are stable across renders\n  const startXRef = useRef<number>(0);\n  const startWidthRef = useRef<number>(0);\n  const activeColumnRef = useRef<string | null>(null);\n  const hasDraggedRef = useRef<boolean>(false);\n  const columnsRef = useRef(columns);\n\n  // Keep columnsRef up to date\n  useEffect(() => {\n    columnsRef.current = columns;\n  }, [columns]);\n\n  // Get column config by key - uses ref for stable reference\n  const getColumnConfig = useCallback(\n    (key: string) => columnsRef.current.find((c) => c.key === key),\n    []\n  );\n\n  // Persist widths to localStorage\n  useEffect(() => {\n    try {\n      localStorage.setItem(effectiveStorageKey, JSON.stringify(state.widths));\n    } catch {\n      // Ignore localStorage errors\n    }\n  }, [state.widths, effectiveStorageKey]);\n\n  // Stable event handlers using refs - these don't change between renders\n  const handlersRef = useRef<{\n    onPointerMove: (e: PointerEvent) => void;\n    onPointerUp: (e: PointerEvent) => void;\n  } | null>(null);\n\n  // Initialize handlers once\n  if (!handlersRef.current) {\n    handlersRef.current = {\n      onPointerMove: (e: PointerEvent) => {\n        if (!activeColumnRef.current) return;\n\n        const diff = e.clientX - startXRef.current;\n\n        // Check if we've exceeded the drag threshold\n        if (!hasDraggedRef.current) {\n          if (Math.abs(diff) < DRAG_THRESHOLD) {\n            return; // Not yet dragging\n          }\n          // Now we're actually dragging - set the resizing state\n          hasDraggedRef.current = true;\n          setState((prev) => ({\n            ...prev,\n            isResizing: true,\n            resizingColumn: activeColumnRef.current,\n          }));\n          document.body.style.cursor = 'col-resize';\n          document.body.style.userSelect = 'none';\n        }\n\n        const config = getColumnConfig(activeColumnRef.current);\n        const minWidth = config?.minWidth || DEFAULT_MIN_WIDTH;\n        const maxWidth = config?.maxWidth;\n\n        let newWidth = Math.max(minWidth, startWidthRef.current + diff);\n        if (maxWidth) {\n          newWidth = Math.min(maxWidth, newWidth);\n        }\n\n        setState((prev) => ({\n          ...prev,\n          widths: {\n            ...prev.widths,\n            [activeColumnRef.current!]: newWidth,\n          },\n        }));\n      },\n\n      onPointerUp: () => {\n        activeColumnRef.current = null;\n        hasDraggedRef.current = false;\n        setState((prev) => ({\n          ...prev,\n          isResizing: false,\n          resizingColumn: null,\n        }));\n\n        // Remove listeners using the same stable references\n        document.removeEventListener('pointermove', handlersRef.current!.onPointerMove);\n        document.removeEventListener('pointerup', handlersRef.current!.onPointerUp);\n        document.removeEventListener('pointercancel', handlersRef.current!.onPointerUp);\n\n        // Remove cursor override\n        document.body.style.cursor = '';\n        document.body.style.userSelect = '';\n      },\n    };\n  }\n\n  // Cleanup on unmount\n  useEffect(() => {\n    return () => {\n      if (handlersRef.current) {\n        document.removeEventListener('pointermove', handlersRef.current.onPointerMove);\n        document.removeEventListener('pointerup', handlersRef.current.onPointerUp);\n        document.removeEventListener('pointercancel', handlersRef.current.onPointerUp);\n      }\n      document.body.style.cursor = '';\n      document.body.style.userSelect = '';\n    };\n  }, []);\n\n  // Ref to access current widths without causing re-renders\n  const widthsRef = useRef(state.widths);\n  useEffect(() => {\n    widthsRef.current = state.widths;\n  }, [state.widths]);\n\n  // Start resize - uses stable handler refs\n  const startResize = useCallback(\n    (columnKey: string, clientX: number) => {\n      startXRef.current = clientX;\n      startWidthRef.current = widthsRef.current[columnKey] || DEFAULT_WIDTH;\n      activeColumnRef.current = columnKey;\n      hasDraggedRef.current = false;\n\n      // Add listeners using stable references - use pointer events consistently\n      document.addEventListener('pointermove', handlersRef.current!.onPointerMove);\n      document.addEventListener('pointerup', handlersRef.current!.onPointerUp);\n      document.addEventListener('pointercancel', handlersRef.current!.onPointerUp);\n    },\n    []\n  );\n\n  // Get resize handle props for a column\n  const getResizeHandleProps = useCallback(\n    (columnKey: string) => ({\n      onPointerDown: (e: React.PointerEvent) => {\n        e.preventDefault();\n        e.stopPropagation();\n        startResize(columnKey, e.clientX);\n      },\n      // Prevent other events from interfering\n      onMouseDown: (e: React.MouseEvent) => {\n        e.preventDefault();\n        e.stopPropagation();\n      },\n      draggable: false,\n      onDragStart: (e: React.DragEvent) => {\n        e.preventDefault();\n        e.stopPropagation();\n      },\n      className: 'resize-handle',\n      'data-resizing': state.resizingColumn === columnKey,\n    }),\n    [startResize, state.resizingColumn]\n  );\n\n  // Get column style with width\n  const getColumnStyle = useCallback(\n    (columnKey: string): React.CSSProperties => {\n      const currentWidth = state.widths[columnKey] || DEFAULT_WIDTH;\n      const config = getColumnConfig(columnKey);\n      const minWidth = config?.minWidth || DEFAULT_MIN_WIDTH;\n      const maxWidth = config?.maxWidth;\n      return {\n        width: currentWidth,\n        minWidth,\n        ...(maxWidth ? { maxWidth } : {}),\n        position: 'relative',\n      };\n    },\n    [state.widths, getColumnConfig]\n  );\n\n  // Calculate total table width from all columns\n  const totalWidth = columns.reduce((sum, col) => {\n    return sum + (state.widths[col.key] || col.defaultWidth || DEFAULT_WIDTH);\n  }, 0);\n\n  // Get table style\n  const getTableStyle = useCallback(\n    (): React.CSSProperties => ({\n      minWidth: totalWidth,\n    }),\n    [totalWidth]\n  );\n\n  // Reset all columns to default widths\n  const resetToDefaults = useCallback(() => {\n    setState((prev) => ({\n      ...prev,\n      widths: getDefaultWidths(),\n    }));\n  }, [getDefaultWidths]);\n\n  return {\n    widths: state.widths,\n    isResizing: state.isResizing,\n    totalWidth,\n    getResizeHandleProps,\n    getColumnStyle,\n    getTableStyle,\n    resetToDefaults,\n  };\n}\n","import { useState, useCallback, useEffect } from 'react';\n\nexport interface ColumnOrderConfig {\n  id: string;\n  label: string;\n  locked?: boolean; // Locked columns can't be moved\n}\n\ninterface UseColumnOrderOptions {\n  storageKey: string;\n  defaultOrder: string[];\n}\n\ninterface UseColumnOrderReturn {\n  columnOrder: string[];\n  moveColumn: (fromIndex: number, toIndex: number) => void;\n  moveColumnById: (columnId: string, direction: 'left' | 'right') => void;\n  resetOrder: () => void;\n  getOrderedColumns: <T extends { id: string }>(columns: T[]) => T[];\n}\n\n/**\n * Hook for managing column order with localStorage persistence\n */\nexport function useColumnOrder({\n  storageKey,\n  defaultOrder,\n}: UseColumnOrderOptions): UseColumnOrderReturn {\n  const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n    try {\n      const stored = localStorage.getItem(storageKey);\n      if (stored) {\n        const parsed = JSON.parse(stored);\n        const storedSet = new Set(parsed);\n        const defaultSet = new Set(defaultOrder);\n\n        // Remove old columns that aren't in default anymore\n        const validStored = parsed.filter((col: string) => defaultSet.has(col));\n\n        // Find missing columns and insert them at their default positions\n        const missingColumns = defaultOrder.filter(col => !storedSet.has(col));\n\n        if (missingColumns.length > 0) {\n          // Build new order by inserting missing columns at their default positions\n          const result = [...validStored];\n          for (const missing of missingColumns) {\n            const defaultIndex = defaultOrder.indexOf(missing);\n            // Find the best insertion point based on surrounding columns in default order\n            let insertAt = result.length;\n            for (let i = 0; i < result.length; i++) {\n              const currentDefaultIndex = defaultOrder.indexOf(result[i]);\n              if (currentDefaultIndex > defaultIndex) {\n                insertAt = i;\n                break;\n              }\n            }\n            result.splice(insertAt, 0, missing);\n          }\n          return result;\n        }\n\n        return validStored.length > 0 ? validStored : defaultOrder;\n      }\n    } catch (e) {\n      console.warn('Failed to load column order from localStorage:', e);\n    }\n    return defaultOrder;\n  });\n\n  // Persist to localStorage\n  useEffect(() => {\n    try {\n      localStorage.setItem(storageKey, JSON.stringify(columnOrder));\n    } catch (e) {\n      console.warn('Failed to save column order to localStorage:', e);\n    }\n  }, [storageKey, columnOrder]);\n\n  const moveColumn = useCallback((fromIndex: number, toIndex: number) => {\n    if (fromIndex === toIndex) return;\n\n    setColumnOrder(prev => {\n      const newOrder = [...prev];\n      const [removed] = newOrder.splice(fromIndex, 1);\n      if (removed !== undefined) {\n        newOrder.splice(toIndex, 0, removed);\n      }\n      return newOrder;\n    });\n  }, []);\n\n  const moveColumnById = useCallback((columnId: string, direction: 'left' | 'right') => {\n    setColumnOrder(prev => {\n      const currentIndex = prev.indexOf(columnId);\n      if (currentIndex === -1) return prev;\n\n      const newIndex = direction === 'left'\n        ? Math.max(0, currentIndex - 1)\n        : Math.min(prev.length - 1, currentIndex + 1);\n\n      if (currentIndex === newIndex) return prev;\n\n      const newOrder = [...prev];\n      const [removed] = newOrder.splice(currentIndex, 1);\n      if (removed !== undefined) {\n        newOrder.splice(newIndex, 0, removed);\n      }\n      return newOrder;\n    });\n  }, []);\n\n  const resetOrder = useCallback(() => {\n    setColumnOrder(defaultOrder);\n  }, [defaultOrder]);\n\n  const getOrderedColumns = useCallback(<T extends { id: string }>(columns: T[]): T[] => {\n    const columnMap = new Map(columns.map(col => [col.id, col]));\n    return columnOrder\n      .map(id => columnMap.get(id))\n      .filter((col): col is T => col !== undefined);\n  }, [columnOrder]);\n\n  return {\n    columnOrder,\n    moveColumn,\n    moveColumnById,\n    resetOrder,\n    getOrderedColumns,\n  };\n}\n\n/**\n * Drag and drop helpers for column reordering\n */\nexport interface DragState {\n  isDragging: boolean;\n  draggedId: string | null;\n  dropIndex: number | null; // Index where the column will be inserted\n}\n\nexport function useColumnDragDrop(\n  columnOrder: string[],\n  moveColumn: (from: number, to: number) => void,\n  lockedColumns: string[] = []\n) {\n  const [dragState, setDragState] = useState<DragState>({\n    isDragging: false,\n    draggedId: null,\n    dropIndex: null,\n  });\n\n  const handleDragStart = useCallback((columnId: string) => {\n    if (lockedColumns.includes(columnId)) return;\n    setDragState({\n      isDragging: true,\n      draggedId: columnId,\n      dropIndex: null,\n    });\n  }, [lockedColumns]);\n\n  const handleDragOver = useCallback((columnId: string, e: React.DragEvent) => {\n    if (lockedColumns.includes(columnId)) return;\n\n    const targetIndex = columnOrder.indexOf(columnId);\n    if (targetIndex === -1) return;\n\n    // Determine drop index based on mouse position relative to column center\n    const rect = e.currentTarget.getBoundingClientRect();\n    const midpoint = rect.left + rect.width / 2;\n    const dropIndex = e.clientX < midpoint ? targetIndex : targetIndex + 1;\n\n    setDragState(prev => ({\n      ...prev,\n      dropIndex,\n    }));\n  }, [lockedColumns, columnOrder]);\n\n  const handleDrop = useCallback(() => {\n    if (!dragState.draggedId || dragState.dropIndex === null) {\n      setDragState({ isDragging: false, draggedId: null, dropIndex: null });\n      return;\n    }\n\n    const fromIndex = columnOrder.indexOf(dragState.draggedId);\n    let toIndex = dragState.dropIndex;\n\n    // Adjust if moving from before the drop position\n    if (fromIndex < toIndex) {\n      toIndex = toIndex - 1;\n    }\n\n    if (fromIndex !== -1 && toIndex !== -1 && fromIndex !== toIndex) {\n      moveColumn(fromIndex, toIndex);\n    }\n\n    setDragState({ isDragging: false, draggedId: null, dropIndex: null });\n  }, [dragState.draggedId, dragState.dropIndex, columnOrder, moveColumn]);\n\n  const handleDragEnd = useCallback(() => {\n    setDragState({ isDragging: false, draggedId: null, dropIndex: null });\n  }, []);\n\n  const getDragHandleProps = useCallback((columnId: string) => ({\n    draggable: !lockedColumns.includes(columnId),\n    onDragStart: (e: React.DragEvent) => {\n      if (lockedColumns.includes(columnId)) {\n        e.preventDefault();\n        return;\n      }\n      e.dataTransfer.effectAllowed = 'move';\n      handleDragStart(columnId);\n    },\n    onDragOver: (e: React.DragEvent) => {\n      e.preventDefault();\n      e.dataTransfer.dropEffect = 'move';\n      handleDragOver(columnId, e);\n    },\n    onDrop: (e: React.DragEvent) => {\n      e.preventDefault();\n      handleDrop();\n    },\n    onDragEnd: handleDragEnd,\n  }), [lockedColumns, handleDragStart, handleDragOver, handleDrop, handleDragEnd]);\n\n  // Helper to check if drop indicator should show on the left of a column\n  const showDropIndicator = useCallback((columnId: string) => {\n    if (!dragState.isDragging || dragState.dropIndex === null) return false;\n    const columnIndex = columnOrder.indexOf(columnId);\n    return columnIndex === dragState.dropIndex;\n  }, [dragState.isDragging, dragState.dropIndex, columnOrder]);\n\n  return {\n    dragState,\n    getDragHandleProps,\n    showDropIndicator,\n  };\n}\n","import {\n  ChevronLeft,\n  ChevronRight,\n  ChevronsLeft,\n  ChevronsRight,\n} from 'lucide-react';\nimport { Button } from '../../components/base/button';\nimport {\n  Select,\n  SelectContent,\n  SelectItem,\n  SelectTrigger,\n  SelectValue,\n} from '../../components/base/select';\nimport { cn } from '../../src/utils/cn';\n\ninterface PaginationProps {\n  page: number;\n  pageSize: number;\n  totalPages: number;\n  totalItems: number;\n  startIndex: number;\n  endIndex: number;\n  canGoNext: boolean;\n  canGoPrev: boolean;\n  pageSizeOptions: number[];\n  onPageChange: (page: number) => void;\n  onPageSizeChange: (size: number) => void;\n  onNextPage: () => void;\n  onPrevPage: () => void;\n  onFirstPage: () => void;\n  onLastPage: () => void;\n  className?: string;\n}\n\nexport function Pagination({\n  page,\n  pageSize,\n  totalPages,\n  totalItems,\n  startIndex,\n  endIndex,\n  canGoNext,\n  canGoPrev,\n  pageSizeOptions,\n  onPageChange,\n  onPageSizeChange,\n  onNextPage,\n  onPrevPage,\n  onFirstPage,\n  onLastPage,\n  className,\n}: PaginationProps) {\n  // Generate page numbers to show\n  const getPageNumbers = () => {\n    const pages: (number | 'ellipsis')[] = [];\n    const showPages = 5; // Max pages to show\n    const halfShow = Math.floor(showPages / 2);\n\n    let startPage = Math.max(1, page - halfShow);\n    let endPage = Math.min(totalPages, page + halfShow);\n\n    // Adjust range if near edges\n    if (page <= halfShow) {\n      endPage = Math.min(totalPages, showPages);\n    }\n    if (page > totalPages - halfShow) {\n      startPage = Math.max(1, totalPages - showPages + 1);\n    }\n\n    // Add first page and ellipsis if needed\n    if (startPage > 1) {\n      pages.push(1);\n      if (startPage > 2) {\n        pages.push('ellipsis');\n      }\n    }\n\n    // Add middle pages\n    for (let i = startPage; i <= endPage; i++) {\n      if (i !== 1 && i !== totalPages) {\n        pages.push(i);\n      }\n    }\n\n    // Add ellipsis and last page if needed\n    if (endPage < totalPages) {\n      if (endPage < totalPages - 1) {\n        pages.push('ellipsis');\n      }\n      pages.push(totalPages);\n    }\n\n    return pages;\n  };\n\n  if (totalItems === 0) {\n    return null;\n  }\n\n  return (\n    <div\n      className={cn(\n        'flex flex-col sm:flex-row items-center justify-between gap-4 px-2 py-3',\n        className\n      )}\n    >\n      {/* Items info */}\n      <div className=\"text-sm text-muted-foreground\">\n        Showing {startIndex} to {endIndex} of {totalItems} items\n      </div>\n\n      {/* Controls */}\n      <div className=\"flex items-center gap-4\">\n        {/* Page size selector */}\n        <div className=\"flex items-center gap-2\">\n          <span className=\"text-sm text-muted-foreground\">Per page:</span>\n          <Select\n            value={String(pageSize)}\n            onValueChange={(v) => onPageSizeChange(Number(v))}\n          >\n            <SelectTrigger className=\"w-20 h-8\">\n              <SelectValue />\n            </SelectTrigger>\n            <SelectContent>\n              {pageSizeOptions.map((size) => (\n                <SelectItem key={size} value={String(size)}>\n                  {size}\n                </SelectItem>\n              ))}\n            </SelectContent>\n          </Select>\n        </div>\n\n        {/* Page navigation */}\n        <div className=\"flex items-center gap-1\">\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={onFirstPage}\n            disabled={!canGoPrev}\n            title=\"First page\"\n          >\n            <ChevronsLeft className=\"h-4 w-4\" />\n          </Button>\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={onPrevPage}\n            disabled={!canGoPrev}\n            title=\"Previous page\"\n          >\n            <ChevronLeft className=\"h-4 w-4\" />\n          </Button>\n\n          {/* Page numbers */}\n          <div className=\"flex items-center gap-1\">\n            {getPageNumbers().map((pageNum, idx) =>\n              pageNum === 'ellipsis' ? (\n                <span key={`ellipsis-${idx}`} className=\"px-2 text-muted-foreground\">\n                  ...\n                </span>\n              ) : (\n                <Button\n                  key={pageNum}\n                  variant={page === pageNum ? 'default' : 'outline'}\n                  size=\"icon\"\n                  className=\"h-8 w-8\"\n                  onClick={() => onPageChange(pageNum)}\n                >\n                  {pageNum}\n                </Button>\n              )\n            )}\n          </div>\n\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={onNextPage}\n            disabled={!canGoNext}\n            title=\"Next page\"\n          >\n            <ChevronRight className=\"h-4 w-4\" />\n          </Button>\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={onLastPage}\n            disabled={!canGoNext}\n            title=\"Last page\"\n          >\n            <ChevronsRight className=\"h-4 w-4\" />\n          </Button>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { useMemo, useCallback, useState, useEffect, useRef } from 'react';\nimport {\n  Table,\n  TableBody,\n  TableCell,\n  TableHead,\n  TableHeader,\n  TableRow,\n} from '../../components/base/table';\nimport { TooltipProvider } from '../../components/base/tooltip';\nimport { ChevronUp, ChevronDown, ArrowUpDown, Loader2, Check, Eye, EyeOff } from 'lucide-react';\nimport { cn } from '../../src/utils/cn';\nimport { useResizableColumns } from '../hooks/useResizableColumns';\nimport { useColumnVisibility } from '../hooks/useColumnVisibility';\nimport { useColumnOrder, useColumnDragDrop } from '../hooks/useColumnOrder';\nimport { usePagination } from '../hooks/usePagination';\nimport { Pagination } from './Pagination';\nimport type {\n  DataTableProps,\n  ColumnDef,\n  ColumnConfigCompat,\n  ColumnSizeConfig,\n} from './types';\n\n/**\n * DataTable - Generic data table with full feature set\n *\n * Features:\n * - Column resizing (drag handles)\n * - Column reordering (drag-drop)\n * - Column visibility toggle\n * - Row selection with checkboxes\n * - Sorting\n * - Pagination\n * - Sticky actions column\n * - Context menu support\n * - Header context menu for column visibility\n */\nexport function DataTable<T>({\n  data,\n  columns,\n  storageKey,\n  getRowId,\n  selectable = false,\n  selectedIds,\n  onSelectionChange,\n  onRowClick,\n  onRowContextMenu,\n  sortField,\n  sortOrder,\n  onSort,\n  actionsColumn,\n  actionsColumnWidth = 80,\n  pageSize = 25,\n  pagination: externalPagination,\n  hidePagination = false,\n  className,\n  rowClassName,\n  enableHeaderContextMenu = true,\n  lockedColumns = [],\n  defaultColumnOrder,\n  loading = false,\n  emptyState,\n}: DataTableProps<T>) {\n  // Build column configs for hooks\n  const columnSizeConfig = useMemo<ColumnSizeConfig[]>(() => {\n    const configs: ColumnSizeConfig[] = [];\n\n    if (selectable) {\n      configs.push({ key: 'select', defaultWidth: 40, minWidth: 40, maxWidth: 40 });\n    }\n\n    columns.forEach((col) => {\n      configs.push({\n        key: col.id,\n        defaultWidth: col.width?.default ?? 150,\n        minWidth: col.width?.min ?? 80,\n        maxWidth: col.width?.max,\n      });\n    });\n\n    if (actionsColumn) {\n      configs.push({ key: 'actions', defaultWidth: actionsColumnWidth, minWidth: 48, maxWidth: actionsColumnWidth });\n    }\n\n    return configs;\n  }, [columns, selectable, actionsColumn, actionsColumnWidth]);\n\n  const columnVisibilityConfig = useMemo<ColumnConfigCompat[]>(() => {\n    return columns.map((col) => ({\n      id: col.id,\n      label: typeof col.header === 'string' ? col.header : col.id,\n      defaultVisible: col.visibility?.default ?? true,\n      locked: col.visibility?.locked,\n    }));\n  }, [columns]);\n\n  const defaultOrder = useMemo(() => {\n    if (defaultColumnOrder) return defaultColumnOrder;\n    const order: string[] = [];\n    if (selectable) order.push('select');\n    columns.forEach((col) => order.push(col.id));\n    if (actionsColumn) order.push('actions');\n    return order;\n  }, [defaultColumnOrder, columns, selectable, actionsColumn]);\n\n  // Initialize hooks\n  const {\n    widths: columnWidths,\n    getResizeHandleProps,\n    getColumnStyle,\n    getTableStyle,\n  } = useResizableColumns({\n    tableId: storageKey,\n    columns: columnSizeConfig,\n  });\n\n  const columnVisibility = useColumnVisibility({\n    columns: columnVisibilityConfig,\n    storageKey,\n  });\n\n  const { columnOrder, moveColumn } = useColumnOrder({\n    storageKey: `${storageKey}-order`,\n    defaultOrder,\n  });\n\n  const { dragState, getDragHandleProps, showDropIndicator } = useColumnDragDrop(\n    columnOrder,\n    moveColumn,\n    [...lockedColumns, 'select', 'actions']\n  );\n\n  // Use external pagination if provided, otherwise use internal\n  const internalPagination = usePagination({\n    data,\n    pageSize,\n    storageKey,\n  });\n\n  const pagination = externalPagination || internalPagination;\n\n  // Warn in development when data is silently ignored due to external pagination\n  useEffect(() => {\n    if (process.env.NODE_ENV !== 'production' && data.length > 0 && externalPagination) {\n      console.warn(\n        '[DataTable] The `data` prop is ignored when `pagination` is provided. ' +\n        'Pass your rows via `pagination.paginatedData` instead.'\n      );\n    }\n  }, [data, externalPagination]);\n\n  // Header context menu state\n  const [headerContextMenu, setHeaderContextMenu] = useState<{ x: number; y: number } | null>(null);\n\n  const handleHeaderContextMenu = useCallback((e: React.MouseEvent) => {\n    if (!enableHeaderContextMenu) return;\n    e.preventDefault();\n    setHeaderContextMenu({ x: e.clientX, y: e.clientY });\n  }, [enableHeaderContextMenu]);\n\n  // Close header context menu on click outside\n  useEffect(() => {\n    if (!headerContextMenu) return;\n    const close = () => setHeaderContextMenu(null);\n    window.addEventListener('click', close);\n    return () => {\n      window.removeEventListener('click', close);\n    };\n  }, [headerContextMenu]);\n\n  // Selection helpers\n  const isAllSelected = useMemo(() => {\n    if (!selectable || !selectedIds || pagination.paginatedData.length === 0) return false;\n    return pagination.paginatedData.every((item) => selectedIds.has(getRowId(item)));\n  }, [selectable, selectedIds, pagination.paginatedData, getRowId]);\n\n  const isSomeSelected = useMemo(() => {\n    if (!selectable || !selectedIds) return false;\n    const selected = pagination.paginatedData.filter((item) => selectedIds.has(getRowId(item)));\n    return selected.length > 0 && selected.length < pagination.paginatedData.length;\n  }, [selectable, selectedIds, pagination.paginatedData, getRowId]);\n\n  const toggleSelection = useCallback((itemId: string) => {\n    if (!onSelectionChange || !selectedIds) return;\n    const next = new Set(selectedIds);\n    if (next.has(itemId)) {\n      next.delete(itemId);\n    } else {\n      next.add(itemId);\n    }\n    onSelectionChange(next);\n  }, [selectedIds, onSelectionChange]);\n\n  const selectAll = useCallback(() => {\n    if (!onSelectionChange) return;\n    const ids = new Set(pagination.paginatedData.map(getRowId));\n    onSelectionChange(ids);\n  }, [pagination.paginatedData, getRowId, onSelectionChange]);\n\n  const clearSelection = useCallback(() => {\n    if (!onSelectionChange) return;\n    onSelectionChange(new Set());\n  }, [onSelectionChange]);\n\n  // Get sort icon\n  const getSortIcon = useCallback((field: string) => {\n    if (sortField !== field) {\n      return <ArrowUpDown className=\"h-3.5 w-3.5 text-muted-foreground\" />;\n    }\n    return sortOrder === 'asc'\n      ? <ChevronUp className=\"h-3.5 w-3.5\" />\n      : <ChevronDown className=\"h-3.5 w-3.5\" />;\n  }, [sortField, sortOrder]);\n\n  // Find column def by id\n  const getColumnDef = useCallback((id: string): ColumnDef<T> | undefined => {\n    return columns.find((col) => col.id === id);\n  }, [columns]);\n\n  // Clamped pixel width for a single column (current resize state or default).\n  const getColumnWidthPx = useCallback((colKey: string): number => {\n    const config = columnSizeConfig.find((c) => c.key === colKey);\n    const current = columnWidths[colKey] ?? config?.defaultWidth ?? 150;\n    const minWidth = config?.minWidth ?? 80;\n    const maxWidth = config?.maxWidth;\n    return Math.max(minWidth, maxWidth ? Math.min(current, maxWidth) : current);\n  }, [columnSizeConfig, columnWidths]);\n\n  // Exact table width = sum of the widths of the columns that actually render.\n  // The resize hook's getTableStyle() only sets a min-width from ALL columns\n  // (including hidden ones); under table-layout: fixed that inflated min-width\n  // makes the browser stretch every visible column past its set width, so\n  // resizing appeared to do nothing. Summing only the visible columns and\n  // setting it as the table's explicit width keeps each column at its true\n  // width and lets the scroll container handle overflow.\n  const tableWidthPx = useMemo(() => {\n    let total = 0;\n    for (const colKey of columnOrder) {\n      if (colKey === 'select') {\n        if (selectable) total += getColumnWidthPx('select');\n        continue;\n      }\n      if (colKey === 'actions') {\n        if (actionsColumn) total += actionsColumnWidth;\n        continue;\n      }\n      if (!getColumnDef(colKey) || !columnVisibility.isColumnVisible(colKey)) continue;\n      total += getColumnWidthPx(colKey);\n    }\n    return total;\n  }, [columnOrder, selectable, actionsColumn, actionsColumnWidth, columnVisibility, getColumnDef, getColumnWidthPx]);\n\n  // The header cell is draggable (column reorder) AND hosts the resize handle.\n  // Pressing the handle would otherwise start a native column drag, which\n  // suppresses the pointermove events the resize needs. Track an active resize\n  // in a ref (set synchronously on pointerdown, before dragstart fires) and use\n  // it to veto the drag so the two gestures no longer fight.\n  const resizeActiveRef = useRef(false);\n  const beginResize = useCallback(() => {\n    resizeActiveRef.current = true;\n    const clear = () => {\n      resizeActiveRef.current = false;\n      window.removeEventListener('pointerup', clear);\n      window.removeEventListener('pointercancel', clear);\n    };\n    window.addEventListener('pointerup', clear);\n    window.addEventListener('pointercancel', clear);\n  }, []);\n\n  const getHeaderCellDragProps = useCallback((colKey: string) => {\n    const dragProps = getDragHandleProps(colKey);\n    return {\n      ...dragProps,\n      onDragStart: (event: React.DragEvent) => {\n        if (resizeActiveRef.current) {\n          event.preventDefault();\n          return;\n        }\n        dragProps.onDragStart?.(event);\n      },\n    };\n  }, [getDragHandleProps]);\n\n  const getResizeProps = useCallback((colKey: string) => {\n    const props = getResizeHandleProps(colKey);\n    return {\n      ...props,\n      onPointerDown: (event: React.PointerEvent) => {\n        beginResize();\n        props.onPointerDown?.(event);\n      },\n    };\n  }, [getResizeHandleProps, beginResize]);\n\n  // Render header cell content\n  const renderHeaderContent = useCallback((col: ColumnDef<T>) => {\n    const headerProps = {\n      columnId: col.id,\n      isSorted: sortField === col.sortKey,\n      sortDirection: sortField === col.sortKey ? sortOrder : undefined,\n    };\n\n    if (typeof col.header === 'function') {\n      return col.header(headerProps);\n    }\n\n    if (col.sortKey && onSort) {\n      return (\n        <button\n          onClick={() => onSort(col.sortKey!)}\n          className={cn(\n            'flex items-center gap-1 hover:text-foreground transition-colors',\n            sortField === col.sortKey && 'text-foreground font-medium'\n          )}\n        >\n          {col.header}\n          {getSortIcon(col.sortKey)}\n        </button>\n      );\n    }\n\n    return col.header;\n  }, [sortField, sortOrder, onSort, getSortIcon]);\n\n  return (\n    <TooltipProvider>\n      <>\n        {/* Table with scroll container and border - supports both horizontal and vertical scroll with sticky header */}\n        <div className=\"overflow-auto border rounded-lg h-full\">\n          <Table\n            style={{ ...getTableStyle(), width: '100%', minWidth: tableWidthPx }}\n            className={cn('resizable-table sticky-actions-table', className)}\n          >\n          <TableHeader className=\"sticky top-0 z-20 bg-muted\">\n            <TableRow onContextMenu={handleHeaderContextMenu} className=\"border-t-0\">\n              {columnOrder.map((colKey) => {\n                // Select column (sticky on left)\n                if (colKey === 'select' && selectable) {\n                  return (\n                    <TableHead\n                      key=\"select\"\n                      className=\"sticky-select-header w-10 sticky left-0 z-20 bg-muted relative after:absolute after:right-0 after:top-0 after:bottom-0 after:w-px after:bg-border\"\n                    >\n                      <input\n                        type=\"checkbox\"\n                        checked={isAllSelected}\n                        ref={(el) => {\n                          if (el) el.indeterminate = isSomeSelected;\n                        }}\n                        onChange={(e) => e.target.checked ? selectAll() : clearSelection()}\n                        className=\"h-4 w-4 rounded border-border text-primary focus:ring-primary cursor-pointer\"\n                        title={isAllSelected ? 'Deselect all' : 'Select all visible'}\n                      />\n                    </TableHead>\n                  );\n                }\n\n                // Data columns\n                const col = getColumnDef(colKey);\n                if (!col) return null;\n                if (!columnVisibility.isColumnVisible(colKey)) return null;\n\n                return (\n                  <TableHead\n                    key={colKey}\n                    style={getColumnStyle(colKey)}\n                    {...getHeaderCellDragProps(colKey)}\n                    className={cn(\n                      'cursor-grab relative',\n                      dragState.draggedId === colKey && 'column-dragging opacity-50',\n                      showDropIndicator(colKey) && 'drop-indicator'\n                    )}\n                  >\n                    {renderHeaderContent(col)}\n                    <div {...getResizeProps(colKey)} />\n                  </TableHead>\n                );\n              })}\n\n              {/* Flexible spacer: absorbs leftover width (no fixed width) so the\n                  data columns keep their exact resized widths while the table\n                  still fills its container, and the sticky actions column stays\n                  pinned to the right edge instead of leaving a gap. */}\n              <TableHead aria-hidden className=\"data-table-spacer bg-muted p-0\" />\n\n              {/* Actions column header */}\n              {actionsColumn && (\n                <TableHead\n                  key=\"actions\"\n                  className=\"sticky right-0 z-20 bg-muted text-center relative before:absolute before:left-0 before:top-0 before:bottom-0 before:w-px before:bg-border\"\n                  style={{ width: actionsColumnWidth, minWidth: actionsColumnWidth, maxWidth: actionsColumnWidth }}\n                >\n                  Actions\n                </TableHead>\n              )}\n            </TableRow>\n          </TableHeader>\n\n          <TableBody>\n            {loading ? (\n              <TableRow>\n                <TableCell\n                  colSpan={columnOrder.length + (actionsColumn ? 1 : 0) + 1}\n                  className=\"!p-0 h-32\"\n                >\n                  <div className=\"sticky left-0 w-screen max-w-full h-full bg-background flex justify-center items-center\">\n                    <div className=\"flex items-center gap-2 text-muted-foreground\">\n                      <Loader2 className=\"h-5 w-5 animate-spin\" />\n                      Loading...\n                    </div>\n                  </div>\n                </TableCell>\n              </TableRow>\n            ) : pagination.paginatedData.length === 0 ? null : (\n              pagination.paginatedData.map((item) => {\n                const rowId = getRowId(item);\n                const isSelected = selectedIds?.has(rowId) ?? false;\n\n                return (\n                  <TableRow\n                    key={rowId}\n                    className={cn(\n                      'group cursor-pointer bg-background hover:bg-muted transition-none',\n                      isSelected && 'bg-primary/5',\n                      rowClassName?.(item)\n                    )}\n                    onClick={() => onRowClick?.(item)}\n                    onContextMenu={(e) => {\n                      if (onRowContextMenu) {\n                        e.preventDefault();\n                        onRowContextMenu(item, { x: e.clientX, y: e.clientY });\n                      }\n                    }}\n                  >\n                    {columnOrder.map((colKey) => {\n                      // Select cell (sticky on left)\n                      if (colKey === 'select' && selectable) {\n                        return (\n                          <TableCell\n                            key=\"select\"\n                            className={cn(\n                              'sticky-select-cell w-10 sticky left-0 z-10 relative after:absolute after:right-0 after:top-0 after:bottom-0 after:w-px after:bg-border',\n                              'bg-background group-hover:bg-muted',\n                              isSelected && 'bg-primary/5 group-hover:bg-primary/10'\n                            )}\n                            onClick={(e) => e.stopPropagation()}\n                          >\n                            <input\n                              type=\"checkbox\"\n                              checked={isSelected}\n                              onChange={() => toggleSelection(rowId)}\n                              className=\"h-4 w-4 rounded border-border text-primary focus:ring-primary cursor-pointer\"\n                            />\n                          </TableCell>\n                        );\n                      }\n\n                      // Data cells\n                      const col = getColumnDef(colKey);\n                      if (!col) return null;\n                      if (!columnVisibility.isColumnVisible(colKey)) return null;\n\n                      const cellProps = {\n                        columnId: colKey,\n                        isDragging: dragState.draggedId === colKey,\n                      };\n\n                      return (\n                        <TableCell\n                          key={colKey}\n                          style={getColumnStyle(colKey)}\n                          className={cn(\n                            col.className,\n                            dragState.draggedId === colKey && 'column-dragging'\n                          )}\n                        >\n                          {col.cell(item, cellProps)}\n                        </TableCell>\n                      );\n                    })}\n\n                    {/* Flexible spacer cell (matches the header spacer). */}\n                    <TableCell aria-hidden className=\"data-table-spacer p-0\" />\n\n                    {/* Actions cell */}\n                    {actionsColumn && (\n                      <TableCell\n                        key=\"actions\"\n                        className={cn(\n                          'sticky right-0 z-10 text-center relative before:absolute before:left-0 before:top-0 before:bottom-0 before:w-px before:bg-border',\n                          'bg-background group-hover:bg-muted',\n                          isSelected && 'bg-primary/5 group-hover:bg-primary/10'\n                        )}\n                        style={{ width: actionsColumnWidth, minWidth: actionsColumnWidth, maxWidth: actionsColumnWidth }}\n                        onClick={(e) => e.stopPropagation()}\n                      >\n                        {actionsColumn(item)}\n                      </TableCell>\n                    )}\n                  </TableRow>\n                );\n              })\n            )}\n          </TableBody>\n          </Table>\n        </div>\n\n        {/* Empty state - rendered outside table for proper positioning */}\n        {!loading && pagination.paginatedData.length === 0 && (\n          <div className=\"empty-state-container flex-1 flex items-center justify-center bg-background\">\n            {emptyState || <span className=\"block text-center text-muted-foreground py-8\">No data</span>}\n          </div>\n        )}\n\n        {/* Pagination (hidden when using external pagination controls) */}\n        {!hidePagination && !loading && pagination.totalPages > 1 && (\n          <Pagination\n            page={pagination.page}\n            pageSize={pagination.pageSize}\n            totalItems={pagination.totalItems}\n            totalPages={pagination.totalPages}\n            startIndex={pagination.startIndex}\n            endIndex={pagination.endIndex}\n            canGoPrev={pagination.canGoPrev}\n            canGoNext={pagination.canGoNext}\n            onPageChange={pagination.setPage}\n            onPageSizeChange={pagination.setPageSize}\n            onNextPage={pagination.nextPage}\n            onPrevPage={pagination.prevPage}\n            onFirstPage={'firstPage' in pagination ? (pagination as { firstPage: () => void }).firstPage : () => pagination.setPage(1)}\n            onLastPage={'lastPage' in pagination ? (pagination as { lastPage: () => void }).lastPage : () => pagination.setPage(pagination.totalPages)}\n            pageSizeOptions={pagination.pageSizeOptions}\n          />\n        )}\n\n        {/* Header Context Menu for Column Visibility */}\n        {headerContextMenu && (\n          <div\n            className=\"fixed z-50 min-w-[200px] overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95\"\n            style={{\n              top: headerContextMenu.y,\n              left: headerContextMenu.x,\n              maxHeight: `calc(100vh - ${headerContextMenu.y}px - 20px)`,\n            }}\n            onClick={(e) => e.stopPropagation()}\n          >\n            <div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">\n              Toggle columns\n            </div>\n            <div className=\"h-px bg-border my-1\" />\n            {columnVisibility.columns.map(column => {\n              const visible = columnVisibility.isColumnVisible(column.id);\n              const isLocked = column.locked === true;\n              return (\n                <button\n                  key={column.id}\n                  onClick={() => !isLocked && columnVisibility.toggleColumn(column.id)}\n                  disabled={isLocked}\n                  className={cn(\n                    'flex items-center gap-2 w-full px-2 py-1.5 text-sm rounded-sm hover:bg-accent',\n                    isLocked && 'opacity-50 cursor-not-allowed'\n                  )}\n                >\n                  <div className=\"w-4 h-4 flex items-center justify-center\">\n                    {visible && <Check className=\"h-3.5 w-3.5 text-primary\" />}\n                  </div>\n                  <span className=\"flex-1 text-left\">{column.label}</span>\n                  {isLocked && <span className=\"text-xs text-muted-foreground\">Required</span>}\n                </button>\n              );\n            })}\n            <div className=\"h-px bg-border my-1\" />\n            <button\n              onClick={() => columnVisibility.showAllColumns()}\n              className=\"flex items-center gap-2 w-full px-2 py-1.5 text-sm rounded-sm hover:bg-accent\"\n            >\n              <Eye className=\"h-4 w-4\" />\n              Show All\n            </button>\n            <button\n              onClick={() => columnVisibility.hideAllColumns()}\n              className=\"flex items-center gap-2 w-full px-2 py-1.5 text-sm rounded-sm hover:bg-accent\"\n            >\n              <EyeOff className=\"h-4 w-4\" />\n              Hide Optional\n            </button>\n          </div>\n        )}\n      </>\n    </TooltipProvider>\n  );\n}\n","/**\n * PaginationControls - Compact inline pagination for table headers\n *\n * A condensed version of pagination controls designed to sit alongside\n * search/filter controls in a table header bar.\n */\n\nimport {\n  ChevronLeft,\n  ChevronRight,\n} from 'lucide-react';\nimport { Button } from '../../components/base/button';\nimport {\n  Select,\n  SelectContent,\n  SelectItem,\n  SelectTrigger,\n  SelectValue,\n} from '../../components/base/select';\nimport { cn } from '../../src/utils/cn';\n\nexport interface PaginationControlsProps {\n  page: number;\n  pageSize: number;\n  totalPages: number;\n  totalItems: number;\n  startIndex: number;\n  endIndex: number;\n  canGoNext: boolean;\n  canGoPrev: boolean;\n  pageSizeOptions: number[];\n  setPage: (page: number) => void;\n  setPageSize: (size: number) => void;\n  nextPage: () => void;\n  prevPage: () => void;\n  className?: string;\n}\n\nexport function PaginationControls({\n  page,\n  pageSize,\n  totalPages,\n  totalItems,\n  startIndex,\n  endIndex,\n  canGoNext,\n  canGoPrev,\n  pageSizeOptions,\n  setPage: _setPage,\n  setPageSize,\n  nextPage,\n  prevPage,\n  className,\n}: PaginationControlsProps) {\n  // Note: setPage is included for API compatibility with usePagination but not used\n  // as this component only provides prev/next navigation\n  void _setPage;\n  if (totalItems === 0) {\n    return null;\n  }\n\n  return (\n    <div className={cn('flex items-center gap-3 text-sm', className)}>\n      {/* Page size selector - hidden on small screens */}\n      <div className=\"hidden md:flex items-center gap-1.5\">\n        <span className=\"text-muted-foreground hidden lg:inline\">Rows:</span>\n        <Select\n          value={String(pageSize)}\n          onValueChange={(v) => setPageSize(Number(v))}\n        >\n          <SelectTrigger className=\"w-16 h-8 text-xs\">\n            <SelectValue />\n          </SelectTrigger>\n          <SelectContent>\n            {pageSizeOptions.map((size) => (\n              <SelectItem key={size} value={String(size)}>\n                {size}\n              </SelectItem>\n            ))}\n          </SelectContent>\n        </Select>\n      </div>\n\n      {/* Page navigation - always visible when there are multiple pages */}\n      {totalPages > 1 && (\n        <div className=\"flex items-center gap-1\">\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={prevPage}\n            disabled={!canGoPrev}\n            title=\"Previous page\"\n          >\n            <ChevronLeft className=\"h-4 w-4\" />\n          </Button>\n\n          {/* Page indicator - hidden on very small screens */}\n          <span className=\"hidden sm:inline px-2 text-muted-foreground tabular-nums min-w-[60px] text-center\">\n            {page} / {totalPages}\n          </span>\n\n          <Button\n            variant=\"outline\"\n            size=\"icon\"\n            className=\"h-8 w-8\"\n            onClick={nextPage}\n            disabled={!canGoNext}\n            title=\"Next page\"\n          >\n            <ChevronRight className=\"h-4 w-4\" />\n          </Button>\n        </div>\n      )}\n\n      {/* Items info - hidden on smaller screens */}\n      <span className=\"text-muted-foreground whitespace-nowrap hidden lg:inline\">\n        Showing {startIndex}–{endIndex} of {totalItems}\n      </span>\n    </div>\n  );\n}\n","/**\n * DataTablePage - Full-height data table layout with integrated header\n *\n * This component provides a desktop-app style layout where:\n * - The header contains search, filters, action buttons, AND pagination controls\n * - The data table fills the available vertical space between header and footer\n * - Pagination controls appear inline in the header (right side)\n *\n * Usage:\n * ```tsx\n * <DataTablePage\n *   title=\"Issues\"\n *   description=\"Review and manage detected code issues\"\n *   search={searchTerm}\n *   onSearchChange={setSearchTerm}\n *   searchPlaceholder=\"Search issues...\"\n *   filters={filterOptions}\n *   activeFilterCount={countActiveFilters}\n *   onClearFilters={clearFilters}\n *   pagination={pagination}\n *   actions={<>\n *     <Button>Refresh</Button>\n *     <Button>Export</Button>\n *   </>}\n * >\n *   <DataTable ... hidePagination />\n * </DataTablePage>\n * ```\n */\n\nimport React from 'react';\nimport { Search, Filter, X } from 'lucide-react';\nimport { Input } from '../../components/base/input';\nimport { Button } from '../../components/base/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../components/base/popover';\nimport { cn } from '../../src/utils/cn';\nimport { PaginationControls, type PaginationControlsProps } from './PaginationControls';\n\nexport interface FilterOption {\n  id: string;\n  label: string;\n  render: () => React.ReactNode;\n}\n\nexport interface DataTablePageProps {\n  /** Page title */\n  title: string;\n  /** Page description */\n  description?: string;\n  /** Search term */\n  search?: string;\n  /** Search change handler */\n  onSearchChange?: (value: string) => void;\n  /** Search placeholder text */\n  searchPlaceholder?: string;\n  /** Filter options for popover */\n  filters?: FilterOption[];\n  /** Number of active filters */\n  activeFilterCount?: number;\n  /** Clear all filters handler */\n  onClearFilters?: () => void;\n  /** Pagination props from usePagination hook */\n  pagination?: PaginationControlsProps;\n  /** Extra content to render next to the title (e.g. HelpTooltip) */\n  titleExtra?: React.ReactNode;\n  /** Action buttons to show in the header */\n  actions?: React.ReactNode;\n  /** Content before the table (e.g., BatchActionsBar) */\n  beforeTable?: React.ReactNode;\n  /** The DataTable component */\n  children: React.ReactNode;\n  /** Additional class for the container */\n  className?: string;\n  /** Whether to show a loading state */\n  loading?: boolean;\n  /** Loading component to show */\n  loadingComponent?: React.ReactNode;\n}\n\nexport function DataTablePage({\n  title,\n  description,\n  titleExtra,\n  search,\n  onSearchChange,\n  searchPlaceholder = 'Search...',\n  filters,\n  activeFilterCount = 0,\n  onClearFilters,\n  pagination,\n  actions,\n  beforeTable,\n  children,\n  className,\n  loading,\n  loadingComponent,\n}: DataTablePageProps) {\n  // Always show pagination controls when pagination is provided (for row count selector)\n  const showPagination = pagination && pagination.totalItems > 0;\n\n  return (\n    <div className={cn('flex flex-col h-full', className)}>\n      {/* Page Header - has horizontal padding */}\n      <div className=\"data-table-page-header flex-shrink-0 space-y-4 pb-4\">\n        {/* Title */}\n        <div>\n          <div className=\"group flex items-center gap-2\">\n            <h1 className=\"text-3xl font-bold\">{title}</h1>\n            {titleExtra}\n          </div>\n          {description && (\n            <p className=\"text-muted-foreground\">{description}</p>\n          )}\n        </div>\n\n        {/* Controls Row: Search | Filters | Pagination | Spacer | Actions */}\n        <div className=\"flex items-center gap-3 flex-wrap\">\n          {/* Search Input - responsive width */}\n          {onSearchChange !== undefined && (\n            <div className=\"relative w-full sm:w-auto sm:min-w-[200px] sm:max-w-xs\">\n              <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none z-10\" />\n              <Input\n                placeholder={searchPlaceholder}\n                value={search || ''}\n                onChange={(e) => onSearchChange(e.target.value)}\n                className=\"pl-9 h-9\"\n              />\n              {search && (\n                <button\n                  type=\"button\"\n                  onClick={() => onSearchChange('')}\n                  className=\"absolute right-2 top-1/2 transform -translate-y-1/2 p-1 rounded-sm hover:bg-muted\"\n                >\n                  <X className=\"h-3 w-3 text-muted-foreground\" />\n                </button>\n              )}\n            </div>\n          )}\n\n          {/* Filters Popover */}\n          {filters && filters.length > 0 && (\n            <Popover>\n              <PopoverTrigger asChild>\n                <Button variant=\"outline\" size=\"sm\" className=\"gap-2 h-9\">\n                  <Filter className=\"h-4 w-4\" />\n                  <span className=\"hidden sm:inline\">Filters</span>\n                  {activeFilterCount > 0 && (\n                    <span className=\"rounded-full bg-primary text-primary-foreground px-2 py-0.5 text-xs font-medium\">\n                      {activeFilterCount}\n                    </span>\n                  )}\n                </Button>\n              </PopoverTrigger>\n              <PopoverContent\n                className=\"w-80 overflow-y-auto\"\n                align=\"start\"\n                collisionPadding={16}\n                style={{ maxHeight: 'var(--radix-popover-content-available-height)' }}\n              >\n                <div className=\"space-y-4\">\n                  <div className=\"flex items-center justify-between\">\n                    <h4 className=\"font-medium text-sm\">Filters</h4>\n                    {activeFilterCount > 0 && onClearFilters && (\n                      <Button\n                        variant=\"ghost\"\n                        size=\"sm\"\n                        onClick={onClearFilters}\n                        className=\"h-auto p-0 text-xs text-destructive hover:text-destructive\"\n                      >\n                        Clear all\n                      </Button>\n                    )}\n                  </div>\n\n                  <div className=\"space-y-3\">\n                    {filters.map((filter) => (\n                      <div key={filter.id} className=\"space-y-1.5\">\n                        <label className=\"text-xs font-medium text-muted-foreground\">\n                          {filter.label}\n                        </label>\n                        {filter.render()}\n                      </div>\n                    ))}\n                  </div>\n                </div>\n              </PopoverContent>\n            </Popover>\n          )}\n\n          {/* Clear filters button (visible when filters are active) */}\n          {activeFilterCount > 0 && onClearFilters && (\n            <Button\n              variant=\"ghost\"\n              size=\"sm\"\n              onClick={onClearFilters}\n              className=\"h-9 gap-1.5 text-muted-foreground hover:text-foreground\"\n              title=\"Clear filters\"\n            >\n              <X className=\"h-4 w-4\" />\n              <span className=\"hidden sm:inline\">Clear</span>\n            </Button>\n          )}\n\n          {/* Pagination Controls (after filters) */}\n          {showPagination && (\n            <PaginationControls {...pagination} />\n          )}\n\n          {/* Spacer */}\n          <div className=\"flex-1\" />\n\n          {/* Action buttons (right side) - never wrap */}\n          {actions && (\n            <div className=\"flex items-center gap-2 flex-shrink-0\">\n              {actions}\n            </div>\n          )}\n        </div>\n      </div>\n\n      {/* Before Table Content (e.g., BatchActionsBar) - with padding */}\n      {beforeTable && (\n        <div className=\"px-6 pb-2\">\n          {beforeTable}\n        </div>\n      )}\n\n      {/* Table Container - edge to edge, scrolls both directions */}\n      <div className=\"relative flex-1 min-h-0\">\n        <div className=\"data-table-scroll-container h-full\">\n          {loading ? (\n            loadingComponent || (\n              <div className=\"flex items-center justify-center h-full\">\n                <div className=\"text-muted-foreground\">Loading...</div>\n              </div>\n            )\n          ) : (\n            children\n          )}\n        </div>\n      </div>\n    </div>\n  );\n}\n","import { type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { Card } from '../../components/base/card';\nimport { Button } from '../../components/base/button';\nimport { cn } from '../../src/utils/cn';\n\nexport interface BatchActionsBarProps {\n  /** Number of selected items */\n  selectedCount: number;\n  /** Callback to clear selection */\n  onClear: () => void;\n  /** Action buttons to display on the right side */\n  children: ReactNode;\n  /** Label for the selected items (default: \"item\"/\"items\") */\n  itemLabel?: string;\n  /** Additional CSS classes */\n  className?: string;\n}\n\n/**\n * A horizontal bar that appears when items are selected,\n * showing the count and providing batch action buttons.\n */\nexport function BatchActionsBar({\n  selectedCount,\n  onClear,\n  children,\n  itemLabel,\n  className,\n}: BatchActionsBarProps) {\n  if (selectedCount === 0) return null;\n\n  const label = itemLabel ?? (selectedCount === 1 ? 'item' : 'items');\n\n  return (\n    <Card className={cn(\"p-3 bg-primary/5 border-primary/20\", className)}>\n      <div className=\"flex items-center justify-between\">\n        <div className=\"flex items-center gap-3\">\n          <span className=\"font-medium text-sm\" role=\"status\" aria-live=\"polite\">\n            {selectedCount} {label} selected\n          </span>\n          <Button variant=\"ghost\" size=\"sm\" onClick={onClear} aria-label=\"Clear selection\">\n            <X className=\"h-4 w-4 mr-1\" aria-hidden=\"true\" />\n            Clear\n          </Button>\n        </div>\n        <div className=\"flex items-center gap-2\" role=\"group\" aria-label=\"Batch actions\">\n          {children}\n        </div>\n      </div>\n    </Card>\n  );\n}\n","import { Columns3, Check, Eye, EyeOff } from 'lucide-react';\nimport { Button } from '../../components/base/button';\nimport {\n  DropdownMenu,\n  DropdownMenuContent,\n  DropdownMenuItem,\n  DropdownMenuLabel,\n  DropdownMenuSeparator,\n  DropdownMenuTrigger,\n} from '../../components/base/dropdown-menu';\nimport { cn } from '../../src/utils/cn';\nimport type { ColumnConfig } from '../hooks/useColumnVisibility';\n\ninterface ColumnVisibilityProps {\n  columns: ColumnConfig[];\n  isColumnVisible: (columnId: string) => boolean;\n  toggleColumn: (columnId: string) => void;\n  showAllColumns: () => void;\n  hideAllColumns: () => void;\n}\n\nexport function ColumnVisibility({\n  columns,\n  isColumnVisible,\n  toggleColumn,\n  showAllColumns,\n  hideAllColumns,\n}: ColumnVisibilityProps) {\n  const visibleCount = columns.filter(c => isColumnVisible(c.id)).length;\n  const toggleableColumns = columns.filter(c => !c.locked);\n\n  return (\n    <DropdownMenu>\n      <DropdownMenuTrigger asChild>\n        <Button variant=\"outline\" size=\"sm\" className=\"gap-2\">\n          <Columns3 className=\"h-4 w-4\" />\n          Columns\n          <span className=\"text-muted-foreground text-xs\">\n            ({visibleCount}/{columns.length})\n          </span>\n        </Button>\n      </DropdownMenuTrigger>\n      <DropdownMenuContent align=\"end\" className=\"w-48\">\n        <DropdownMenuLabel className=\"font-normal text-xs text-muted-foreground\">\n          Toggle columns\n        </DropdownMenuLabel>\n        <DropdownMenuSeparator />\n\n        {columns.map(column => {\n          const visible = isColumnVisible(column.id);\n          const isLocked = column.locked === true;\n\n          return (\n            <DropdownMenuItem\n              key={column.id}\n              onClick={(e) => {\n                e.preventDefault();\n                if (!isLocked) {\n                  toggleColumn(column.id);\n                }\n              }}\n              className={cn(\n                'gap-2 cursor-pointer',\n                isLocked && 'opacity-50 cursor-not-allowed'\n              )}\n              disabled={isLocked}\n            >\n              <div className=\"w-4 h-4 flex items-center justify-center\">\n                {visible ? (\n                  <Check className=\"h-3.5 w-3.5 text-primary\" />\n                ) : (\n                  <div className=\"h-3.5 w-3.5\" />\n                )}\n              </div>\n              <span className=\"flex-1\">{column.label}</span>\n              {isLocked && (\n                <span className=\"text-xs text-muted-foreground\">Required</span>\n              )}\n            </DropdownMenuItem>\n          );\n        })}\n\n        {toggleableColumns.length > 1 && (\n          <>\n            <DropdownMenuSeparator />\n            <DropdownMenuItem\n              onClick={(e) => {\n                e.preventDefault();\n                showAllColumns();\n              }}\n              className=\"gap-2 cursor-pointer\"\n            >\n              <Eye className=\"h-4 w-4\" />\n              Show All\n            </DropdownMenuItem>\n            <DropdownMenuItem\n              onClick={(e) => {\n                e.preventDefault();\n                hideAllColumns();\n              }}\n              className=\"gap-2 cursor-pointer\"\n            >\n              <EyeOff className=\"h-4 w-4\" />\n              Hide Optional\n            </DropdownMenuItem>\n          </>\n        )}\n      </DropdownMenuContent>\n    </DropdownMenu>\n  );\n}\n","import React from 'react';\nimport { Search, Filter, X } from 'lucide-react';\nimport { Input } from '../../components/base/input';\nimport { Button } from '../../components/base/button';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../components/base/popover';\nimport { cn } from '../../src/utils/cn';\n\nexport interface FilterOption {\n  id: string;\n  label: string;\n  render: () => React.ReactNode;\n  /** Filter type - 'multi' filters get more horizontal space */\n  type?: 'single' | 'multi';\n}\n\nexport interface TableFiltersProps {\n  search?: string;\n  onSearchChange?: (value: string) => void;\n  searchPlaceholder?: string;\n  filters?: FilterOption[];\n  activeFilterCount?: number;\n  onClearFilters?: () => void;\n  className?: string;\n  children?: React.ReactNode;\n}\n\n/**\n * TableFilters - Compact filter controls for data tables\n *\n * Features:\n * - Search input\n * - Popover filter menu with badge showing active count\n * - Clear all filters button\n * - Custom filter components via render prop\n * - Children slot for additional action buttons\n */\nexport function TableFilters({\n  search,\n  onSearchChange,\n  searchPlaceholder = 'Search...',\n  filters,\n  activeFilterCount = 0,\n  onClearFilters,\n  className,\n  children,\n}: TableFiltersProps) {\n  // Check if any filter needs wider layout (multi-select filters)\n  const hasMultiFilters = filters?.some(f => f.type === 'multi');\n  const popoverWidth = hasMultiFilters ? 'w-[420px]' : 'w-80';\n\n  return (\n    <div className={cn('flex items-center gap-3 flex-wrap', className)}>\n      {/* Search Input */}\n      {onSearchChange !== undefined && (\n        <div className=\"relative flex-1 min-w-[200px] max-w-xs\">\n          <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none z-10\" />\n          <Input\n            placeholder={searchPlaceholder}\n            value={search || ''}\n            onChange={(e) => onSearchChange(e.target.value)}\n            className=\"pl-9 h-9\"\n          />\n          {search && (\n            <button\n              type=\"button\"\n              onClick={() => onSearchChange('')}\n              className=\"absolute right-2 top-1/2 transform -translate-y-1/2 p-1 rounded-sm hover:bg-muted\"\n            >\n              <X className=\"h-3 w-3 text-muted-foreground\" />\n            </button>\n          )}\n        </div>\n      )}\n\n      {/* Filters Popover */}\n      {filters && filters.length > 0 && (\n        <Popover>\n          <PopoverTrigger asChild>\n            <Button variant=\"outline\" size=\"sm\" className=\"gap-2 h-9\">\n              <Filter className=\"h-4 w-4\" />\n              Filters\n              {activeFilterCount > 0 && (\n                <span className=\"ml-1 rounded-full bg-primary text-primary-foreground px-2 py-0.5 text-xs font-medium\">\n                  {activeFilterCount}\n                </span>\n              )}\n            </Button>\n          </PopoverTrigger>\n          <PopoverContent\n            className={cn(popoverWidth, 'overflow-y-auto')}\n            align=\"start\"\n            collisionPadding={16}\n            style={{ maxHeight: 'var(--radix-popover-content-available-height)' }}\n          >\n            <div className=\"space-y-4\">\n              <div className=\"flex items-center justify-between\">\n                <h4 className=\"font-medium text-sm\">Filters</h4>\n                {activeFilterCount > 0 && onClearFilters && (\n                  <Button\n                    variant=\"ghost\"\n                    size=\"sm\"\n                    onClick={onClearFilters}\n                    className=\"h-auto p-0 text-xs text-destructive hover:text-destructive\"\n                  >\n                    Clear all\n                  </Button>\n                )}\n              </div>\n\n              <div className=\"space-y-4\">\n                {filters.map((filter) => (\n                  <div key={filter.id} className=\"space-y-1.5\">\n                    <label className=\"text-xs font-medium text-muted-foreground\">\n                      {filter.label}\n                    </label>\n                    {filter.render()}\n                  </div>\n                ))}\n              </div>\n            </div>\n          </PopoverContent>\n        </Popover>\n      )}\n\n      {/* Clear filters button (visible when filters are active, outside popover) */}\n      {activeFilterCount > 0 && onClearFilters && (\n        <Button\n          variant=\"ghost\"\n          size=\"sm\"\n          onClick={onClearFilters}\n          className=\"h-9 gap-1.5 text-muted-foreground hover:text-foreground\"\n        >\n          <X className=\"h-4 w-4\" />\n          Clear\n        </Button>\n      )}\n\n      {/* Spacer to push children to the right */}\n      <div className=\"flex-1\" />\n\n      {/* Custom children (e.g., export button, create button, etc.) */}\n      {children}\n    </div>\n  );\n}\n","import React from 'react';\nimport { Checkbox } from '../../components/base/checkbox';\nimport { Button } from '../../components/base/button';\nimport { cn } from '../../src/utils/cn';\n\nexport interface MultiSelectOption<T extends string = string> {\n  /** Unique value for this option */\n  value: T;\n  /** Display label */\n  label: string;\n  /** Optional custom render for the label (e.g., with icon/flag) */\n  render?: () => React.ReactNode;\n}\n\nexport interface MultiSelectFilterProps<T extends string = string> {\n  /** Available options to select from */\n  options: MultiSelectOption<T>[];\n  /** Currently selected values */\n  selected: Set<T>;\n  /** Called when selection changes */\n  onChange: (selected: Set<T>) => void;\n  /** Maximum height before scrolling (default: 200px) */\n  maxHeight?: number;\n  /** Number of columns for grid layout (default: 2) */\n  columns?: 1 | 2 | 3;\n  /** Show select all / clear buttons */\n  showBulkActions?: boolean;\n  /** Optional className for the container */\n  className?: string;\n}\n\n/**\n * MultiSelectFilter - A checkbox-based multi-select filter component\n *\n * Designed to work with the TableFilters popover for filtering data tables.\n * Supports custom rendering per option (for flags, badges, icons, etc.)\n */\nexport function MultiSelectFilter<T extends string = string>({\n  options,\n  selected,\n  onChange,\n  maxHeight = 200,\n  columns = 2,\n  showBulkActions = true,\n  className,\n}: MultiSelectFilterProps<T>) {\n  const handleToggle = (value: T) => {\n    const newSelected = new Set(selected);\n    if (newSelected.has(value)) {\n      newSelected.delete(value);\n    } else {\n      newSelected.add(value);\n    }\n    onChange(newSelected);\n  };\n\n  const handleSelectAll = () => {\n    onChange(new Set(options.map(o => o.value)));\n  };\n\n  const handleClear = () => {\n    onChange(new Set());\n  };\n\n  const gridCols = {\n    1: 'grid-cols-1',\n    2: 'grid-cols-2',\n    3: 'grid-cols-3',\n  };\n\n  const allSelected = options.length > 0 && selected.size === options.length;\n  const noneSelected = selected.size === 0;\n\n  return (\n    <div className={cn('space-y-2', className)}>\n      {/* Bulk action buttons */}\n      {showBulkActions && options.length > 3 && (\n        <div className=\"flex items-center gap-2 text-xs\">\n          <Button\n            type=\"button\"\n            variant=\"ghost\"\n            size=\"sm\"\n            onClick={handleSelectAll}\n            disabled={allSelected}\n            className=\"h-6 px-2 text-xs text-muted-foreground hover:text-foreground\"\n          >\n            Select all\n          </Button>\n          <span className=\"text-muted-foreground\">·</span>\n          <Button\n            type=\"button\"\n            variant=\"ghost\"\n            size=\"sm\"\n            onClick={handleClear}\n            disabled={noneSelected}\n            className=\"h-6 px-2 text-xs text-muted-foreground hover:text-foreground\"\n          >\n            Clear\n          </Button>\n          {selected.size > 0 && (\n            <>\n              <span className=\"text-muted-foreground\">·</span>\n              <span className=\"text-muted-foreground\">\n                {selected.size} selected\n              </span>\n            </>\n          )}\n        </div>\n      )}\n\n      {/* Options grid */}\n      <div\n        className={cn('overflow-y-auto', options.length > 6 && 'pr-1')}\n        style={{ maxHeight: `${maxHeight}px` }}\n      >\n        <div className={cn('grid gap-1', gridCols[columns])}>\n          {options.map((option) => (\n            <label\n              key={option.value}\n              className={cn(\n                'flex items-center gap-2 px-2 py-1.5 rounded-md cursor-pointer',\n                'hover:bg-muted/50 transition-colors',\n                selected.has(option.value) && 'bg-muted/30'\n              )}\n            >\n              <Checkbox\n                checked={selected.has(option.value)}\n                onCheckedChange={() => handleToggle(option.value)}\n                className=\"h-3.5 w-3.5\"\n              />\n              {option.render ? (\n                <span className=\"flex items-center gap-1.5 text-sm truncate\">\n                  {option.render()}\n                </span>\n              ) : (\n                <span className=\"text-sm truncate\">{option.label}</span>\n              )}\n            </label>\n          ))}\n        </div>\n      </div>\n\n      {/* Empty state */}\n      {options.length === 0 && (\n        <div className=\"text-sm text-muted-foreground text-center py-2\">\n          No options available\n        </div>\n      )}\n    </div>\n  );\n}\n\nexport default MultiSelectFilter;\n"]}