{"version":3,"sources":["../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/react-spring/web.js","../node_modules/micromark/dist/character/markdown-line-ending.js","../node_modules/micromark/dist/tokenize/factory-space.js","../node_modules/@fortawesome/free-solid-svg-icons/index.es.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/all.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-jupyter-notebook/node_modules/unist-builder/index.js","../node_modules/mdurl/encode.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/unist-util-position/index.js","../node_modules/@babel/runtime/helpers/objectSpread.js","../node_modules/micromark/dist/character/markdown-space.js","../node_modules/micromark/dist/util/chunked-splice.js","../node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/micromark/dist/util/regex-check.js","../node_modules/webpack/buildin/global.js","../node_modules/micromark/dist/util/shallow.js","../node_modules/refractor/lang/c.js","../node_modules/@fortawesome/free-brands-svg-icons/index.es.js","../node_modules/micromark/dist/util/prefix-size.js","../node_modules/property-information/lib/util/create.js","../node_modules/parse5/lib/common/html.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/micromark/dist/constant/assign.js","../node_modules/micromark/dist/character/ascii-alphanumeric.js","../node_modules/unist-util-visit/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/repeat-string/index.js","../node_modules/style-to-object/index.js","../node_modules/@fortawesome/fontawesome-svg-core/index.es.js","../node_modules/react-scroll/modules/mixins/scroller.js","../node_modules/react-scroll/modules/mixins/utils.js","../node_modules/micromark/dist/constant/from-char-code.js","../node_modules/micromark/dist/tokenize/partial-blank-line.js","../node_modules/micromark/dist/util/resolve-all.js","../node_modules/micromark/dist/character/ascii-alpha.js","../node_modules/property-information/lib/util/types.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/php.js","../node_modules/react-dom/index.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/default-style.js","../node_modules/extend/index.js","../node_modules/lowlight/lib/core.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/refractor/core.js","../node_modules/react-markdown/node_modules/is-buffer/index.js","../node_modules/object-assign/index.js","../node_modules/react-scroll/modules/mixins/scroll-link.js","../node_modules/react-scroll/modules/mixins/scroll-spy.js","../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../node_modules/react-scroll/modules/mixins/scroll-events.js","../node_modules/micromark/dist/util/normalize-identifier.js","../node_modules/micromark/dist/util/miniflat.js","../node_modules/micromark/dist/util/chunked-push.js","../node_modules/micromark/dist/character/unicode-punctuation.js","../node_modules/micromark/dist/character/unicode-whitespace.js","../node_modules/micromark/dist/character/ascii-control.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/micromark/dist/tokenize/label-end.js","../node_modules/unist-util-is/convert.js","../node_modules/property-information/html.js","../node_modules/property-information/normalize.js","../node_modules/property-information/svg.js","../node_modules/property-information/find.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/parse5/lib/parser/index.js","../node_modules/refractor/index.js","../node_modules/react-scroll/modules/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-scroll/modules/mixins/animate-scroll.js","../node_modules/react-scroll/modules/mixins/scroll-hash.js","../node_modules/react-scroll/modules/mixins/scroll-element.js","../node_modules/react-is/index.js","../node_modules/vfile/index.js","../node_modules/unist-util-stringify-position/index.js","../node_modules/unified/index.js","../node_modules/micromark/dist/constant/has-own-property.js","../node_modules/micromark/dist/util/size-chunks.js","../node_modules/micromark/dist/util/subtokenize.js","../node_modules/micromark/dist/initialize/text.js","../node_modules/micromark/dist/util/combine-extensions.js","../node_modules/micromark/dist/util/classify-character.js","../node_modules/micromark/dist/character/ascii-digit.js","../node_modules/micromark/dist/tokenize/factory-destination.js","../node_modules/micromark/dist/tokenize/factory-label.js","../node_modules/micromark/dist/tokenize/factory-whitespace.js","../node_modules/micromark/dist/tokenize/factory-title.js","../node_modules/micromark/dist/tokenize/thematic-break.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/react-jupyter-notebook/node_modules/unist-util-position/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/one.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/aria.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/index.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/is-decimal/index.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/yaml.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-jupyter-notebook/dist/JupyterViewer.js","../node_modules/lowlight/index.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@mapbox/rehype-prism/index.js","../node_modules/react-markdown/node_modules/react-is/index.js","../node_modules/react-markdown/node_modules/unist-util-stringify-position/index.js","../node_modules/react-markdown/node_modules/vfile-message/index.js","../node_modules/react-markdown/node_modules/vfile/lib/minpath.browser.js","../node_modules/react-markdown/node_modules/vfile/lib/minproc.browser.js","../node_modules/react-markdown/node_modules/vfile/lib/minurl.shared.js","../node_modules/react-markdown/node_modules/vfile/lib/minurl.browser.js","../node_modules/react-markdown/node_modules/vfile/lib/index.js","../node_modules/react-markdown/node_modules/bail/index.js","../node_modules/react-markdown/node_modules/is-plain-obj/index.js","../node_modules/react-markdown/node_modules/trough/index.js","../node_modules/react-markdown/node_modules/unified/lib/index.js","../node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/initialize/content.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/initialize/flow.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.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-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/setext-underline.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/code-fenced.js","../node_modules/micromark-core-commonmark/node_modules/parse-entities/decode-entity.browser.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/constructs.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/node_modules/parse-entities/decode-entity.browser.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/node_modules/parse-entities/decode-entity.browser.js","../node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/postprocess.js","../node_modules/mdast-util-from-markdown/node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/unist-builder/index.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-is/index.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents/index.js","../node_modules/mdast-util-definitions/node_modules/unist-util-is/index.js","../node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents/index.js","../node_modules/mdast-util-definitions/node_modules/unist-util-visit/index.js","../node_modules/mdast-util-definitions/index.js","../node_modules/mdast-util-to-hast/lib/traverse.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/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.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/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/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/text.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/mdast-util-to-hast/node_modules/unist-util-visit/index.js","../node_modules/unist-util-generated/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/index.js","../node_modules/react-markdown/node_modules/property-information/lib/util/schema.js","../node_modules/react-markdown/node_modules/property-information/lib/util/merge.js","../node_modules/react-markdown/node_modules/property-information/lib/normalize.js","../node_modules/react-markdown/node_modules/property-information/lib/util/info.js","../node_modules/react-markdown/node_modules/property-information/lib/util/types.js","../node_modules/react-markdown/node_modules/property-information/lib/util/defined-info.js","../node_modules/react-markdown/node_modules/property-information/lib/util/create.js","../node_modules/react-markdown/node_modules/property-information/lib/xlink.js","../node_modules/react-markdown/node_modules/property-information/lib/xml.js","../node_modules/react-markdown/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/react-markdown/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/react-markdown/node_modules/property-information/lib/xmlns.js","../node_modules/react-markdown/node_modules/property-information/lib/aria.js","../node_modules/react-markdown/node_modules/property-information/lib/html.js","../node_modules/react-markdown/node_modules/property-information/lib/svg.js","../node_modules/react-markdown/node_modules/property-information/index.js","../node_modules/react-markdown/node_modules/unist-util-is/index.js","../node_modules/react-markdown/node_modules/unist-util-visit-parents/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/react-markdown/node_modules/unist-util-visit/index.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/react-markdown/node_modules/property-information/lib/find.js","../node_modules/react-markdown/node_modules/property-information/lib/hast-to-react.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/node_modules/comma-separated-tokens/index.js","../node_modules/react-markdown/node_modules/space-separated-tokens/index.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/react-markdown/index.js","../node_modules/hast-util-raw/node_modules/unist-util-is/index.js","../node_modules/hast-util-raw/node_modules/unist-util-visit-parents/index.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/schema.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/merge.js","../node_modules/hast-util-raw/node_modules/property-information/lib/normalize.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/info.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/types.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/defined-info.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/create.js","../node_modules/hast-util-raw/node_modules/property-information/lib/xlink.js","../node_modules/hast-util-raw/node_modules/property-information/lib/xml.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hast-util-raw/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hast-util-raw/node_modules/property-information/lib/xmlns.js","../node_modules/hast-util-raw/node_modules/property-information/lib/aria.js","../node_modules/hast-util-raw/node_modules/property-information/lib/html.js","../node_modules/hast-util-raw/node_modules/property-information/lib/svg.js","../node_modules/hast-util-raw/node_modules/property-information/index.js","../node_modules/hast-util-raw/node_modules/property-information/lib/find.js","../node_modules/hast-util-raw/node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-raw/node_modules/space-separated-tokens/index.js","../node_modules/hast-util-raw/node_modules/comma-separated-tokens/index.js","../node_modules/hast-util-raw/node_modules/hastscript/lib/core.js","../node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hast-util-raw/node_modules/hastscript/lib/svg.js","../node_modules/hast-util-raw/node_modules/hastscript/lib/html.js","../node_modules/hast-util-raw/node_modules/web-namespaces/index.js","../node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.js","../node_modules/hast-util-raw/node_modules/vfile-location/index.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/schema.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/merge.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/normalize.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/info.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/types.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/defined-info.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/create.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/xlink.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/xml.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/xmlns.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/aria.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/html.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/svg.js","../node_modules/hast-util-to-parse5/node_modules/property-information/index.js","../node_modules/hast-util-to-parse5/node_modules/property-information/lib/find.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/schema.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/merge.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/normalize.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/info.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/types.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/create.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xlink.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xml.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/xmlns.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/aria.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/html.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/svg.js","../node_modules/hast-to-hyperscript/node_modules/property-information/index.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/find.js","../node_modules/hast-to-hyperscript/node_modules/unist-util-is/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/hast-to-hyperscript/node_modules/web-namespaces/index.js","../node_modules/hast-to-hyperscript/node_modules/property-information/lib/hast-to-react.js","../node_modules/hast-to-hyperscript/node_modules/comma-separated-tokens/index.js","../node_modules/hast-to-hyperscript/node_modules/space-separated-tokens/index.js","../node_modules/hast-util-to-parse5/node_modules/web-namespaces/index.js","../node_modules/hast-util-to-parse5/node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/node_modules/zwitch/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/hast-util-raw/node_modules/unist-util-visit/index.js","../node_modules/rehype-raw/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-scroll/modules/components/Link.js","../node_modules/lodash.throttle/index.js","../node_modules/react-scroll/modules/mixins/smooth.js","../node_modules/react-scroll/modules/mixins/cancel-events.js","../node_modules/react-scroll/modules/components/Button.js","../node_modules/react-scroll/modules/components/Element.js","../node_modules/react-scroll/modules/mixins/Helpers.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/ansi-to-react/lib/index.js","../node_modules/anser/lib/index.js","../node_modules/escape-carriage/index.js","../node_modules/react-jupyter-notebook/node_modules/react-markdown/src/react-markdown.js","../node_modules/vfile/lib/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/core.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/node_modules/is-buffer/index.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-buffer/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/trough/wrap.js","../node_modules/react-jupyter-notebook/node_modules/remark-parse/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-from-markdown/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-from-markdown/dist/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark/dist/util/safe-from-int.js","../node_modules/micromark/dist/parse.js","../node_modules/micromark/dist/initialize/content.js","../node_modules/micromark/dist/initialize/document.js","../node_modules/micromark/dist/initialize/flow.js","../node_modules/micromark/dist/tokenize/content.js","../node_modules/micromark/dist/constant/splice.js","../node_modules/micromark/dist/util/create-tokenizer.js","../node_modules/micromark/dist/util/serialize-chunks.js","../node_modules/micromark/dist/util/slice-chunks.js","../node_modules/micromark/dist/constructs.js","../node_modules/micromark/dist/tokenize/attention.js","../node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../node_modules/micromark/dist/util/move-point.js","../node_modules/micromark/dist/tokenize/autolink.js","../node_modules/micromark/dist/character/ascii-atext.js","../node_modules/micromark/dist/tokenize/block-quote.js","../node_modules/micromark/dist/tokenize/character-escape.js","../node_modules/micromark/dist/character/ascii-punctuation.js","../node_modules/micromark/dist/tokenize/character-reference.js","../node_modules/micromark/dist/character/ascii-hex-digit.js","../node_modules/micromark/dist/tokenize/code-fenced.js","../node_modules/micromark/dist/tokenize/code-indented.js","../node_modules/micromark/dist/tokenize/code-text.js","../node_modules/micromark/dist/tokenize/definition.js","../node_modules/micromark/dist/tokenize/hard-break-escape.js","../node_modules/micromark/dist/tokenize/heading-atx.js","../node_modules/micromark/dist/tokenize/html-flow.js","../node_modules/micromark/dist/constant/html-block-names.js","../node_modules/micromark/dist/constant/html-raw-names.js","../node_modules/micromark/dist/tokenize/html-text.js","../node_modules/micromark/dist/tokenize/label-start-image.js","../node_modules/micromark/dist/tokenize/label-start-link.js","../node_modules/micromark/dist/tokenize/line-ending.js","../node_modules/micromark/dist/tokenize/list.js","../node_modules/micromark/dist/tokenize/setext-underline.js","../node_modules/micromark/dist/preprocess.js","../node_modules/micromark/dist/postprocess.js","../node_modules/react-jupyter-notebook/node_modules/remark-rehype/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/index.js","../node_modules/unist-util-visit-parents/color.browser.js","../node_modules/react-jupyter-notebook/node_modules/unist-util-generated/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-definitions/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/react-jupyter-notebook/node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/xtend/immutable.js","../node_modules/property-information/lib/html.js","../node_modules/react-jupyter-notebook/node_modules/react-markdown/src/rehype-filter.js","../node_modules/react-jupyter-notebook/node_modules/react-markdown/src/uri-transformer.js","../node_modules/react-jupyter-notebook/node_modules/react-markdown/src/ast-to-react.js","../node_modules/react-jupyter-notebook/node_modules/react-is/index.js","../node_modules/react-jupyter-notebook/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/property-information/lib/svg.js","../node_modules/inline-style-parser/index.js","../node_modules/remark-gfm/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/micromark-extension-gfm/syntax.js","../node_modules/micromark-extension-gfm-autolink-literal/index.js","../node_modules/micromark-extension-gfm-autolink-literal/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/index.js","../node_modules/micromark-extension-gfm-table/index.js","../node_modules/micromark-extension-gfm-table/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/index.js","../node_modules/micromark-extension-gfm-task-list-item/syntax.js","../node_modules/mdast-util-gfm/from-markdown.js","../node_modules/mdast-util-gfm-autolink-literal/from-markdown.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-strikethrough/from-markdown.js","../node_modules/mdast-util-gfm-table/from-markdown.js","../node_modules/mdast-util-gfm-task-list-item/from-markdown.js","../node_modules/mdast-util-gfm/to-markdown.js","../node_modules/mdast-util-gfm-autolink-literal/to-markdown.js","../node_modules/mdast-util-gfm-strikethrough/to-markdown.js","../node_modules/mdast-util-gfm-table/to-markdown.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-task-list-item/to-markdown.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/configure.js","../node_modules/remark-math/index.js","../node_modules/micromark-extension-math/index.js","../node_modules/micromark-extension-math/lib/syntax.js","../node_modules/micromark-extension-math/lib/tokenize-math-flow.js","../node_modules/micromark-extension-math/lib/tokenize-math-text.js","../node_modules/mdast-util-math/from-markdown.js","../node_modules/mdast-util-math/to-markdown.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/rehype-katex/index.js","../node_modules/katex/dist/katex.js","../node_modules/rehype-parse/index.js","../node_modules/hast-util-from-parse5/index.js","../node_modules/hastscript/svg.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/html.js","../node_modules/vfile-location/index.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/hast-util-to-text/index.js","../node_modules/hast-util-is-element/convert.js","../node_modules/unist-util-find-after/index.js","../node_modules/highlight.js/lib/core.js","../node_modules/fault/index.js","../node_modules/format/format.js","../node_modules/highlight.js/lib/languages/1c.js","../node_modules/highlight.js/lib/languages/abnf.js","../node_modules/highlight.js/lib/languages/accesslog.js","../node_modules/highlight.js/lib/languages/actionscript.js","../node_modules/highlight.js/lib/languages/ada.js","../node_modules/highlight.js/lib/languages/angelscript.js","../node_modules/highlight.js/lib/languages/apache.js","../node_modules/highlight.js/lib/languages/applescript.js","../node_modules/highlight.js/lib/languages/arcade.js","../node_modules/highlight.js/lib/languages/arduino.js","../node_modules/highlight.js/lib/languages/armasm.js","../node_modules/highlight.js/lib/languages/xml.js","../node_modules/highlight.js/lib/languages/asciidoc.js","../node_modules/highlight.js/lib/languages/aspectj.js","../node_modules/highlight.js/lib/languages/autohotkey.js","../node_modules/highlight.js/lib/languages/autoit.js","../node_modules/highlight.js/lib/languages/avrasm.js","../node_modules/highlight.js/lib/languages/awk.js","../node_modules/highlight.js/lib/languages/axapta.js","../node_modules/highlight.js/lib/languages/bash.js","../node_modules/highlight.js/lib/languages/basic.js","../node_modules/highlight.js/lib/languages/bnf.js","../node_modules/highlight.js/lib/languages/brainfuck.js","../node_modules/highlight.js/lib/languages/c-like.js","../node_modules/highlight.js/lib/languages/c.js","../node_modules/highlight.js/lib/languages/cal.js","../node_modules/highlight.js/lib/languages/capnproto.js","../node_modules/highlight.js/lib/languages/ceylon.js","../node_modules/highlight.js/lib/languages/clean.js","../node_modules/highlight.js/lib/languages/clojure.js","../node_modules/highlight.js/lib/languages/clojure-repl.js","../node_modules/highlight.js/lib/languages/cmake.js","../node_modules/highlight.js/lib/languages/coffeescript.js","../node_modules/highlight.js/lib/languages/coq.js","../node_modules/highlight.js/lib/languages/cos.js","../node_modules/highlight.js/lib/languages/cpp.js","../node_modules/highlight.js/lib/languages/crmsh.js","../node_modules/highlight.js/lib/languages/crystal.js","../node_modules/highlight.js/lib/languages/csharp.js","../node_modules/highlight.js/lib/languages/csp.js","../node_modules/highlight.js/lib/languages/css.js","../node_modules/highlight.js/lib/languages/d.js","../node_modules/highlight.js/lib/languages/markdown.js","../node_modules/highlight.js/lib/languages/dart.js","../node_modules/highlight.js/lib/languages/delphi.js","../node_modules/highlight.js/lib/languages/diff.js","../node_modules/highlight.js/lib/languages/django.js","../node_modules/highlight.js/lib/languages/dns.js","../node_modules/highlight.js/lib/languages/dockerfile.js","../node_modules/highlight.js/lib/languages/dos.js","../node_modules/highlight.js/lib/languages/dsconfig.js","../node_modules/highlight.js/lib/languages/dts.js","../node_modules/highlight.js/lib/languages/dust.js","../node_modules/highlight.js/lib/languages/ebnf.js","../node_modules/highlight.js/lib/languages/elixir.js","../node_modules/highlight.js/lib/languages/elm.js","../node_modules/highlight.js/lib/languages/ruby.js","../node_modules/highlight.js/lib/languages/erb.js","../node_modules/highlight.js/lib/languages/erlang-repl.js","../node_modules/highlight.js/lib/languages/erlang.js","../node_modules/highlight.js/lib/languages/excel.js","../node_modules/highlight.js/lib/languages/fix.js","../node_modules/highlight.js/lib/languages/flix.js","../node_modules/highlight.js/lib/languages/fortran.js","../node_modules/highlight.js/lib/languages/fsharp.js","../node_modules/highlight.js/lib/languages/gams.js","../node_modules/highlight.js/lib/languages/gauss.js","../node_modules/highlight.js/lib/languages/gcode.js","../node_modules/highlight.js/lib/languages/gherkin.js","../node_modules/highlight.js/lib/languages/glsl.js","../node_modules/highlight.js/lib/languages/gml.js","../node_modules/highlight.js/lib/languages/go.js","../node_modules/highlight.js/lib/languages/golo.js","../node_modules/highlight.js/lib/languages/gradle.js","../node_modules/highlight.js/lib/languages/groovy.js","../node_modules/highlight.js/lib/languages/haml.js","../node_modules/highlight.js/lib/languages/handlebars.js","../node_modules/highlight.js/lib/languages/haskell.js","../node_modules/highlight.js/lib/languages/haxe.js","../node_modules/highlight.js/lib/languages/hsp.js","../node_modules/highlight.js/lib/languages/htmlbars.js","../node_modules/highlight.js/lib/languages/http.js","../node_modules/highlight.js/lib/languages/hy.js","../node_modules/highlight.js/lib/languages/inform7.js","../node_modules/highlight.js/lib/languages/ini.js","../node_modules/highlight.js/lib/languages/irpf90.js","../node_modules/highlight.js/lib/languages/isbl.js","../node_modules/highlight.js/lib/languages/java.js","../node_modules/highlight.js/lib/languages/javascript.js","../node_modules/highlight.js/lib/languages/jboss-cli.js","../node_modules/highlight.js/lib/languages/json.js","../node_modules/highlight.js/lib/languages/julia.js","../node_modules/highlight.js/lib/languages/julia-repl.js","../node_modules/highlight.js/lib/languages/kotlin.js","../node_modules/highlight.js/lib/languages/lasso.js","../node_modules/highlight.js/lib/languages/latex.js","../node_modules/highlight.js/lib/languages/ldif.js","../node_modules/highlight.js/lib/languages/leaf.js","../node_modules/highlight.js/lib/languages/less.js","../node_modules/highlight.js/lib/languages/lisp.js","../node_modules/highlight.js/lib/languages/livecodeserver.js","../node_modules/highlight.js/lib/languages/livescript.js","../node_modules/highlight.js/lib/languages/llvm.js","../node_modules/highlight.js/lib/languages/lsl.js","../node_modules/highlight.js/lib/languages/lua.js","../node_modules/highlight.js/lib/languages/makefile.js","../node_modules/highlight.js/lib/languages/mathematica.js","../node_modules/highlight.js/lib/languages/matlab.js","../node_modules/highlight.js/lib/languages/maxima.js","../node_modules/highlight.js/lib/languages/mel.js","../node_modules/highlight.js/lib/languages/mercury.js","../node_modules/highlight.js/lib/languages/mipsasm.js","../node_modules/highlight.js/lib/languages/mizar.js","../node_modules/highlight.js/lib/languages/perl.js","../node_modules/highlight.js/lib/languages/mojolicious.js","../node_modules/highlight.js/lib/languages/monkey.js","../node_modules/highlight.js/lib/languages/moonscript.js","../node_modules/highlight.js/lib/languages/n1ql.js","../node_modules/highlight.js/lib/languages/nginx.js","../node_modules/highlight.js/lib/languages/nim.js","../node_modules/highlight.js/lib/languages/nix.js","../node_modules/highlight.js/lib/languages/node-repl.js","../node_modules/highlight.js/lib/languages/nsis.js","../node_modules/highlight.js/lib/languages/objectivec.js","../node_modules/highlight.js/lib/languages/ocaml.js","../node_modules/highlight.js/lib/languages/openscad.js","../node_modules/highlight.js/lib/languages/oxygene.js","../node_modules/highlight.js/lib/languages/parser3.js","../node_modules/highlight.js/lib/languages/pf.js","../node_modules/highlight.js/lib/languages/pgsql.js","../node_modules/highlight.js/lib/languages/php.js","../node_modules/highlight.js/lib/languages/php-template.js","../node_modules/highlight.js/lib/languages/plaintext.js","../node_modules/highlight.js/lib/languages/pony.js","../node_modules/highlight.js/lib/languages/powershell.js","../node_modules/highlight.js/lib/languages/processing.js","../node_modules/highlight.js/lib/languages/profile.js","../node_modules/highlight.js/lib/languages/prolog.js","../node_modules/highlight.js/lib/languages/properties.js","../node_modules/highlight.js/lib/languages/protobuf.js","../node_modules/highlight.js/lib/languages/puppet.js","../node_modules/highlight.js/lib/languages/purebasic.js","../node_modules/highlight.js/lib/languages/python.js","../node_modules/highlight.js/lib/languages/python-repl.js","../node_modules/highlight.js/lib/languages/q.js","../node_modules/highlight.js/lib/languages/qml.js","../node_modules/highlight.js/lib/languages/r.js","../node_modules/highlight.js/lib/languages/reasonml.js","../node_modules/highlight.js/lib/languages/rib.js","../node_modules/highlight.js/lib/languages/roboconf.js","../node_modules/highlight.js/lib/languages/routeros.js","../node_modules/highlight.js/lib/languages/rsl.js","../node_modules/highlight.js/lib/languages/ruleslanguage.js","../node_modules/highlight.js/lib/languages/rust.js","../node_modules/highlight.js/lib/languages/sas.js","../node_modules/highlight.js/lib/languages/scala.js","../node_modules/highlight.js/lib/languages/scheme.js","../node_modules/highlight.js/lib/languages/scilab.js","../node_modules/highlight.js/lib/languages/scss.js","../node_modules/highlight.js/lib/languages/shell.js","../node_modules/highlight.js/lib/languages/smali.js","../node_modules/highlight.js/lib/languages/smalltalk.js","../node_modules/highlight.js/lib/languages/sml.js","../node_modules/highlight.js/lib/languages/sqf.js","../node_modules/highlight.js/lib/languages/sql_more.js","../node_modules/highlight.js/lib/languages/sql.js","../node_modules/highlight.js/lib/languages/stan.js","../node_modules/highlight.js/lib/languages/stata.js","../node_modules/highlight.js/lib/languages/step21.js","../node_modules/highlight.js/lib/languages/stylus.js","../node_modules/highlight.js/lib/languages/subunit.js","../node_modules/highlight.js/lib/languages/swift.js","../node_modules/highlight.js/lib/languages/taggerscript.js","../node_modules/highlight.js/lib/languages/yaml.js","../node_modules/highlight.js/lib/languages/tap.js","../node_modules/highlight.js/lib/languages/tcl.js","../node_modules/highlight.js/lib/languages/thrift.js","../node_modules/highlight.js/lib/languages/tp.js","../node_modules/highlight.js/lib/languages/twig.js","../node_modules/highlight.js/lib/languages/typescript.js","../node_modules/highlight.js/lib/languages/vala.js","../node_modules/highlight.js/lib/languages/vbnet.js","../node_modules/highlight.js/lib/languages/vbscript.js","../node_modules/highlight.js/lib/languages/vbscript-html.js","../node_modules/highlight.js/lib/languages/verilog.js","../node_modules/highlight.js/lib/languages/vhdl.js","../node_modules/highlight.js/lib/languages/vim.js","../node_modules/highlight.js/lib/languages/x86asm.js","../node_modules/highlight.js/lib/languages/xl.js","../node_modules/highlight.js/lib/languages/xquery.js","../node_modules/highlight.js/lib/languages/zephir.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/parse-entities/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-alphabetical/index.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/clike.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/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.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/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/coq.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/csv.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/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/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.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/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.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/iecst.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/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-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.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/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.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/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/mel.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/n4js.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/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/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/phpdoc.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/psl.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/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.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/scala.js","../node_modules/refractor/lang/scss.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/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/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uri.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/wiki.js","../node_modules/refractor/lang/wolfram.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/react-jupyter-notebook/dist/hljsStyles.js","../node_modules/hast-util-to-string/index.js","../node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/a11y-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/a11y-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/agate.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/an-old-hope.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/androidstudio.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/arduino-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/arta.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/ascetic.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-cave-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-cave-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-dune-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-dune-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-estuary-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-estuary-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-forest-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-forest-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-heath-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-heath-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-lakeside-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-lakeside-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-plateau-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-plateau-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-savanna-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-savanna-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-seaside-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-seaside-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-sulphurpool-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atelier-sulphurpool-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atom-one-dark-reasonable.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atom-one-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/atom-one-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/brown-paper.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/codepen-embed.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/color-brewer.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/darcula.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/docco.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/dracula.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/far.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/foundation.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/github-gist.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/github.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/gml.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/googlecode.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/gradient-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/gradient-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/grayscale.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/gruvbox-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/gruvbox-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/hopscotch.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/hybrid.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/idea.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/ir-black.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/isbl-editor-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/isbl-editor-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/kimbie.dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/kimbie.light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/lightfair.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/lioshi.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/magula.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/mono-blue.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/monokai-sublime.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/monokai.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/night-owl.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/nnfx-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/nnfx.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/nord.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/obsidian.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/ocean.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/paraiso-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/paraiso-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/pojoaque.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/purebasic.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/qtcreator_dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/qtcreator_light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/railscasts.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/rainbow.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/routeros.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/school-book.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/shades-of-purple.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/solarized-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/solarized-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/srcery.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-dark.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/sunburst.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night-blue.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night-bright.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night-eighties.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow-night.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/tomorrow.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/vs.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/vs2015.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/xcode.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/xt256.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/zenburn.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/default-highlight.js","../node_modules/react-syntax-highlighter/dist/esm/languages/hljs/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/async-syntax-highlighter.js","../node_modules/react-syntax-highlighter/dist/esm/async-languages/create-language-async-loader.js","../node_modules/react-syntax-highlighter/dist/esm/light-async.js","../node_modules/react-syntax-highlighter/dist/esm/async-languages/hljs.js","../node_modules/react-syntax-highlighter/dist/esm/light.js","../node_modules/react-syntax-highlighter/dist/esm/prism-async-light.js","../node_modules/react-syntax-highlighter/dist/esm/async-languages/prism.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/prism-async.js","../node_modules/react-syntax-highlighter/dist/esm/prism-light.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"names":["module","exports","require","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","_defineProperty","obj","key","value","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_objectSpread2","target","i","source","forEach","getOwnPropertyDescriptors","defineProperties","createNamedContext","name","context","createContext","displayName","historyContext","Router","_React$Component","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","React","createElement","Provider","match","children","Component","cache$1","cacheCount$1","matchPath","options","Array","isArray","_options","exact","_options$exact","strict","_options$strict","sensitive","_options$sensitive","concat","reduce","matched","cacheKey","end","pathCache","result","regexp","pathToRegexp","compilePath$1","_compilePath","exec","values","slice","memo","index","Route","Consumer","context$1","invariant","computedMatch","_this$props","component","Children","count","isEmptyChildren","addLeadingSlash","charAt","stripBasename","basename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","Switch","element","child","isValidElement","from","cloneElement","useContext","useHistory","useLocation","useParams","is","arr","a","prototype","toString","fun","str","num","und","nul","set","Set","map","Map","equ","b","useForceUpdate","f","useState","useCallback","v","withDefault","defaultValue","toArray","callProp","_len","args","_key","interpolateTo","forward","to","config","onStart","onRest","onFrame","reset","reverse","force","immediate","delay","attach","destroyed","ref","lazy","_objectWithoutPropertiesLoose","getForwardProps","rest","k","Animated","constructor","payload","getAnimatedValue","getValue","getPayload","detach","getChildren","addChild","removeChild","splice","AnimatedArray","super","p","AnimatedObject","s","animated","applyAnimatedValues","colorNames","injectApplyAnimatedValues","fn","transform","injectColorNames","names","interpolation","requestFrame","cb","window","requestAnimationFrame","injectStringInterpolator","defaultElement","now","Date","injectDefaultElement","el","createAnimatedStyle","manualFrameloop","animatedApi","node","current","injectCreateAnimatedStyle","factory","AnimatedProps","callback","update","style","active","controllers","time","controller","isActive","configIdx","configs","endOfAnimation","lastTime","valIdx","animatedValues","animation","done","fromValues","toValues","position","lastPosition","isAnimated","velocity","initialVelocity","setValue","duration","easing","startTime","decay","Math","exp","abs","lastVelocity","numSteps","floor","tension","friction","mass","isOvershooting","clamp","isVelocity","precision","isDisplacement","delete","stop","size","createInterpolator","range","output","extrapolate","outputRange","inputRange","extrapolateLeft","extrapolateRight","input","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","interpolate","AnimatedInterpolation","parents","calc","updateConfig","default","gentle","wobbly","stiff","slow","molasses","addAnimatedStyles","styles","add","AnimatedValue","_value","animatedStyles","startPosition","flush","animatedStyle","clearStyles","clear","AnimatedValueArray","G","Controller","id","idle","hasChanged","guid","local","merged","animations","interpolations","listeners","queue","localQueue","getValues","_ref","_ref$delay","ops","entries","_ref2","entry","previous","sort","diff","start","onEnd","_ref3","_ref3$from","_ref3$to","_ref4","finished","async","setTimeout","runAsync","has","pause","_ref5","Promise","resolve","undefined","fresh","then","last","_this$props$from","_this$props$to","_this$props$config","_ref6","acc","_ref7","isNumber","isString","startsWith","test","isInterpolation","fromValue","toValue","toConfig","parent","interpolation$$1","newValue","currentValue","some","currentValueDiffersFromGoal","hasNewGoal","hasNewConfig","prev","destroy","useSprings","mounted","useRef","ctrl","isFn","_useMemo","useMemo","c","fill","_","newProps","useImperativeHandle","all","updateCtrl","updateProps","useEffect","propValues","useSpring","_useSprings","AnimatedStyle","colors","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","NUMBER","PERCENTAGE","parts","join","rgb","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","q","hslToRgb","h","l","g","round","parse255","int","parseInt","parse360","parseFloat","parse1","parsePercentage","colorToRgba","int32Color","color","normalizeColor","stringShapeRegex","colorRegex","colorNamesRegex","isUnitlessNumber","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","dangerousStyleValue","isCustomProperty","trim","prop","prefix","prefixKey","toUpperCase","substring","attributeCache","rangeValue","replace","outputRanges","number","p1","p2","p3","p4","instance","nodeType","setAttribute","scrollTop","scrollLeft","attributes","nodeName","parentNode","textContent","styleName","styleValue","setProperty","dashCase","toLowerCase","getAttribute","lowercase","extendedAnimated","forwardRef","forceUpdate","propsAnimated","attachProps","oldPropsAnimated","didUpdate","_getValue","animatedProps","refFn","val","childRef","handleRef","code","markdownSpace","effects","ok","type","max","limit","enter","consume","exit","faAngleDoubleLeft","iconName","icon","faBicycle","faCube","faDna","faEraser","faGraduationCap","faPause","faPlay","faTerminal","faVirus","_typeof","Symbol","iterator","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr2","_arrayWithoutHoles","iter","_iterableToArray","TypeError","_nonIterableSpread","camelize","string","chr","styleToObject","split","pair","PRODUCTION","process","normalizeIconArgs","parse","objectWithKey","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","mask","symbol","className","title","titleId","iconLookup","classes","_classes","spin","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","classList","renderedIcon","_console","console","error","log","abstract","extraProps","defaultProps","convertCurry","propTypes","PropTypes","bool","oneOfType","array","oneOf","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","tag","head","nodes","one","isAbsolute","spliceOne","list","pop","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","valueOf","valueEqual","every","item","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","listener","notifyListeners","canUseDOM","document","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","pushHashPath","nextPaths","lowerBound","upperBound","min","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","markupTemplating","Prism","getPlaceholder","language","languages","buildPlaceholders","env","placeholderPattern","replaceFilter","tokenStack","placeholder","grammar","markup","tokenizePlaceholders","j","walkTokens","tokens","token","content","before","middle","Token","tokenize","after","replacement","aliases","condition","Error","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","o","create","String","encodeCache","encode","exclude","keepEscaped","nextCode","cache","defaultChars","ch","fromCharCode","charCodeAt","getEncodeCache","encodeURIComponent","componentChars","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","C","LinkAnchor","innerRef","navigate","_onClick","onClick","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","pointStart","point","pointEnd","line","column","offset","__esModule","remove","items","parameters","chunkStart","Mixin","host","originalMethods","overriddenMethods","_getOverriddenMethods","install","Ctor","opts","__mixins","mixin","toPropertyKey","regex","Function","extend","comment","pattern","greedy","lookbehind","keyword","function","operator","insertBefore","macro","alias","inside","directive","punctuation","expression","constant","faGithub","faLinkedinIn","faPython","sizeChunks","events","tail","sliceStream","normalize","Schema","DefinedInfo","definition","info","space","mustUseProperty","properties","property","normal","attribute","NS","NAMESPACES","HTML","MATHML","SVG","XLINK","XML","XMLNS","ATTRS","TYPE","ACTION","ENCODING","PROMPT","NAME","COLOR","FACE","SIZE","DOCUMENT_MODE","NO_QUIRKS","QUIRKS","LIMITED_QUIRKS","$","TAG_NAMES","A","ADDRESS","ANNOTATION_XML","APPLET","AREA","ARTICLE","ASIDE","B","BASE","BASEFONT","BGSOUND","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CAPTION","CENTER","CODE","COL","COLGROUP","DD","DESC","DETAILS","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FOREIGN_OBJECT","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","I","IMG","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LI","LINK","LISTING","MAIN","MALIGNMARK","MARQUEE","MATH","MENU","META","MGLYPH","MI","MO","MN","MS","MTEXT","NAV","NOBR","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","P","PARAM","PLAINTEXT","PRE","RB","RP","RT","RTC","RUBY","S","SCRIPT","SECTION","SELECT","SOURCE","SMALL","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","TABLE","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TITLE","TR","TRACK","TT","U","UL","VAR","WBR","XMP","SPECIAL_ELEMENTS","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","asciiAlphanumeric","regexCheck","visit","visitParents","CONTINUE","SKIP","EXIT","tree","visitor","loose","u","res","declaration","declarations","hasIterator","len","_defineProperties","descriptor","_objectSpread","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","err","_iterableToArrayLimit","_nonIterableRest","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","MutationObserver","performance","_ref$userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","attr","coerce","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","w","hooks","shims","namespace","functions","doScroll","readyState","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","global","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","reject","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","promises","results","race","meaninglessTransform","x","y","rotate","flipX","flipY","insertCss","css","innerHTML","headChildren","childNodes","beforeChild","tagName","nextUniqueId","htmlEscape","joinStyles","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","width","height","fillBlack","makeInlineSvgAbstract","_params$icons","icons","main","maskId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","role","uploadedIconWidthStyle","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","noop$1","subject","initialValue","thisContext","func","d","bindInternal4","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","parseTransformString","transformString","first","isNaN","MissingIcon","stack","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","asFoundIcon","vectorData","class","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","get","container","html","findIconDefinition","_iconLookup$prefix","library","definitions","Library","Constructor","_classCallCheck","protoProps","staticProps","additions","_pullDefinitions","0","_normalized$key","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","_utils2","_interopRequireDefault","_animateScroll2","_scrollEvents2","__mapped","__activeLink","unmount","register","unregister","getElementById","getElementsByName","getElementsByClassName","setActiveLink","link","getActiveLink","scrollTo","containerId","absolute","containerElement","horizontal","scrollOffset","smooth","registered","animateTopScroll","warn","updateHash","historyUpdate","hashVal","hashToUpdate","curLoc","urlToPush","getHash","filterElementInContainer","contains","compareDocumentPosition","getBoundingClientRect","left","scrollX","pageXOffset","getComputedStyle","offsetLeft","top","scrollY","pageYOffset","offsetTop","markdownLineEnding","factorySpace","partialBlankLine","nok","partial","constructs","called","resolveAll","asciiAlpha","powers","increment","pow","boolean","booleanish","overloadedBoolean","spaceSeparated","commaSeparated","commaOrSpaceSeparated","Preprocessor","unicode","neTree","ERR","CODE_POINTS","$$","CODE_POINT_SEQUENCES","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","cp","SPACE","LINE_FEED","TABULATION","FORM_FEED","isAsciiDigit","DIGIT_0","DIGIT_9","isAsciiUpper","LATIN_CAPITAL_A","LATIN_CAPITAL_Z","isAsciiLower","LATIN_SMALL_A","LATIN_SMALL_Z","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","LATIN_CAPITAL_F","isAsciiLowerHexDigit","LATIN_SMALL_F","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","Tokenizer","preprocessor","tokenQueue","allowCDATA","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","currentCharacterToken","currentToken","currentAttr","_err","_errOnNextCodePoint","_consume","_unconsume","getNextToken","_ensureHibernation","shift","write","chunk","isLastChunk","insertHtmlAtCurrentPos","endOfChunkHit","retreat","HIBERNATION_TOKEN","advance","_reconsumeInState","_consumeSequenceIfMatch","startCp","caseSensitive","consumedCount","isMatch","patternLength","patternCp","patternPos","EOF","_isTempBufferEqualToScriptString","SCRIPT_STRING","_createStartTagToken","START_TAG_TOKEN","selfClosing","ackSelfClosing","_createEndTagToken","END_TAG_TOKEN","_createCommentToken","COMMENT_TOKEN","data","_createDoctypeToken","initialName","DOCTYPE_TOKEN","forceQuirks","publicId","systemId","_createCharacterToken","chars","_createEOFToken","EOF_TOKEN","_createAttr","attrNameFirstCh","_leaveAttrName","toState","getTokenAttr","duplicateAttribute","_leaveAttrValue","_emitCurrentToken","_emitCurrentCharacterToken","ct","endTagWithAttributes","endTagWithTrailingSolidus","_emitEOFToken","_appendCharToCurrentCharacterToken","_emitCodePoint","CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","NULL","NULL_CHARACTER_TOKEN","_emitSeveralCodePoints","codePoints","_emitChars","_matchNamedCharacterReference","excess","inNode","HAS_DATA_FLAG","_isCharacterReferenceInAttribute","_isCharacterReferenceAttributeQuirk","withSemicolon","nextCp","EQUALS_SIGN","_flushCodePointsConsumedAsCharacterReference","dropParsedChunk","LESS_THAN_SIGN","AMPERSAND","unexpectedNullCharacter","REPLACEMENT_CHARACTER","EXCLAMATION_MARK","SOLIDUS","QUESTION_MARK","unexpectedQuestionMarkInsteadOfTagName","eofBeforeTagName","invalidFirstCharacterOfTagName","GREATER_THAN_SIGN","missingEndTagName","eofInTag","HYPHEN_MINUS","eofInScriptHtmlCommentLikeText","unexpectedEqualsSignBeforeAttributeName","QUOTATION_MARK","APOSTROPHE","unexpectedCharacterInAttributeName","missingAttributeValue","GRAVE_ACCENT","unexpectedCharacterInUnquotedAttributeValue","missingWhitespaceBetweenAttributes","unexpectedSolidusInTag","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","cdataInHtmlContent","incorrectlyOpenedComment","abruptClosingOfEmptyComment","eofInComment","nestedComment","incorrectlyClosedComment","eofInDoctype","missingWhitespaceBeforeDoctypeName","missingDoctypeName","PUBLIC_STRING","SYSTEM_STRING","invalidCharacterSequenceAfterDoctypeName","missingWhitespaceAfterDoctypePublicKeyword","missingDoctypePublicIdentifier","missingQuoteBeforeDoctypePublicIdentifier","abruptDoctypePublicIdentifier","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingQuoteBeforeDoctypeSystemIdentifier","missingWhitespaceAfterDoctypeSystemKeyword","missingDoctypeSystemIdentifier","abruptDoctypeSystemIdentifier","unexpectedCharacterAfterDoctypeSystemIdentifier","RIGHT_SQUARE_BRACKET","eofInCdata","NUMBER_SIGN","matchResult","SEMICOLON","missingSemicolonAfterCharacterReference","unknownNamedCharacterReference","LATIN_SMALL_X","LATIN_CAPITAL_X","isAsciiHexDigit","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","characterReferenceOutsideUnicodeRange","isSurrogate","surrogateCharacterReference","isUndefinedCodePoint","noncharacterCharacterReference","isControlCodePoint","CARRIAGE_RETURN","controlCharacterReference","MODE","DATA","RCDATA","RAWTEXT","SCRIPT_DATA","attrName","ruby","delimiter","variable","builtin","rb","javadoclike","javaDocLike","parameter","docLanguage","lang","tokenName","docCommentSupport","addSupport","refractorMarkupTemplating","php","package","string_interpolation","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","hasOwn","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","getProperty","src","copy","copyIsArray","clone","deep","high","fault","highlight","highlightAuto","secondBest","settings","subset","listLanguages","defaultPrefix","relevance","getLanguage","registerLanguage","syntax","registerAlias","registerAliases","languageName","Emitter","addText","addKeyword","openNode","closeNode","addSublanguage","other","rootNode","classPrefix","closeAllNodes","finalize","toHTML","configure","__emitter","ignoreIllegals","errorRaised","emitter","asyncGeneratorStep","_next","_throw","ctx","self","restore","defined","capture","manual","disableWorkerMessageHandler","decode","clike","js","own","Refractor","refract","sup","util","stringify","stringifyAll","run","isBuffer","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","_createClass","_react2","_scrollSpy2","_scroller2","_propTypes2","_scrollHash2","protoTypes","isRequired","activeClass","spy","isDynamic","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","saveHashHistory","customScroller","scroller","_React$PureComponent","ReferenceError","_possibleConstructorReturn","getPrototypeOf","_initialiseProps","subClass","superClass","_inherits","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addSpyHandler","spyHandler","stateHandler","handleClick","PureComponent","_this2","stopPropagation","isInitialized","isInside","isOutside","elemLeftBound","elemRightBound","containerLeft","cords","offsetX","elemTopBound","elemBottomBound","containerTop","_cords","offsetY","activeLink","_props$saveHashHistor","changeHash","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","_passiveEventListeners","scrollSpy","spyCallbacks","spySetState","scrollSpyContainers","eventHandler","eventThrottler","scrollHandler","addPassiveEventListener","currentPositionX","supportPageOffset","isCSS1Compat","compatMode","body","currentPositionY","addStateHandler","handler","updateStates","eventName","supportsPassiveOption","passive","removePassiveEventListener","Events","scrollEvent","evtName","chunkedSplice","unicodePunctuationRegex","unicodePunctuation","unicodeWhitespace","characters","char","entity","markdownLineEndingOrSpace","chunkedPush","normalizeIdentifier","shallow","factoryDestination","factoryLabel","factoryTitle","factoryWhitespace","labelEnd","labelStart","_balanced","_inactive","balanced","parser","sliceSerialize","afterLabelEnd","attempt","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","resolveTo","group","label","text","open","close","media","insideSpan","null","_used","destinationAfter","between","afterLabel","Boolean","typeFactory","tests","checks","any","anyFactory","allFactory","merge","xlink","xml","xmlns","aria","svg","Info","schema","Type","valid","dash","camelcase","datasetToProperty","cap","kebab","datasetToAttribute","$0","UNDEFINED_CODE_POINTS","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","posTracker","onParseError","_setErrorLocation","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_reportError","mxn","sql","refractorC","cpp","modName","generic","csharp","replacements","m","re","flags","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","keywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","identifier","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","character","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","haskell","hvariable","hs","java","classNamePrefix","annotation","generics","typescript","decorator","at","ts","json","webmanifest","scheme","SortedBNF","t4Templating","createBlock","contentAlias","insideLang","standard","OpenElementStack","FormattingElementList","LocationInfoParserMixin","ErrorReportingParserMixin","defaultTreeAdapter","mergeOptions","doctype","foreignContent","DEFAULT_OPTIONS","scriptingEnabled","sourceCodeLocationInfo","treeAdapter","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","tokenInInitialMode","ignoreToken","appendComment","_setDocumentType","mode","getDocumentMode","isConforming","setDocumentMode","insertionMode","tokenBeforeHtml","_insertElement","tn","tokenBeforeHead","startTagInBody","headElement","openElements","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","_processToken","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","clearToLastMarker","tokenInColumnGroup","_appendElement","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","insertMarker","_closeTableCell","startTagInSelect","endTagInSelect","_resetInsertionMode","newInsertionMode","_popTmplInsertionMode","_pushTmplInsertionMode","eofInTemplate","tokenAfterBody","_appendCommentNode","fragmentContext","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","aaObtainFormattingElementEntry","formattingElementEntry","getElementEntryInScopeWithTagName","hasInScope","removeEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","stackTop","_isSpecialElement","popUntilElementPopped","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","getElementEntry","counterOverflow","aaRecreateElementFromEntry","bookmark","detachNode","appendChild","ns","getNamespaceURI","newElement","aaInsertLastNodeInCommonAncestor","commonAncestor","_isElementCausesFosterParenting","_fosterParentElement","getTagName","getTemplateContent","aaReplaceFormattingElement","_adoptNodes","insertElementAfterBookmark","insertAfter","callAdoptionAgency","currentTmplContent","_insertCharacters","stopped","beforeToken","_insertFakeRootElement","_switchToTextParsing","_insertTemplate","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","skipNextNewLine","bStartTagInBody","pushElement","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","generateImpliedEndTagsWithExclusion","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","adjustTokenSVGAttrs","adjustTokenXMLAttrs","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formElement","formStartTagInBody","nobrStartTagInBody","adjustTokenMathMLAttrs","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","popAllUpToHtmlElement","framesetStartTagInBody","tokenizer","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","tmplInsertionModeStackTop","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","fosterParentingEnabled","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","createDocument","_bootstrap","_runParsingLoop","parseFragment","documentMock","_initTokenizerForFragmentParsing","_findFormInFragmentContext","rootElement","getFirstChild","fragment","createDocumentFragment","tmplInsertionModeStack","currentTmplInsertionMode","scriptHandler","_setupTokenizerCDATAMode","_processInputToken","runParsingLoopForCurrentChunk","writeCallback","script","_getAdjustedCurrentElement","_isIntegrationPoint","nextTokenizerState","switchToPlaintextParsing","getParentNode","setDocumentType","_attachElementToTree","_shouldFosterParentOnInsertion","namespaceURI","tmpl","setTemplateContent","commentNode","createCommentNode","_fosterParentText","insertText","donor","recipient","_shouldProcessTokenInForeignContent","isCharacterToken","_processTokenInForeignContent","characterInForeignContent","nullCharacterInForeignContent","causesExit","currentNs","adjustTokenSVGTagName","startTagInForeignContent","endTagInForeignContent","foreignNS","getAttrList","isIntegrationPoint","listLength","unopenIdx","MARKER_ENTRY","popUntilTableCellPopped","_resetInsertionModeForSelect","selectIdx","ancestor","_findFosterParentingLocation","beforeElement","openElement","insertTextBefore","refractor","Helpers","ScrollElement","ScrollLink","animateScroll","Element","Button","_Link2","_Button2","_Element2","_scrollLink2","_scrollElement2","_Helpers2","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","modifier","asterisk","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","matches","pretty","segment","JSON","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","webkitRequestAnimationFrame","currentWindowProperties","getTime","timestamp","cancel","targetPosition","progress","percent","currentPosition","easedAnimate","setContainer","delayTimeout","clearTimeout","subscribe","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","_utils","scrollHash","mountFlag","initialized","containers","initStateFromHash","isInit","childBindings","domNode","registerElems","prevProps","parentBindings","pos","bail","buffer","plain","trough","vfile","unified","frozen","attachers","transformers","freezeIndex","processor","assertUnfrozen","freeze","use","addPlugin","addList","addPreset","plugins","plugin","find","doc","Parser","file","assertParser","newable","Compiler","assertCompiler","assertNode","runSync","complete","assertDone","processSync","destination","transformer","executor","pipeline","contents","asyncName","chunks","subcontent","eventIndex","stream","entered","adjust","startPositions","_tokenizer","contentType","childEvents","jumps","gaps","defineSkip","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","lineIndex","otherIndex","otherEvent","subevents","more","_container","_movePreviousLineEndings","initializeFactory","createResolver","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","bufferIndex","tabs","_index","_bufferIndex","miniflat","extension","hook","right","existing","extensions","asciiDigit","asciiControl","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","seen","marker","atFirstTitleBreak","atTitleBreak","titleEscape","thematicBreak","sequence","step","subresult","grandparents","toResult","handlers","passThrough","returnNode","unknownHandler","unknown","augment","ordered","wrap","footnoteOrder","subtype","referenceType","suffix","alt","xtend","proto","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","types","checksLength","check","xmlLang","xmlBase","xmlSpace","caseInsensitiveTransform","xmlnsxlink","xmlnsXLink","caseSensitiveTransform","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","whiteSpace","lastIndex","padLeft","padRight","safeOptions","handle","peek","_compiled","parseSelector","spaces","commas","defaultTagName","createAdjustMap","selector","isChildren","addProperty","parsePrimitive","parsePrimitives","positiveNumber","Number","PositionTrackingPreprocessorMixin","currentAttrLocation","ctLoc","_getCurrentLocation","_attachCurrentAttrLocationInfo","orig","methods","modeName","isEol","lineStartPos","droppedBufferSize","prevPos","reduction","toPrimitive","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","lua","jsx","javascript","braces","spread","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","turtle","trig","refractorBasic","vbnet","yaml","anchorOrAlias","plainKey","createValuePattern","scalar","datetime","important","yml","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","on","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","_Component2","onUpdate","observedBits","_proto2","contextTypes","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_slicedToArray2","_react","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_ansiToReact","_reactMarkdown","_remarkGfm","_remarkMath","_rehypeKatex","_reactSyntaxHighlighter","_hljsStyles","WeakMap","cacheBabelInterop","cacheNodeInterop","BlockSource","htmlContent","executionCount","metadata","cell","_useState","prevDisplay","display","contentHeight","_useState2","newDisplay","codeBlockStyles","hljsStyle","lineNumberContainerStyle","lineNumberStyle","codeContainerStyle","showLineNumbers","vs","codeTagProps","fontFamily","fontSize","customStyle","margin","padding","boxSizing","background","overflow","newSource","replaceAll","remarkPlugins","rehypePlugins","highlighted","BlockOutput","outputs","_useState3","_useState4","contentRef","maxHeight","boxShadow","resize","output_type","output_data","output_metadata","justifyContent","mediaAlign","dangerouslySetInnerHTML","__html","output_traceback","JupyterViewer","DISPLAYS","_useState5","clickCellIndex","_useState6","rawIpynb","onMouseDown","displaySource","displayOutput","center","_default","low","objectWithoutPropertiesLoose","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","assertThisInitialized","_getPrototypeOf","nodeToString","classListItem","ignoreMissing","VFileMessage","place","origin","ruleId","fatal","note","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileURLOrPath","urlToPath","URL","protocol","hostname","third","decodeURIComponent","getPathFromURLPosix","VFile","messages","stored","includes","assertNonEmpty","assertPart","stem","encoding","fail","middleware","_len3","_key3","fnExpectsCallback","exception","_len4","_key4","fns","middlewareIndex","_len2","_key2","middelware","attacher","POSITIVE_INFINITY","isPlainObj","looksLikeAVFile","includeImageAlt","combineExtensions","syntaxExtension","asciiHexDigit","asciiPunctuation","asciiAtext","contentStart","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","containerState","continuation","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","flow","flowContinue","writeToChild","eof","disable","blankLine","subtokenize","_isInFirstContentOfListItem","breaks","contentEnd","continuationConstruct","contentContinue","prefixed","flowInitial","afterConstruct","createTokenizer","initialize","columnStart","resolveAllConstructs","consumed","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","expectedCode","startIndex","startBufferIndex","endIndex","endBufferIndex","view","sliceChunks","chunkIndex","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","def","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","initialSize","kind","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","setextUnderline","paragraph","closingSequence","closingSequenceEnd","heading","htmlBlockNames","htmlRawNames","htmlFlow","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","meta","characterReference","numeric","decodeEntity","characterEscape","lineEnding","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","fenceOpenInside","headingBreak","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","gap","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","stringifyPosition","fromMarkdown","transforms","canContainEols","autolink","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlowData","htmlText","htmlTextData","image","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","listStack","resume","setData","getData","prepareList","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","depth","checked","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","remarkParse","castFactory","propsFactory","clean","footnoteReference","revert","listItemLoose","blockquote","break","footnote","footnoteById","no","dangerous","imageReference","inlineCode","linkReference","listLoose","wrapped","disabled","root","table","rows","align","row","out","toml","ignore","footnoteDefinition","allowDangerousHtml","hName","hProperties","hChildren","toHast","foot","listItems","backReference","footer","remarkRehype","bridge","mutate","acceptcharset","classname","htmlfor","httpequiv","abbr","accept","acceptCharset","accessKey","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoComplete","autoFocus","autoPlay","charSet","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","defer","dir","dirName","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","hidden","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","isMap","itemId","itemProp","itemRef","itemScope","itemType","loading","loop","manifest","maxLength","method","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","ping","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rowSpan","sandbox","scope","scoped","seamless","selected","shape","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","tabIndex","translate","typeMustMatch","useMap","aLink","archive","axis","bgColor","borderColor","bottomMargin","cellPadding","cellSpacing","charOff","classId","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","profile","rev","rightMargin","rules","scrolling","standby","summary","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","security","unselectable","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","defaultAction","descent","diffuseConstant","direction","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","z","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","protocols","hastToReact","tableElements","childrenToReact","childIndex","toReact","skipHtml","parentSchema","listDepth","components","Fragment","ReactIs","isValidElementType","linkTarget","transformLinkUri","inline","level","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","_unused","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","hastNode","uri","colon","arrayOf","subvalue","buttonTypes","core","isProperties","finalResult","webNamespaces","ast","sourceCodeLocation","quirksMode","loc","indices","toPoint","toOffset","endTag","verbose","opening","closing","isFile","mathml","toH","react","_isVue","vue","vd","vdom","hyperscript","addAttribute","subprop","invalid","zwitch","p5","patch","htmlVoidElements","endTagToken","parseOptions","raw","resetTokenizer","createParse5Location","locationTracker","lastGapPos","lastCharPos","gapStack","lastChunkWritten","stitches","stitch","fromParse5","documentMode","mock","rehypeRaw","StrictMode","Profiler","Suspense","for","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","D","E","isReactComponent","F","isPureReactComponent","H","__self","__source","J","$$typeof","_owner","L","M","N","escape","O","K","Q","_status","_result","R","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","only","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","_payload","_init","useDebugValue","useLayoutEffect","useReducer","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","ownerDocument","eb","db","fb","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","gridArea","sb","tb","ub","menuitem","area","br","embed","hr","img","keygen","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","Ad","screenX","screenY","clientX","clientY","pageX","pageY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","ce","de","ee","fe","ge","he","ie","le","date","email","month","password","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","Ne","HTMLIFrameElement","contentWindow","Oe","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","ke","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","querySelectorAll","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","timeout","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","onreadystatechange","installReadyStateChangeImplementation","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","browser","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","chdir","umask","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","instanceOf","objectOf","checkPropTypes","LinkElement","_temp","FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","isObjectLike","isSymbol","isBinary","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","cancelEvent","ButtonElement","ElementWrapper","defaultScroller","_React$Component2","_this3","jsxs","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","__importDefault","mod","__importStar","anser_1","escape_carriage_1","convertBundleIntoReact","linkify","useClasses","bundle","backgroundColor","createStyle","classNames","decoration","createClass","linkRegex","pre","fixBackspace","txt","tmp","use_classes","escapeCarriageReturn","ansiToJson","remove_empty","ansiToJSON","ANSI_COLORS","Anser","fg_truecolor","bg_truecolor","bright","escapeForHtml","ansiToHtml","ansiToText","PALETTE_COLORS","levels","_r","_g","_b","clearLine","raw_text_chunks","first_chunk","color_chunks","processChunk","processChunkJson","isEmpty","was_processed","nums","num_str","is_foreground","palette_index","klass","setupPalette","jsonChunk","render_data","fragments","insert","findLongestString","longest","escapeSingleLineSafe","escapeCarriageReturnSafe","idx","uriTransformer","hastChildrenToReact","VMessage","VMessagePrototype","parseOrigin","invoked","siblings","safeFromInt","initializer","inspectResult","inspectConstruct","subcontinued","inspectStart","inspectContinue","inspectLess","inspectDone","interruptible","inspectFlowEnd","lazyFlowConstruct","inspectLazy","flowEnd","continueFlow","documentAfterPeek","prefixSize","text$1","headingAtx","labelStartImage","labelStartLink","42","43","48","49","50","51","52","53","54","55","56","57","62","91","60","61","95","96","126","92","93","_interopDefaultLegacy","decodeEntity__default","indentedContentConstruct","mdast2hast","allowDangerousHTML","deprecationWarningIssued","onfootnotedefinition","generated","getter","normalise","getterFactory","ondefinition","gather","alignLength","onelement","node_","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","lineno","updatePosition","lines","Position","whitespace","errorsList","msg","filename","silent","comments","ret","decl","decls","warningIssued","toMarkdown","blockTokenizers","visitors","combine","strikethrough","tasklist","www","w2","w3","dot","domain","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","single","singleTilde","removeRemainingSequences","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","setextUnderlineMini","createSpace","rowStartDelimiter","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","atDelimiterRowBreak","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","tableContinue","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","tableBodyContinue","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","spaceFactory","tasklistCheck","spaceThenNonSpace","autolinkLiteral","taskListItem","ccount","findAndReplace","enterLiteralAutolinkValue","findUrl","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","splitUrl","findEmail","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","handlerFactory","pairs","subhandler","toExpression","toFunction","toPairs","ignored","grandparent","enterCell","tableData","tableHeader","tableRow","exitCheck","taskListCheckValueChecked","taskListCheckValueUnchecked","firstParaghraph","unsafe","inConstruct","notInConstruct","phrasing","handleDelete","defaultInlineCode","markdownTable","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","subexit","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","matrix","patternCompile","cells","columnIndex","columnLength","largest","delimiterStart","delimiterEnd","alignments","defaultStringLength","rowIndex","rowLength","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","toAlignment","trailingWhitespace","defaultListItem","bullet","checkBullet","listItemIndent","checkListItemIndent","incrementListMarker","indentLines","blank","eol","metaOpen","tokenizeClosingFence","exitMathData","mathFlow","mathFlowFenceMeta","mathText","mathFlowFence","mathFlowValue","mathTextData","math","fence","streak","safe","inlineMath","pad","expected","maximum","positions","infos","patternInScope","numerical","escapeBackslashes","whole","listInScope","none","katex","renderToString","toText","throwOnError","displayMode","parseHtml","__webpack_require__","__webpack_exports__","katex_webpack","ParseError","lexer","underlined","src_ParseError","uppercase","ESCAPE_LOOKUP","\"","ESCAPE_REGEX","getBaseElem","utils","elem","deflt","setting","defaultIfUndefined","hyphenate","isCharacterBox","baseElem","protocolFromUrl","Settings","leqno","fleqn","errorColor","macros","minRuleThickness","colorIsTextColor","trust","maxSize","maxExpand","globalGroup","reportNonstrict","errorCode","errorMsg","useStrictBehavior","Style","cramped","_sup","sub","_sub","fracNum","_fracNum","fracDen","_fracDen","cramp","_cramp","_text","isTight","src_Style","DISPLAY","TEXT","SCRIPTSCRIPT","scriptData","blocks","allBlocks","supportedCodepoint","codepoint","hLinePad","doubleleftarrow","doublerightarrow","leftarrow","leftbrace","leftbraceunder","leftgroup","leftgroupunder","leftharpoon","leftharpoonplus","leftharpoondown","leftharpoondownplus","lefthook","leftlinesegment","leftmapsto","leftToFrom","longequal","midbrace","midbraceunder","oiintSize1","oiintSize2","oiiintSize1","oiiintSize2","rightarrow","rightbrace","rightbraceunder","rightgroup","rightgroupunder","rightharpoon","rightharpoonplus","rightharpoondown","rightharpoondownplus","righthook","rightlinesegment","rightToFrom","twoheadleftarrow","twoheadrightarrow","tilde1","tilde2","tilde3","tilde4","vec","widehat1","widehat2","widehat3","widehat4","widecheck1","widecheck2","widecheck3","widecheck4","baraboveleftarrow","rightarrowabovebar","baraboveshortleftharpoon","rightharpoonaboveshortbar","shortbaraboveleftharpoon","shortrightharpoonabovebar","DocumentFragment","maxFontSize","hasClass","toNode","frag","toMarkup","cls","initNode","getColor","_toNode","_toMarkup","Span","Anchor","Img","_proto3","iCombinations","SymbolNode","italic","skew","scriptFromCodepoint","_proto4","marginRight","needsSpan","SvgNode","_proto5","PathNode","pathName","_proto6","LineNode","_proto7","assertSymbolDomNode","fontMetricsData","sigmasAndXis","slant","stretch","shrink","quad","extraSpace","num1","num2","num3","denom1","denom2","sup1","sup2","sup3","sub1","sub2","supDrop","subDrop","delim1","delim2","axisHeight","defaultRuleThickness","bigOpSpacing1","bigOpSpacing2","bigOpSpacing3","bigOpSpacing4","bigOpSpacing5","sqrtRuleThickness","ptPerEm","doubleRuleSep","arrayRuleWidth","fboxsep","fboxrule","extraCharacterMap","getCharacterMetrics","font","metrics","fontMetricsBySizeIndex","ATOMS","NON_ATOMS","src_symbols","defineSymbol","acceptUnicodeChar","symbols_text","ams","accent","bin","symbols_close","mathord","op","symbols_open","punct","textord","mathTextSymbols","textSymbols","_ch","letters","_i2","_ch2","wideChar","_i3","_ch3","_i4","_ch4","extraLatin","_i5","_ch5","wideLatinLetterData","wideNumeralData","sizeStyleMap","sizeMultipliers","sizeAtStyle","Options","textSize","phantom","fontShape","sizeMultiplier","_fontMetrics","BASESIZE","havingStyle","havingCrampedStyle","havingSize","havingBaseStyle","wantSize","havingBaseSizing","withColor","withPhantom","withFont","withTextFontFamily","withTextFontWeight","withTextFontShape","sizingClasses","oldOptions","baseSizingClasses","fontMetrics","sizeIndex","cssEmPerMu","getGlobalMetrics","src_Options","ptPerUnit","relativeUnit","validUnit","unit","calculateSize","sizeValue","unitOptions","lookupSymbol","fontName","makeSymbol","symbolNode","canCombine","_style","sizeElementFromChildren","makeSpan","makeSvgSpan","makeFragment","retrieveTextFontName","baseFontName","fontMap","variant","svgData","buildCommon","mathsym","makeLineSpan","thickness","borderBottomWidth","makeAnchor","anchor","wrapFragment","makeVList","_getVListChildrenAndD","positionType","oldChildren","_depth","currPos","bottom","positionData","getVListChildrenAndDepth","pstrutSize","pstrut","realChildren","minPos","maxPos","_child","_elem","wrapperClasses","wrapperStyle","childWrap","marginLeft","vlist","emptySpan","depthStrut","topStrut","vtable","makeOrd","isFont","fontOrFamily","_wideCharacterFont","codePoint","wideCharacterFont","wideFontName","wideFontClass","fontClasses","fontData","fontClass","boldsymbol","_fontName","_fontName3","_fontName2","makeGlue","measurement","rule","staticSvg","_svgData$value","svgNode","tryCombineChars","thinspace","mediumspace","thickspace","spacings","mord","mop","mbin","mrel","minner","mopen","mclose","mpunct","tightSpacings","_functions","_htmlGroupBuilders","_mathmlGroupBuilders","defineFunction","htmlBuilder","mathmlBuilder","numArgs","argTypes","allowedInArgument","allowedInText","allowedInMath","numOptionalArgs","infix","primitive","defineFunctionBuilders","normalizeArgument","ordargument","buildHTML_makeSpan","binLeftCanceller","binRightCanceller","styleMap","DomEnum","buildExpression","isRealGroup","surrounding","buildGroup","glueOptions","dummyPrev","dummyNext","isRoot","traverseNonSpaceNodes","prevType","getTypeOfDomTree","partialGroup","checkPartialGroup","nonspace","getOutermostNode","makeNullDelimiter","moreClasses","baseOptions","groupNode","multiplier","buildHTMLUnbreakable","strut","verticalAlign","buildHTML","eqnNum","tagChild","nobreak","htmlNode","newDocumentFragment","MathNode","TextNode","mathMLTree","SpaceNode","makeText","makeRow","getVariant","buildMathML_buildExpression","isOrdgroup","buildMathML_buildGroup","lastGroup","_group","_lastGroup$children","_lastGroup$children2","_lastGroup$children3","buildExpressionRow","buildMathML","texExpression","isDisplayMode","forMathmlOnly","wrapper","semantics","wrapperClass","optionsFromSettings","displayWrap","stretchyCodePoint","widehat","widecheck","widetilde","utilde","overleftarrow","underleftarrow","xleftarrow","overrightarrow","underrightarrow","xrightarrow","underbrace","overbrace","overgroup","undergroup","overleftrightarrow","underleftrightarrow","xleftrightarrow","Overrightarrow","xRightarrow","overleftharpoon","xleftharpoonup","overrightharpoon","xrightharpoonup","xLeftarrow","xLeftrightarrow","xhookleftarrow","xhookrightarrow","xmapsto","xrightharpoondown","xleftharpoondown","xrightleftharpoons","xleftrightharpoons","xtwoheadleftarrow","xtwoheadrightarrow","xlongequal","xtofrom","xrightleftarrows","xrightequilibrium","xleftequilibrium","katexImagesData","overlinesegment","underlinesegment","stretchy","topPad","bottomPad","totalHeight","_buildSvgSpan_","viewBoxWidth","viewBoxHeight","_height","numChars","imgIndex","minWidth","widthClasses","aligns","spans","paths","_minWidth","_viewBoxHeight","_height2","numSvgChildren","_path","_svgNode","_span","buildSvgSpan_","assertNodeType","assertSymbolNodeType","typedNode","checkSymbolNodeType","grp","supSubGroup","assertSpan","isShifty","baseChar","accentBody","accentBelow","clearance","isStretchy","accentFull","accentWrap","accentNode","NON_STRETCHY_ACCENT_REGEX","funcName","innerGroup","kern","paddedNode","optArgs","below","lowerGroup","newOptions","upperGroup","arrowPrefix","arrowBody","arrowShift","upperShift","lowerShift","arrowNode","upperNode","lowerNode","_lowerNode","cdArrowFunctionName","isStartOfArrow","cdArrow","arrowChar","labels","callFunction","bareArrow","family","arrowGroup","color_htmlBuilder","elements","color_mathmlBuilder","breakOnTokenText","gullet","parseExpression","newLine","marginTop","globalMap","checkControlSequence","tok","letCommand","noexpand","unexpandable","isExpandable","consumeSpaces","fetch","parseFunction","popToken","delimiters","future","consumeArg","expandTokens","getRHS","pushToken","getMetrics","styleWrap","delim","toStyle","delimSizeMultiplier","centerSpan","makeLargeDelim","mathrmSize","makeGlyphSpan","sizeClass","makeInner","toFixed","innerPath","lap","verts","doubleVerts","makeStackedDelim","heightTotal","topMetrics","topHeightTotal","repeatMetrics","repeatHeightTotal","bottomMetrics","bottomHeightTotal","middleHeightTotal","middleFactor","middleMetrics","minHeight","realHeightTotal","innerHeight","_innerHeight","emPad","sqrtSvg","sqrtName","extraViniculum","sqrtMain","sqrtSize1","sqrtSize2","sqrtSize3","sqrtSize4","sqrtTall","sqrtPath","pathNode","stackLargeDelimiters","stackAlwaysDelimiters","stackNeverDelimiters","sizeToMaxHeight","stackNeverDelimiterSequence","stackAlwaysDelimiterSequence","stackLargeDelimiterSequence","delimTypeToFont","traverseSequence","heightDepth","makeCustomSizedDelim","delimType","makeSmallDelim","advanceWidth","spanHeight","texHeight","ruleWidth","delimiterExtend","maxDistFromAxis","delimiterSizes","mclass","checkDelimiter","symDelim","assertParsed","leftrightDepth","expect","rightColor","leftDelim","rightDelim","innerDepth","hadMiddle","isMiddle","colorOptions","leftNode","rightNode","middleDelim","textNode","middleNode","enclose_htmlBuilder","imgShift","isSingleChar","lineWeight","angleHeight","paddingLeft","ruleThickness","borderStyle","borderWidth","borderTopWidth","borderRightWidth","enclose_mathmlBuilder","thk","_environments","defineEnvironment","getHLines","hlineInfo","nxt","validateAmsEnvironmentContext","envName","parseArray","hskipBeforeAndAfter","addJot","arraystretch","colSeparationType","addEqnNum","singleRow","emptySingleRow","maxNumCols","beginGroup","expandMacroAsText","rowGaps","hLinesBeforeRow","endGroup","nextToken","parseSizeGroup","dCellStyle","array_htmlBuilder","nr","hlines","pt","arraycolsep","baselineskip","jot","arrayskip","arstrutHeight","arstrutDepth","setHLinePos","hlinesInGap","isDashed","inrow","outrow","elt","rowGap","colSep","colDescrNum","colDescriptions","eqnNumSpans","rw","eqnTag","colDescr","firstSeparator","separator","lineType","borderRightStyle","sepwidth","pregap","_shift","postgap","dashes","vListElems","hline","lineShift","eqnNumCol","alignMap","array_mathmlBuilder","tbl","glue","menclose","columnLines","prevTypeWasAlign","iStart","iEnd","_cols","rowLines","alignedHandler","numMaths","separationType","numCols","emptyGroup","arg0","isAligned","styling","curMaths","nde","colAlign","parsedRows","endChar","rowNodes","labelNum","inLabel","wrappedArrow","parseCD","src_environments","nameGroup","_parser$parseArgument","parseArguments","_args","endNameToken","mclass_makeSpan","mclass_htmlBuilder","mclass_mathmlBuilder","lspace","rspace","binrelClass","atom","baseArg","shiftedArg","baseOp","limits","alwaysHandleSupSub","parentIsSupSub","suppressBaseShift","supsub","font_htmlBuilder","font_mathmlBuilder","fontAliases","adjustStyle","originalStyle","genfrac_htmlBuilder","nstyle","dstyle","numerm","numer","hStrut","dStrut","ruleSpacing","numShift","denomShift","frac","delimSize","denomm","denom","hasBarLine","barSize","midShift","candidateClearance","genfrac_mathmlBuilder","isDisplay","withDelims","leftOp","rightOp","replaceWith","stylArray","delimFromValue","delimString","barNode","isBlank","styl","textOrd","assert","horizBrace_htmlBuilder","braceBody","isOver","vSpan","command","formatUnsupportedCmd","trustContext","keyVal","sizeData","totalheight","mathFunction","muUnit","dimension","alignment","fix","outerMode","switchMode","chooseMathStyle","scriptscript","assembleSupSub","supGroup","subGroup","baseShift","finalGroup","subIsSingleCharacter","_bottom","spacer","noSuccessor","op_htmlBuilder","hasLimits","large","stash","oval","op_mathmlBuilder","singleCharBigOps","fName","singleCharIntegrals","_macros","defineMacro","operatorname_htmlBuilder","childText","sizingGroup","isAllString","word","semisimple","amount","sizeFuncs","smashHeight","smashDepth","tbArg","smashedNode","theta","phi","lineClearance","minDelimiterHeight","_delimiter$sqrtImage","delimDepth","rootm","toShift","rootVList","rootVListWrap","styling_styleMap","newStyle","htmlBuilderDelegate","builderDelegate","supm","subm","minSupShift","valueBase","valueSup","valueSub","supShift","subShift","_newOptions","isOiint","maxWidth","psi","vlistElem","_vlistElem","isBrace","_base2","_base","defaultVariant","cssSpace","regularSpace","ord","padNode","textFontFamilies","textFontWeights","textFontShapes","optionsWithFont","makeVerb","star","src_functions","SourceLocation","second","treatAsRelax","endToken","combiningDiacriticalMarksEndRegex","combiningDiacriticalMarkString","Lexer","tokenRegex","catcodes","setCatcode","lex","nlIndex","Namespace","builtins","globalMacros","undefStack","undefs","undef","endGroups","src_macros","expandOnce","consumeArgs","digitToNumber","digit","newcommand","existsOK","nonexistsOK","exists","isDefined","argText","expandNextToken","dotsByToken","thedots","expandAfterFuture","spaceAfterDots","latexRaiseA","implicitCommands","MacroExpander","expansionCount","feed","newMode","pushTokens","_this$stack","scanArgument","isOptional","_this$consumeArg","_this$consumeArg2","delims","isDelimited","expandableOnly","topToken","expansion","_getExpansion","_tokens","expanded","expandMacro","oldStackLength","catcode","stripped","bodyLexer","unicodeAccents","unicodeSymbols","breakOnInfix","endOfExpression","parseAtom","formLigatures","handleInfixNodes","overIndex","numerNode","denomNode","numerBody","denomBody","handleSupSubscript","symbolToken","parseGroup","textordArray","superscript","subscript","prime","primes","funcData","_this$parseArguments","totalArgs","argType","parseGroupOfType","parseColorGroup","parseUrlGroup","parseArgumentGroup","parseStringGroup","argToken","parseRegexGroup","firstToken","lastToken","groupEnd","parseSymbol","nucleus","src_parseTree","toParse","baseNode","renderToDomTree","renderError","katexNode","mathMLNode","_htmlNode","buildTree","__parse","__renderToDomTree","__renderToHTMLTree","buildHTMLTree","__setFontMetrics","__defineSymbol","__defineMacro","__domTree","Parser5","errors","fatalities","2","1","replacer","emitParseErrors","encodedChar","description","parse5","vfileLocation","public","system","offsetToPoint","bufferWaterline","_addGap","_processSurrogate","_checkForProblematicCharacters","Uint16Array","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","_indexOf","_isInTemplate","_updateCurrentElement","oldElement","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","_getNoahArkConditionCandidates","candidates","neAttrsLength","neTagName","neNamespaceURI","elementAttrs","_ensureNoahArkCondition","cLength","neAttrs","neAttrsMap","neAttr","cAttr","NOAH_ARK_CAPACITY","ELEMENT_ENTRY","bookmarkIdx","LocationInfoTokenizerMixin","LocationInfoOpenElementStackMixin","lastStartTagToken","lastFosterParentingLocation","_setStartLocation","setNodeSourceCodeLocation","_setEndLocation","closingToken","getNodeSourceCodeLocation","endLoc","updateNodeSourceCodeLocation","tokenizerMixin","onItemPop","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","tmplContent","hasFosterParent","textNodeIdx","ErrorReportingMixinBase","ErrorReportingTokenizerMixin","locBeforeToken","ErrorReportingPreprocessorMixin","preprocessorMixin","lastErrOffset","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","endLocation","defaults","optObj","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","serializeContent","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","startTagToken","adjustedAttrName","adjustedAttrEntry","adjustedTagName","isHtmlIntegrationPoint","isMathMLTextIntegrationPoint","findAfter","blockOrCaption","inferWhiteSpace","collectText","breakBefore","breakAfter","innerTextCollection","searchLineFeeds","searchTabOrSpaces","notRendered","collectElement","collectPreText","trimAndcollapseSpacesAndTabs","inherit","tagNameFactory","convertAll","callFactory","deepFreeze","isFrozen","deepFreezeEs6","Response","isMatchIgnored","ignoreMatch","escapeHTML","original","objects","emitsWrappingTags","HTMLRenderer","parseTree","walk","sublanguage","TokenTree","toJSON","builder","_walk","_collapse","TokenTreeEmitter","BACKREF_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","BACKSLASH_ESCAPE","APOS_STRING_MODE","illegal","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","MATCH_NOTHING_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","on:begin","resp","END_SAME_AS_BEGIN","_beginMatch","on:end","skipIfhasPrecedingDot","response","beginKeywords","__beforeBegin","compileIllegal","_parent","either","compileMatch","compileRelevance","COMMON_KEYWORDS","DEFAULT_KEYWORD_CLASSNAME","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keywordList","scoreForKeyword","providedScore","commonKeyword","compileLanguage","langRe","case_insensitive","MultiRegex","matchIndexes","regexes","matchAt","addRule","countMatchGroups","terminators","matcherRe","regexps","numCaptures","findIndex","matchData","ResumableMultiRegex","multiRegexes","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","compilerExtensions","classNameAliases","compileMode","cmode","isCompiled","keywordPattern","$pattern","lexemes","keywordPatternRe","beginRe","endSameAsBegin","endsWithParent","endRe","terminatorEnd","illegalRe","variants","cachedVariants","dependencyOnParent","starts","expandOrCloneMode","mm","term","buildModeRegex","BuildVuePlugin","hljs","detectedLanguage","unknownLanguage","computed","autoDetect","autodetect","domProps","VuePlugin","Vue","mergeHTMLPlugin","originalStream","nodeStream","resultNode","processed","nodeStack","selectStream","attributeString","mergeStreams","_nodeStream","seenDeprecations","escape$1","inherit$1","NO_MATCH","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","noHighlightRe","languageDetectRe","tabReplace","useBR","shouldNotHighlight","codeOrlanguageName","optionsOrCode","fire","_highlight","codeToHighlight","keywordData","matchText","processBuffer","subLanguage","modeBuffer","continuations","processSubLanguage","buf","keywordRelevance","cssClass","processKeywords","startNewMode","endOfMode","matchPlusRemainder","lexeme","endsParent","doIgnore","resumeScanAtSamePosition","doBeginMatch","beforeCallbacks","skip","excludeBegin","returnBegin","doEndMatch","endMode","returnEnd","excludeEnd","lastMatch","processLexeme","textBeforeMatch","badRule","iterations","processContinuations","processedCount","illegalBy","sofar","languageSubset","plaintext","justTextHighlightResult","autoDetection","sorted","supersetOf","best","second_best","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","_class","blockLanguage","currentLang","resultLang","updateClassName","relavance","initHighlighting","wantsHighlight","highlightAll","aliasList","fixMarkup","highlightBlock","userOptions","initHighlightingOnLoad","languageDefinition","error$1","rawDefinition","unregisterLanguage","requireLanguage","upgradePluginAPI","vuePlugin","debugMode","safeMode","versionString","HLJS","formatter","EConstructor","FormattedError","eval","EvalError","RangeError","SyntaxError","fmt","argIndex","leadingZero","nextArg","slurpNumber","digits","vsprintf","printf","KEYWORD","v7_keywords","LITERAL","NUMBERS","STRINGS","DATE","COMMENTS","built_in","v7_system_constants","v8_system_sets_of_values","v8_shared_object","literal","v7_meta_keywords","ruleDeclaration","unexpectedChars","commentMode","ruleDeclarationMode","_hljs","HTTP_VERBS","AS3_REST_ARG_MODE","ID_REGEX","BAD_CHARS","VAR_DECLS","builtInTypeMode","objectHandleMode","genericMode","IP_ADDRESS","nomarkup","STRING","PARAMS","COMMENT_MODE_1","KEYWORDS","SUBST","TEMPLATE_STRING","PARAMS_CONTAINS","ARDUINO_KW","ARDUINO","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","_relevance_hints","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","strings","cPlusPlus","kws","lookahead","TAG_NAME_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","EMPHASIS","SHORTKEYS","BACKTICK_ESCAPE","VARIABLE","BRACED_VAR","HERE_DOC","QUOTE_STRING","ARITHMETIC","KNOWN_SHEBANG","FUNCTION","COMMENT_MODES","CHAR_STRING","PROCEDURE","EXPRESSIONS","SYMBOLSTART","SYMBOL_RE","globals","SYMBOL","COLLECTION","HINT","HINT_COL","KEY","LIST","DEFAULT_CONTAINS","GLOBAL","LITERALS","BUILT_INS","KEYWORDS$1","kw","JS_IDENT_RE","POSSIBLE_PARAMS_RE","COMMANDS","INT_SUFFIX","CRYSTAL_METHOD_RE","CRYSTAL_PATH_RE","CRYSTAL_KEYWORDS","EXPANSION","recursiveParen","Q_STRING","REGEXP","CRYSTAL_DEFAULT_CONTAINS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","IMPORTANT","HEXCOLOR","ATTRIBUTE_SELECTOR_MODE","keyframePosition","D_KEYWORDS","integer_re","escape_sequence_re","D_INTEGER_MODE","D_FLOAT_MODE","D_CHARACTER_MODE","D_STRING_MODE","D_NESTING_COMMENT_MODE","INLINE_HTML","BOLD","ITALIC","CONTAINABLE","BRACED_SUBST","BUILT_IN_TYPES","NULLABLE_BUILT_IN_TYPES","DIRECTIVE","CLASS","FILTER","DTS_REFERENCE","DTS_KEYWORD","DTS_LABEL","DTS_CELL_PROPERTY","DTS_NODE","ELIXIR_IDENT_RE","ELIXIR_KEYWORDS","LOWERCASE_SIGIL","UPCASE_SIGIL","ELIXIR_DEFAULT_CONTAINS","CONSTRUCTOR","RUBY_METHOD_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","BLOCK_STATEMENTS","BASIC_MODES","METHOD","OPTIONAL_NUMBER_SUFFIX","OPTIONAL_NUMBER_EXP","FUNCTION_DEF","TYPEPARAM","SYMBOLS","QSTR","ASSIGNMENT","COMMENT_WORD","DESCTEXT","AT_COMMENT_MODE","STRUCT_TYPE","PARSE_PARAMS","DEFINITION","inherits","BUILT_IN_REF","STRING_REF","FUNCTION_REF","FUNCTION_REF_PARAMS","GCODE_KEYWORDS","GCODE_CODE","GO_KEYWORDS","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","ANY_ID","IDENTIFIER_REGEX","anyNumberOfTimes","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","HELPER_PARAMETER","SUB_EXPRESSION","HASH","HELPER_PARAMETERS","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","PRAGMA","handlebars","VERSION","HEADERS_AND_BODY","VARIABLES","ARRAY","ANY_KEY","DOCTAGS","CONSTANTS","METHODS","TYPES","FUNCTION_NAME_IDENT_RE","decimalDigits","hexDigits","NUMERIC","JAVA_IDENT_RE","ANNOTATION","IDENT_RE$1","FRAGMENT","XML_TAG","isTrulyOpeningTag","afterMatchIndex","nextChar","hasClosingTag","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","SUBST_INTERNALS","SUBST_AND_COMMENTS","PARAMSBLOCK","ALLOWED_COMMENTS","VALUE_CONTAINER","VARIABLE_NAME_RE","DEFAULT","INTERPOLATION","INTERPOLATED_VARIABLE","COMMAND","MACROCALL","ANNOTATION_USE_SITE","KOTLIN_NUMBER_MODE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","LASSO_IDENT_RE","LASSO_ANGLE_RE","LASSO_CLOSE_RE","LASSO_KEYWORDS","HTML_COMMENT","LASSO_NOPROCESS","LASSO_START","LASSO_DATAMEMBER","LASSO_CODE","DOUBLE_CARET_VARIANTS","EVERYTHING_BUT_VERBATIM","BRACE_GROUP_NO_VERBATIM","ARGUMENT_BRACES","ARGUMENT_BRACKETS","SPACE_GOBBLER","ARGUMENT_M","ARGUMENT_O","ARGUMENT_AND_THEN","starts_mode","CSNAME","csname","BEGIN_ENV","envname","VERBATIM_DELIMITED_EQUAL","innerName","VERBATIM_DELIMITED_ENV","VERBATIM_DELIMITED_BRACES","PSEUDO_SELECTORS","PSEUDO_SELECTORS$1","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","AT_KEYWORDS","PARENS_MODE","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","AT_RULE_MODE","VAR_RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","IDENT","MEC","QUOTED","QUOTED_ATOM","TITLE1","TITLE2","SUBST_SIMPLE","LSL_STRINGS","LSL_NUMBERS","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","FUNC","TARGET","SYSTEM_SYMBOLS","BASE_NUMBER_RE","SYSTEM_SYMBOLS_SET","MESSAGES","brace","TRANSPOSE_RE","TRANSPOSE","ATOM","REGEX_MODIFIERS","PERL_KEYWORDS","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","PAIRED_RE","PERL_DEFAULT_CONTAINS","NIX_KEYWORDS","ANTIQUOTE","DEFINES","LANGUAGES","IDENTIFIER_RE","CLASS_KEYWORDS","SPECIAL_VARS","FUNCTIONS","OXYGENE_KEYWORDS","CURLY_COMMENT","PAREN_COMMENT","CURLY_SUBCOMMENT","COMMENT_MODE","DOLLAR_STRING","TYPES_RE","FUNCTIONS_RE","SQL_KW","SQL_BI","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","APOS_STRING","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","PS_USING","PS_ARGUMENTS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","PARENTED","LINE_COMMENT","BACKTICK_STRING","WS0","EQUAL_DELIM","WS_DELIM","DELIM","KEY_ALPHANUM","KEY_OTHER","DELIM_AND_VALUE","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","QML_IDENT_RE","ID_ID","QML_ATTRIBUTE","QML_OBJECT","beforeMatch","originalMode","RE_IDENT","RE_MODULE_IDENT","RE_OPERATOR","RE_OPERATOR_SPACED","RE_NUMBER","OPERATOR_MODE","LIST_CONTENTS_MODES","MODULE_ACCESS_CONTENTS","PARAMS_CONTENTS","FUNCTION_BLOCK_MODE","CONSTRUCTOR_MODE","PATTERN_MATCH_BLOCK_MODE","MODULE_ACCESS_MODE","IDENTIFIER","PROPERTY","STATEMENTS","NUM_SUFFIX","BUILTINS","SCHEME_IDENT_RE","SCHEME_SIMPLE_NUMBER_RE","QUOTED_IDENT","QUOTED_LIST","COMMON_CONTAINS","PSEUDO_ELEMENTS$1","PSEUDO_CLASSES$1","smali_instr_low_prio","VAR_IDENT_RE","CHAR","RESERVED_FUNCTIONS","COMBOS","exceptions","when","qualifyFn","reduceRelevancy","LOOKAHEAD_TAG_END","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","typeIdentifier","keywordAttributes","availabilityKeywords","WHITESPACE","BLOCK_COMMENT","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","KEYWORD_MODES","OPERATOR_GUARD","OPERATORS","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","MULTILINE_STRING","SINGLE_LINE_STRING","QUOTED_IDENTIFIER","IDENTIFIERS","GENERIC_ARGUMENTS","FUNC_PLUS_TITLE","GENERIC_PARAMETERS","FUNCTION_PARAMETERS","INIT_SUBSCRIPT","OPERATOR_DECLARATION","PRECEDENCEGROUP","submodes","URI_CHARACTERS","CONTAINER_STRING","TIMESTAMP","TCL_IDENT","TPID","TPLABEL","FUNCTION_NAMES","DECORATOR","swapMode","indx","tsLanguage","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DOC_COMMENT","BUILT_IN_FUNCTIONS","XL_KEYWORDS","DOUBLE_QUOTE_TEXT","IMPORT","FUNCTION_DEFINITION","arrayLikeToArray","_regeneratorRuntime","asyncIterator","toStringTag","define","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","rval","finish","delegateYield","legacy","decimal","hexadecimal","alphanumerical","option","indent","entityCharacters","namedEntity","terminated","following","warning","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","parseError","hexa","deci","prohibited","bases","disallowed","alphabetical","_self","uniqueId","plainTextGrammar","objId","deepClone","visited","parentElement","currentScript","scripts","getElementsByTagName","defaultActivation","redef","newToken","old","DFS","propertyType","highlightAllUnder","insertHighlightedCode","highlightedCode","Worker","worker","evt","immediateClose","tokenList","LinkedList","addAfter","matchGrammar","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","matchStr","removeFrom","removeRange","nestedRematch","highlightAutomaticallyCallback","WorkerGlobalScope","prolog","includedCdataInside","ssml","rss","atrule","addInlined","abap","abnf","coreRules","terminal","repetition","actionscript","ada","agda","al","antlr4","g4","apacheconf","refractorSql","apex","insertClassName","classNameInside","trigger","apl","statement","assignment","dfn","applescript","aql","refractorCpp","arduino","arff","asciidoc","quoted","interpreted","specifiers","admonition","callout","bold","copyFromAsciiDoc","adoc","asm6502","opcode","hexnumber","binarynumber","decimalnumber","refractorCsharp","aspnet","autohotkey","autoit","batch","bbcode","shortcode","birb","bison","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cil","clojure","cmake","inserted","cobol","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","refractorRuby","crystal","csp","cssExtras","selectorInside","combinator","hexcode","csv","cypher","relationship","dart","packagePrefix","dataweave","dax","dhall","coord","PREFIXES","unchanged","django","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","dockerfile","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","argument","elm","erb","erlang","refractorLua","etlua","excelFormula","sheet","factor","comment_inside","string_inside","combinators","arrToWordsRegExp","$false","firestoreSecurityRules","fortran","fsharp","ftl","FTL_EXPR","gcode","checksum","gdscript","gedcom","gherkin","pystring","feature","scenario","outline","git","deleted","glsl","gml","gamemakerlanguage","graphql","markdown","validTokens","currentIndex","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","stackHeight","groovy","haml","filters","all_filters","brackets","hbs","haxe","reification","hcl","heredoc","hlsl","hpkp","hsts","http","langs","httpLanguages","suffixTypes","getSuffixPattern","ichigojam","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","header","io","adverb","conjunction","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","javastacktrace","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","counter","tokenizeWithHooks","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","afterTokens","supportedLanguages","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","refractorJson","json5","jsonp","jsstacktrace","julia","keyman","kotlin","kt","kts","kumir","nonId","wrapId","kum","latex","funcPattern","insideEqu","equation","headline","tex","refractorPhp","latte","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","insideRaw","tagMatch","lisp","simple_form","par","endpar","interactive","defvar","defun","lambda","car","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","uuid","lolcode","makefile","createInline","tableLine","strike","codeLang","codeBlock","tempContainer","autoloader","loadLanguages","ele","matlab","mel","flag","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","getTextContent","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","nevod","quantifier","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","opencl","openqasm","qasm","oz","parigp","pascal","objectpascal","pascaligo","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","vstring","phpExtras","phpdoc","plsql","powerquery","pq","mscript","powershell","stringInside","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","branch","filter_pattern","puppet","datatype","pure","inlineLanguageRe","purebasic","asm","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","charset","charclass","backreference","alternation","rego","renpy","rpy","rip","roboconf","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","scss","refractorBash","shellSession","user","smali","smalltalk","smarty","smartyLitteralMode","sml","smlnj","solidity","sol","solutionFile","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","constraint","stylus","swift","refractorT4Templating","t4Cs","t4","createT4","refractorVbnet","t4Vb","refractorYaml","tap","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","insertKey","refractorJsx","tt2","twig","typoscript","tsconfig","unrealscript","category","uscript","query","authority","port","vala","unparsed","verilog","vhdl","vim","visualBasic","vba","warpscript","wasm","wiki","nowiki","wolfram","mathematica","wl","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","yang","zig","ALIGN","a11yDark","a11yLight","agate","anOldHope","androidstudio","arduinoLight","arta","ascetic","atelierCaveDark","atelierCaveLight","atelierDuneDark","atelierDuneLight","atelierEstuaryDark","atelierEstuaryLight","atelierForestDark","atelierForestLight","atelierHeathDark","atelierHeathLight","atelierLakesideDark","atelierLakesideLight","atelierPlateauDark","atelierPlateauLight","atelierSavannaDark","atelierSavannaLight","atelierSeasideDark","atelierSeasideLight","atelierSulphurpoolDark","atelierSulphurpoolLight","atomOneDarkReasonable","atomOneDark","atomOneLight","brownPaper","codepenEmbed","colorBrewer","darcula","dark","defaultStyle","docco","dracula","far","foundation","githubGist","github","googlecode","gradientDark","gradientLight","grayscale","gruvboxDark","gruvboxLight","hopscotch","hybrid","idea","irBlack","isblEditorDark","isblEditorLight","kimbieDark","kimbieLight","lightfair","lioshi","magula","monoBlue","monokaiSublime","monokai","nightOwl","nnfxDark","nnfx","nord","obsidian","ocean","paraisoDark","paraisoLight","pojoaque","qtcreatorDark","qtcreatorLight","railscasts","rainbow","routeros","schoolBook","shadesOfPurple","solarizedDark","solarizedLight","srcery","stackoverflowDark","stackoverflowLight","sunburst","tomorrowNightBlue","tomorrowNightBright","tomorrowNightEighties","tomorrowNight","tomorrow","vs2015","xcode","xt256","zenburn","classNameCombinations","getClassNameCombinations","arrLength","powerSetPermutations","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","startingClassName","astGenerator","newLineRegex","AllLineNumbers","codeString","codeStyle","_ref2$containerStyle","containerStyle","float","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","largestLineNumber","defaultLineNumberStyle","userSelect","customLineNumberStyle","createLineElement","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","wrapLongLines","flattenCodeTree","newTree","processLines","codeTree","wrapLines","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","splitValue","newChild","_line","newElem","_line2","_line3","defaultRenderer","isHighlightJs","defaultAstGenerator","_ref7$style","_ref7$customStyle","_ref7$codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","generatorClassName","preProps","defaultCodeValue","hasLanguage","checkForListedLanguage","getCodeTree","highlighter","lowlight","loader","isLanguageRegistered","languageLoaders","noAsyncLoadingLanguages","ReactAsyncHighlighter","isRegistered","loadLanguage","astGeneratorPromise","loadAstGenerator","isSupportedLanguage","highlightInstance","normalizeLanguage","_loadLanguage","_asyncToGenerator","_callee","languageLoader","_x","createAsyncLoadingHighlighter","oneC","createLanguageAsyncLoader","accesslog","angelscript","apache","arcade","armasm","aspectj","avrasm","awk","axapta","cLike","cal","capnproto","ceylon","clojureRepl","cos","crmsh","delphi","dns","dos","dsconfig","dts","dust","erlangRepl","excel","flix","gams","gauss","golo","gradle","hsp","htmlbars","hy","irpf90","isbl","jbossCli","juliaRepl","lasso","ldif","leaf","livecodeserver","lsl","maxima","mercury","mipsasm","mojolicious","nodeRepl","openscad","oxygene","parser3","pgsql","phpTemplate","pony","pythonRepl","reasonml","rib","rsl","ruleslanguage","scilab","stata","step21","subunit","taggerscript","thrift","tp","vbscriptHtml","vbscript","x86asm","xl","zephir","SyntaxHighlighter","_arrayLikeToArray"],"mappings":"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EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,KAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,EAAQ,MAC3Bs4E,EAAU18B,SAAS57C,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Q,CAAC,OAAS,OAAS,EAAG,EAAG,QACjC,MAAS,CAAC,EAAG,OAAS,EAAG,EAAG,QAC5B,MAAS,CAAC,EAAG,OAAS,EAAG,EAAG,QAC5B,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,EAAG,OAAS,OAAS,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,OAAS,EAAG,EAAG,QAClC,MAAS,CAAC,OAAS,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EAAG,MAChC,GAAM,EAAE,OAAS,OAAS,EAAG,EAAG,MAChC,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,OAAS,OAAS,EAAG,EAAG,MAC/B,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,OAAS,EAAG,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,GAAM,CAAC,EAAG,OAAS,EAAG,EAAG,MACzB,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,OAAS,OAAS,EAAG,EAAG,MAChC,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,EAAG,MAC1B,IAAO,CAAC,EAA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AAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,OAAK,UACL,OAAK,UACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,gBACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,OAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,UACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,qBACL,SAAK,qBACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,qBACL,SAAK,qBACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,eACL,SAAK,gBAgCH9lH,GAAsB,WACxB,SAASA,EAAOxtE,EAAO8hD,GACrBpvD,KAAK2kE,UAAO,EACZ3kE,KAAK0mL,YAAS,EACd1mL,KAAKovD,cAAW,EAChBpvD,KAAKksL,oBAAiB,EACtBlsL,KAAKkvL,eAAY,EAEjBlvL,KAAK2kE,KAAO,OAGZ3kE,KAAK0mL,OAAS,IAAI0Y,GAAc9xL,EAAO8hD,EAAUpvD,KAAK2kE,MAEtD3kE,KAAKovD,SAAWA,EAEhBpvD,KAAKksL,eAAiB,EAQxB,IAAIviG,EAAS7O,EAAOr2E,UA89BpB,OA59BAklF,EAAOwiG,OAAS,SAAgBpyH,EAAM3zC,GAKpC,QAJgB,IAAZA,IACFA,GAAU,GAGRpmB,KAAKsnL,QAAQvtH,OAASA,EACxB,MAAM,IAAIosG,EAAe,aAAepsG,EAAO,WAAa/5D,KAAKsnL,QAAQvtH,KAAO,IAAK/5D,KAAKsnL,SAGxFlhK,GACFpmB,KAAKomB,WAQTujE,EAAOvjE,QAAU,WACfpmB,KAAKkvL,UAAY,MASnBvlG,EAAO29F,MAAQ,WAKb,OAJsB,MAAlBtnL,KAAKkvL,YACPlvL,KAAKkvL,UAAYlvL,KAAK0mL,OAAOmY,mBAGxB7+L,KAAKkvL,WAOdvlG,EAAOsuG,WAAa,SAAoBsH,GACtCv/L,KAAK2kE,KAAO46H,EACZv/L,KAAK0mL,OAAOuR,WAAWsH,IAOzB51G,EAAOjhE,MAAQ,WACR1oB,KAAKovD,SAASw4G,aAGjB5nK,KAAK0mL,OAAOmI,aAMV7uL,KAAKovD,SAASo4G,kBAChBxnK,KAAK0mL,OAAOpf,OAAOtiK,IAAI,UAAW,eAGpC,IAEE,IAAI0jB,EAAQ1oB,KAAK2mL,iBAAgB,GAQjC,OANA3mL,KAAKmsL,OAAO,OAEPnsL,KAAKovD,SAASw4G,aACjB5nK,KAAK0mL,OAAOuI,WAGPvmK,EACP,QACA1oB,KAAK0mL,OAAOuX,cAehBt0G,EAAOg9F,gBAAkB,SAAyBka,EAAcpa,GAI9D,IAHA,IAAIpvH,EAAO,KAGE,CAEO,SAAdr3D,KAAK2kE,MACP3kE,KAAKqnL,gBAGP,IAAIoW,EAAMz9L,KAAKsnL,QAEf,IAAkD,IAA9CxsG,EAAOgmH,gBAAgBz9L,QAAQo6L,EAAI1jI,MACrC,MAGF,GAAI0sH,GAAoBgX,EAAI1jI,OAAS0sH,EACnC,MAGF,GAAIoa,GAAgB/D,GAAcW,EAAI1jI,OAAS+iI,GAAcW,EAAI1jI,MAAMyhH,MACrE,MAGF,IAAI2Y,EAAOn0L,KAAK+gM,UAAUta,GAE1B,IAAK0N,EACH,MACuB,aAAdA,EAAKnuK,MAIhBqxC,EAAKv5D,KAAKq2L,GAOZ,MAJkB,SAAdn0L,KAAK2kE,MACP3kE,KAAKghM,cAAc3pI,GAGdr3D,KAAKihM,iBAAiB5pI,IAW/BsyB,EAAOs3G,iBAAmB,SAA0B5pI,GAIlD,IAHA,IACIstH,EADAuc,GAAa,EAGRjjM,EAAI,EAAGA,EAAIo5D,EAAK96D,OAAQ0B,IAC/B,GAAqB,UAAjBo5D,EAAKp5D,GAAG+nB,KAAkB,CAC5B,IAAmB,IAAfk7K,EACF,MAAM,IAAI/6B,EAAe,oCAAqC9uG,EAAKp5D,GAAGo3B,OAGxE6rK,EAAYjjM,EACZ0mL,EAAWttH,EAAKp5D,GAAGu4L,YAIvB,IAAmB,IAAf0K,GAAoBvc,EAAU,CAChC,IAAIwc,EACAC,EACAC,EAAYhqI,EAAKl1D,MAAM,EAAG++L,GAC1BI,EAAYjqI,EAAKl1D,MAAM++L,EAAY,GA8BvC,OA3BEC,EADuB,IAArBE,EAAU9kM,QAAsC,aAAtB8kM,EAAU,GAAGr7K,KAC7Bq7K,EAAU,GAEV,CACVr7K,KAAM,WACN2+C,KAAM3kE,KAAK2kE,KACXtN,KAAMgqI,GAKRD,EADuB,IAArBE,EAAU/kM,QAAsC,aAAtB+kM,EAAU,GAAGt7K,KAC7Bs7K,EAAU,GAEV,CACVt7K,KAAM,WACN2+C,KAAM3kE,KAAK2kE,KACXtN,KAAMiqI,GAYH,CANU,kBAAb3c,EACK3kL,KAAKkmL,aAAavB,EAAU,CAACwc,EAAW9pI,EAAK6pI,GAAYE,GAAY,IAErEphM,KAAKkmL,aAAavB,EAAU,CAACwc,EAAWC,GAAY,KAK7D,OAAO/pI,GAQXsyB,EAAO43G,mBAAqB,SAA4BhjM,GAEtD,IAAIijM,EAAcxhM,KAAKsnL,QACnBr+J,EAASu4K,EAAYznI,KACzB/5D,KAAKomB,UACLpmB,KAAKqnL,gBAEL,IAAIxtH,EAAQ75D,KAAKyhM,WAAWljM,GAE5B,IAAKs7D,EACH,MAAM,IAAIssG,EAAe,yBAA2Bl9I,EAAS,IAAKu4K,GAGpE,OAAO3nI,GAQT8vB,EAAO2tG,qBAAuB,SAA8Bv9H,GAG1D,IAFA,IAAI2nI,EAAe,GAEVzjM,EAAI,EAAGA,EAAI87D,EAAKx9D,OAAQ0B,IAC/ByjM,EAAa5jM,KAAK,CAChBkoB,KAAM,UACN2+C,KAAM,OACN5K,KAAMA,EAAK97D,KAIf,IAAI6uL,EAAW,CACb9mK,KAAM,OACN2+C,KAAM3kE,KAAK2kE,KACXtN,KAAMqqI,GAQR,MANgB,CACd17K,KAAM,QACN2+C,KAAM3kE,KAAK2kE,KACX7kD,MAAO9f,KAAKovD,SAASi4G,WACrBhwG,KAAM,CAACy1H,KASXnjG,EAAOo3G,UAAY,SAAmBta,GAGpC,IAOIkb,EACAC,EARAx+L,EAAOpD,KAAKyhM,WAAW,OAAQhb,GAEnC,GAAkB,SAAdzmL,KAAK2kE,KACP,OAAOvhE,EAOT,OAAa,CAEXpD,KAAKqnL,gBAEL,IAAIoW,EAAMz9L,KAAKsnL,QAEf,GAAiB,aAAbmW,EAAI1jI,MAAoC,eAAb0jI,EAAI1jI,KAAuB,CAExD,GAAI32D,GAAsB,OAAdA,EAAK4iB,KAAe,CAC9B,IAAIuuK,EAAsB,aAAbkJ,EAAI1jI,KACjB32D,EAAKmxL,OAASA,EACdnxL,EAAKoxL,oBAAqB,MACrB,KAAIpxL,GAAsB,iBAAdA,EAAK4iB,KAKtB,MAAM,IAAImgJ,EAAe,6CAA8Cs3B,GAJnEr6L,EAAKoxL,qBACPpxL,EAAKmxL,OAAsB,aAAbkJ,EAAI1jI,MAMtB/5D,KAAKomB,eACA,GAAiB,MAAbq3K,EAAI1jI,KAAc,CAE3B,GAAI4nI,EACF,MAAM,IAAIx7B,EAAe,qBAAsBs3B,GAGjDkE,EAAc3hM,KAAKuhM,mBAAmB,oBACjC,GAAiB,MAAb9D,EAAI1jI,KAAc,CAE3B,GAAI6nI,EACF,MAAM,IAAIz7B,EAAe,mBAAoBs3B,GAG/CmE,EAAY5hM,KAAKuhM,mBAAmB,iBAC/B,IAAiB,MAAb9D,EAAI1jI,KAmCb,MAjCA,GAAI4nI,EACF,MAAM,IAAIx7B,EAAe,qBAAsBs3B,GAGjD,IAAIoE,EAAQ,CACV77K,KAAM,UACN2+C,KAAM3kE,KAAK2kE,KACX5K,KAAM,WAGJ+nI,EAAS,CAACD,GAGd,IAFA7hM,KAAKomB,UAEwB,MAAtBpmB,KAAKsnL,QAAQvtH,MAElB+nI,EAAOhkM,KAAK+jM,GACZ7hM,KAAKomB,UAKmB,MAAtBpmB,KAAKsnL,QAAQvtH,MACf+nI,EAAOhkM,KAAKkC,KAAKuhM,mBAAmB,gBAItCI,EAAc,CACZ37K,KAAM,WACN2+C,KAAM3kE,KAAK2kE,KACXtN,KAAMyqI,IAUZ,OAAIH,GAAeC,EAEV,CACL57K,KAAM,SACN2+C,KAAM3kE,KAAK2kE,KACXvhE,KAAMA,EACN4uD,IAAK2vI,EACLv5B,IAAKw5B,GAIAx+L,GAQXumF,EAAO49F,cAAgB,SAAuBd,EAAkBloL,GAE9D,IAAI82B,EAAQr1B,KAAKsnL,QACbl1I,EAAO/c,EAAM0kC,KACbgoI,EAAWjF,GAAc1qJ,GAE7B,IAAK2vJ,EACH,OAAO,KAKT,GAFA/hM,KAAKomB,UAED7nB,GAAiB,SAATA,IAAoBwjM,EAAS3mB,kBACvC,MAAM,IAAIjV,EAAe,iBAAmB/zH,EAAO,uBAAyB7zC,EAAO,OAASA,EAAO,IAAK82B,GACnG,GAAkB,SAAdr1B,KAAK2kE,OAAoBo9H,EAAS1mB,cAC3C,MAAM,IAAIlV,EAAe,uBAAyB/zH,EAAO,iBAAkB/c,GACtE,GAAkB,SAAdr1B,KAAK2kE,OAA8C,IAA3Bo9H,EAASzmB,cAC1C,MAAM,IAAInV,EAAe,uBAAyB/zH,EAAO,iBAAkB/c,GAG7E,IAAI2sK,EAAuBhiM,KAAK0zL,eAAethJ,EAAM2vJ,GACjD/7L,EAAOg8L,EAAqBh8L,KAC5B++K,EAAUid,EAAqBjd,QAEnC,OAAO/kL,KAAKkmL,aAAa9zI,EAAMpsC,EAAM++K,EAAS1vJ,EAAOoxJ,IAOvD98F,EAAOu8F,aAAe,SAAsB3nL,EAAMyH,EAAM++K,EAAS1vJ,EAAOoxJ,GACtE,IAAIjoL,EAAU,CACZmmL,SAAUpmL,EACV86D,OAAQr5D,KACRq1B,MAAOA,EACPoxJ,iBAAkBA,GAEhBr0I,EAAO0qJ,GAAcv+L,GAEzB,GAAI6zC,GAAQA,EAAKolB,QACf,OAAOplB,EAAKolB,QAAQh5D,EAASwH,EAAM++K,GAEnC,MAAM,IAAI5e,EAAe,2BAA6B5nK,IAQ1DorF,EAAO+pG,eAAiB,SAAwBthJ,EAChD2vJ,GACE,IAAIE,EAAYF,EAAS7mB,QAAU6mB,EAASxmB,gBAE5C,GAAkB,IAAd0mB,EACF,MAAO,CACLj8L,KAAM,GACN++K,QAAS,IAOb,IAHA,IAAI/+K,EAAO,GACP++K,EAAU,GAEL9mL,EAAI,EAAGA,EAAIgkM,EAAWhkM,IAAK,CAClC,IAAIikM,EAAUH,EAAS5mB,UAAY4mB,EAAS5mB,SAASl9K,GACjD0hM,EAAa1hM,EAAI8jM,EAASxmB,iBAE1BwmB,EAAStmB,WAAwB,MAAXymB,GAAqC,SAAlBH,EAAS/7K,MAAyB,IAAN/nB,GAAyB,MAAd8mL,EAAQ,MAC1Fmd,EAAU,aAGZ,IAAIh2J,EAAMlsC,KAAKmiM,iBAAiB,gBAAkB/vJ,EAAO,IAAK8vJ,EAASvC,GAEvE,GAAIA,EACF5a,EAAQjnL,KAAKouC,OACR,IAAW,MAAPA,EAIT,MAAM,IAAIi6H,EAAe,8CAHzBngK,EAAKlI,KAAKouC,IAOd,MAAO,CACLlmC,KAAMA,EACN++K,QAASA,IAQbp7F,EAAOw4G,iBAAmB,SAA0B5jM,EAAMynB,EAAM4vD,GAC9D,OAAQ5vD,GACN,IAAK,QACH,OAAOhmB,KAAKoiM,gBAAgBxsH,GAE9B,IAAK,OACH,OAAO51E,KAAKmvL,eAAev5G,GAE7B,IAAK,MACH,OAAO51E,KAAKqiM,cAAczsH,GAE5B,IAAK,OACL,IAAK,OACH,OAAO51E,KAAKsiM,mBAAmB1sH,EAAU5vD,GAE3C,IAAK,OAID,IAAI6zC,EAAQ75D,KAAKsiM,mBAAmB1sH,EAAU,QAC9C,OAAgB,MAAT/b,EAAgB,CACrB7zC,KAAM,UACN2+C,KAAM9K,EAAM8K,KACZtN,KAAM,CAACwC,GACP1vD,MAAO,QAEL,KAGR,IAAK,MAED,IAAIkrB,EAAQr1B,KAAKuiM,iBAAiB,MAAO3sH,GACzC,OAAgB,MAATvgD,EAAgB,CACrBrP,KAAM,MACN2+C,KAAM,OACNz8C,OAAQmN,EAAM0kC,MACZ,KAGR,IAAK,YAED,GAAI6b,EACF,MAAM,IAAIuwF,EAAe,2CAG3B,IAAIuY,EAAS1+K,KAAKyhM,WAAWljM,GAE7B,GAAc,MAAVmgL,EACF,MAAM,IAAIvY,EAAe,qBAAuB5nK,EAAMyB,KAAKsnL,SAG7D,OAAO5I,EAGX,IAAK,WACL,KAAK,KACL,UAAKhtK,EACH,OAAO1R,KAAKsiM,mBAAmB1sH,GAEjC,QACE,MAAM,IAAIuwF,EAAe,yBAA2B5nK,EAAMyB,KAAKsnL,WAQrE39F,EAAO09F,cAAgB,WACrB,KAA6B,MAAtBrnL,KAAKsnL,QAAQvtH,MAClB/5D,KAAKomB,WASTujE,EAAO44G,iBAAmB,SAA0B97G,EACpD7Q,GACE,IAAI4sH,EAAWxiM,KAAK0mL,OAAOgZ,aAAa9pH,GAExC,GAAgB,MAAZ4sH,EACF,OAAO,KAMT,IAHA,IACItT,EADAtqL,EAAM,GAGiC,SAAnCsqL,EAAYlvL,KAAKsnL,SAASvtH,MAChCn1D,GAAOsqL,EAAUn1H,KACjB/5D,KAAKomB,UAMP,OAHApmB,KAAKomB,UAELo8K,EAASzoI,KAAOn1D,EACT49L,GAST74G,EAAO84G,gBAAkB,SAAyB1nK,EAAO0rD,GAOvD,IALA,IAGIyoG,EAHAwT,EAAa1iM,KAAKsnL,QAClBqb,EAAYD,EACZ99L,EAAM,GAGiC,SAAnCsqL,EAAYlvL,KAAKsnL,SAASvtH,MAAkBh/B,EAAMxoB,KAAK3N,EAAMsqL,EAAUn1H,OAE7En1D,IADA+9L,EAAYzT,GACKn1H,KACjB/5D,KAAKomB,UAGP,GAAY,KAARxhB,EACF,MAAM,IAAIuhK,EAAe,WAAa1/E,EAAW,MAAQi8G,EAAW3oI,KAAO,IAAK2oI,GAGlF,OAAOA,EAAW31L,MAAM41L,EAAW/9L,IAOrC+kF,EAAOy4G,gBAAkB,SAAyBxsH,GAChD,IAAI1uC,EAAMlnC,KAAKuiM,iBAAiB,QAAS3sH,GAEzC,GAAW,MAAP1uC,EACF,OAAO,KAGT,IAAI5mC,EAAQ,yCAAyC2B,KAAKilC,EAAI6yB,MAE9D,IAAKz5D,EACH,MAAM,IAAI6lK,EAAe,mBAAqBj/H,EAAI6yB,KAAO,IAAK7yB,GAGhE,IAAIpnB,EAAQxf,EAAM,GASlB,MAPI,iBAAiBiS,KAAKuN,KAIxBA,EAAQ,IAAMA,GAGT,CACLkG,KAAM,cACN2+C,KAAM3kE,KAAK2kE,KACX7kD,MAAOA,IAQX6pE,EAAOwlG,eAAiB,SAAwBv5G,GAC9C,IAAI1uC,EACA2vJ,GAAU,EAUd,GARA72L,KAAK0mL,OAAOW,kBAKVngJ,EAHG0uC,GAA0C,MAA9B51E,KAAK0mL,OAAOgB,SAAS3tH,KAG9B/5D,KAAKuiM,iBAAiB,OAAQ3sH,GAF9B51E,KAAKyiM,gBAAgB,kDAAmD,SAM9E,OAAO,KAGJ7sH,GAAgC,IAApB1uC,EAAI6yB,KAAKx9D,SAIxB2qC,EAAI6yB,KAAO,MAEX88H,GAAU,GAGZ,IAAIv2L,EAAQ,6CAA6C2B,KAAKilC,EAAI6yB,MAElE,IAAKz5D,EACH,MAAM,IAAI6lK,EAAe,kBAAoBj/H,EAAI6yB,KAAO,IAAK7yB,GAG/D,IAAIue,EAAO,CACT/hC,SAAUpjB,EAAM,GAAKA,EAAM,IAE3B+0K,KAAM/0K,EAAM,IAGd,IAAK80K,GAAU3vH,GACb,MAAM,IAAI0gH,EAAe,kBAAoB1gH,EAAK4vH,KAAO,IAAKnuI,GAGhE,MAAO,CACLlhB,KAAM,OACN2+C,KAAM3kE,KAAK2kE,KACX3nE,MAAOyoD,EACPoxI,QAASA,IASbltG,EAAO04G,cAAgB,SAAuBzsH,GAC5C51E,KAAK0mL,OAAOzgB,MAAMu3B,WAAW,IAAK,IAElCx9L,KAAK0mL,OAAOzgB,MAAMu3B,WAAW,IAAK,IAElC,IAAIt2J,EAAMlnC,KAAKuiM,iBAAiB,MAAO3sH,GAKvC,GAJA51E,KAAK0mL,OAAOzgB,MAAMu3B,WAAW,IAAK,IAElCx9L,KAAK0mL,OAAOzgB,MAAMu3B,WAAW,IAAK,IAEvB,MAAPt2J,EACF,OAAO,KAOT,IAAItnC,EAAMsnC,EAAI6yB,KAAKv2C,QAAQ,mBAAoB,MAC/C,MAAO,CACLwC,KAAM,MACN2+C,KAAM3kE,KAAK2kE,KACX/kE,IAAKA,IAQT+pF,EAAO24G,mBAAqB,SAA4B1sH,EAAUjR,GAChE,IAAI69H,EAAWxiM,KAAK0mL,OAAOgZ,aAAa9pH,GAExC,GAAgB,MAAZ4sH,EACF,OAAO,KAGT,IAAIxK,EAAYh4L,KAAK2kE,KAEjBA,GAEF3kE,KAAKi4L,WAAWtzH,GAGlB3kE,KAAK0mL,OAAOmI,aACZ,IAAI9yJ,EAAa/7B,KAAK2mL,iBAAgB,EAAO,OAE7C3mL,KAAKmsL,OAAO,OAEZnsL,KAAK0mL,OAAOuI,WACZ,IAAIrtL,EAAS,CACXokB,KAAM,WACN2+C,KAAM3kE,KAAK2kE,KACXimD,IAAK43E,EAAS53E,IACdvzD,KAAMt7B,GAQR,OALI4oC,GAEF3kE,KAAKi4L,WAAWD,GAGXp2L,GAUT+nF,EAAO83G,WAAa,SAAoBljM,EACxCkoL,GACE,IAEI7kL,EAFA8gM,EAAa1iM,KAAKsnL,QAClBvtH,EAAO2oI,EAAW3oI,KAGtB,GAAa,MAATA,GAAyB,iBAATA,EAAyB,CAC3C/5D,KAAKomB,UACL,IAAIw8K,EAAoB,MAAT7oI,EAAe,IAAM,aACpC/5D,KAAK0mL,OAAOmI,aAEZ,IAAI9yJ,EAAa/7B,KAAK2mL,iBAAgB,EAAOic,GACzCD,EAAY3iM,KAAKsnL,QACrBtnL,KAAKmsL,OAAOyW,GAEZ5iM,KAAK0mL,OAAOuI,WACZrtL,EAAS,CACPokB,KAAM,WACN2+C,KAAM3kE,KAAK2kE,KACXimD,IAAKmyE,GAAehwL,MAAM21L,EAAYC,GACtCtrI,KAAMt7B,EAKN89J,WAAqB,iBAAT9/H,QAA2BroD,QAOzC,GAAc,OAFd9P,EAAS5B,KAAKunL,cAAcd,EAAkBloL,IAASyB,KAAK6iM,gBAE1B,OAAZ9oI,EAAK,KAAgBolI,GAAiBziM,eAAeq9D,GAAO,CAChF,GAAI/5D,KAAKovD,SAASs2G,aAChB,MAAM,IAAIS,EAAe,+BAAiCpsG,EAAM2oI,GAGlE9gM,EAAS5B,KAAKs3L,qBAAqBv9H,GACnC/5D,KAAKomB,UAIT,OAAOxkB,GAYT+nF,EAAOq3G,cAAgB,SAAuBnnI,GAG5C,IAFA,IAAIz9D,EAAIy9D,EAAMt9D,OAAS,EAEd0B,EAAI,EAAGA,EAAI7B,IAAK6B,EAAG,CAC1B,IAAIuG,EAAIq1D,EAAM57D,GAEVyH,EAAIlB,EAAEu1D,KAEA,MAANr0D,GAAmC,MAAtBm0D,EAAM57D,EAAI,GAAG87D,OACxB97D,EAAI,EAAI7B,GAA2B,MAAtBy9D,EAAM57D,EAAI,GAAG87D,MAC5BF,EAAM7xD,OAAO/J,EAAG,EAAG,CACjB+nB,KAAM,UACN2+C,KAAM,OACNimD,IAAKmyE,GAAehwL,MAAMvI,EAAGq1D,EAAM57D,EAAI,IACvC87D,KAAM,QAER39D,GAAK,IAELy9D,EAAM7xD,OAAO/J,EAAG,EAAG,CACjB+nB,KAAM,UACN2+C,KAAM,OACNimD,IAAKmyE,GAAehwL,MAAMvI,EAAGq1D,EAAM57D,EAAI,IACvC87D,KAAM,OAER39D,GAAK,IAIE,MAANsJ,GAAmB,MAANA,GAAcm0D,EAAM57D,EAAI,GAAG87D,OAASr0D,IACpDm0D,EAAM7xD,OAAO/J,EAAG,EAAG,CACjB+nB,KAAM,UACN2+C,KAAM,OACNimD,IAAKmyE,GAAehwL,MAAMvI,EAAGq1D,EAAM57D,EAAI,IACvC87D,KAAMr0D,EAAIA,IAEZtJ,GAAK,KAUXutF,EAAOk5G,YAAc,WACnB,IAAIC,EAAU9iM,KAAKsnL,QACfvtH,EAAO+oI,EAAQ/oI,KAEnB,GAAI,mBAAmBxnD,KAAKwnD,GAAO,CACjC/5D,KAAKomB,UACL,IAAI8lB,EAAM6tB,EAAK53D,MAAM,GACjB06L,EAAyB,MAAlB3wJ,EAAIjpC,OAAO,GAQtB,GANI45L,IACF3wJ,EAAMA,EAAI/pC,MAAM,IAKd+pC,EAAI3vC,OAAS,GAAK2vC,EAAIjpC,OAAO,KAAOipC,EAAI/pC,OAAO,GACjD,MAAM,IAAIgkK,EAAe,4FAK3B,MAAO,CACLngJ,KAAM,OACN2+C,KAAM,OACNtN,KALFnrB,EAAMA,EAAI/pC,MAAM,GAAI,GAMlB06L,KAAMA,GAMN+D,GAAelkM,eAAeq9D,EAAK,MAAQw3G,EAAYvxK,KAAK2kE,MAAM5K,EAAK,MAErE/5D,KAAKovD,SAASluD,QAAwB,SAAdlB,KAAK2kE,MAC/B3kE,KAAKovD,SAASy4G,gBAAgB,wBAAyB,oCAAuC9tG,EAAK,GAA5C,sBAA8E+oI,GAGvI/oI,EAAO6mI,GAAe7mI,EAAK,IAAMA,EAAKz2D,OAAO,IAI/C,IAaI2lB,EAbA3oB,EAAQ68L,GAAkCl7L,KAAK83D,GAenD,GAbIz5D,IAGW,OAFby5D,EAAOA,EAAK12C,UAAU,EAAG/iB,EAAM+B,QAG7B03D,EAAO,SACW,MAATA,IACTA,EAAO,WAOPw3G,EAAYvxK,KAAK2kE,MAAM5K,GAAO,CAC5B/5D,KAAKovD,SAASluD,QAAwB,SAAdlB,KAAK2kE,MAAmBouG,GAAW1vK,QAAQ02D,IAAS,GAC9E/5D,KAAKovD,SAASy4G,gBAAgB,wBAAyB,mCAAsC9tG,EAAK,GAA3C,sBAA6E+oI,GAGtI,IAEIz6L,EAFAwxD,EAAQ03G,EAAYvxK,KAAK2kE,MAAM5K,GAAMF,MACrC+wD,EAAMmyE,GAAehwL,MAAM+1L,GAG/B,GAAIzxB,EAAM30K,eAAem9D,GAAQ,CAE/B,IAAIusH,EAASvsH,EACbxxD,EAAI,CACF2d,KAAM,OACN2+C,KAAM3kE,KAAK2kE,KACXyhH,OAAQA,EACRx7D,IAAKA,EACL7wD,KAAMA,QAIR1xD,EAAI,CACF2d,KAAM6zC,EACN8K,KAAM3kE,KAAK2kE,KACXimD,IAAKA,EACL7wD,KAAMA,GAKV9wC,EAAS5gB,MACJ,MAAI0xD,EAAK/iC,WAAW,IAAM,KAwB/B,OAAO,KAtBHh3B,KAAKovD,SAASluD,SACXmoK,EAAmBtvG,EAAK/iC,WAAW,IAEf,SAAdh3B,KAAK2kE,MACd3kE,KAAKovD,SAASy4G,gBAAgB,wBAAyB,2BAA8B9tG,EAAK,GAAK,sBAAwB+oI,GAFvH9iM,KAAKovD,SAASy4G,gBAAgB,gBAAiB,mCAAsC9tG,EAAK,GAA3C,MAA+DA,EAAK/iC,WAAW,GAAK,IAAM8rK,IAa7I75K,EAAS,CACPjD,KAAM,UACN2+C,KAAM,OACNimD,IAAKmyE,GAAehwL,MAAM+1L,GAC1B/oI,KAAMA,GAQV,GAFA/5D,KAAKomB,UAED9lB,EACF,IAAK,IAAIrC,EAAI,EAAGA,EAAIqC,EAAM,GAAG/D,OAAQ0B,IAAK,CACxC,IAAI2zK,EAAStxK,EAAM,GAAGrC,GAEtB,IAAK0iM,GAAe/uB,GAClB,MAAM,IAAIzL,EAAe,oBAAsByL,EAAS,IAAKkxB,GAG/D,IAAIzL,EAAUsJ,GAAe/uB,GAAQ5xK,KAAK2kE,OAASg8H,GAAe/uB,GAAQ73G,KAE1E,IAAKs9H,EACH,MAAM,IAAIlxB,EAAe,UAAYyL,EAAS,mBAAqB5xK,KAAK2kE,KAAO,QAASm+H,GAG1F75K,EAAS,CACPjD,KAAM,SACN2+C,KAAM3kE,KAAK2kE,KACXimD,IAAKmyE,GAAehwL,MAAM+1L,GAC1BhpI,MAAOu9H,EACP/S,YAAY,EACZL,UAAU,EAEV7gL,KAAM6lB,GAMZ,OAAOA,GAGF6xD,EAr/BiB,GAw/B1BA,GAAOgmH,gBAAkB,CAAC,IAAK,aAAc,QAAS,UAAW,KAajE,IA+BiCiC,GA/BjB,SAAmBC,EAAS5zI,GAC1C,KAAyB,kBAAZ4zI,GAAwBA,aAAmB1sK,QACtD,MAAM,IAAIvO,UAAU,gDAGtB,IAAIsxC,EAAS,IAAIyhB,GAAOkoH,EAAS5zI,UAE1BiK,EAAOqtH,OAAOpf,OAAOz9J,QAAQ,YACpC,IAAIi9B,EAAOuyB,EAAO3wC,QAMlB,UAJO2wC,EAAOqtH,OAAOpf,OAAOz9J,QAAQ,0BAC7BwvD,EAAOqtH,OAAOpf,OAAOz9J,QAAQ,WAGhCwvD,EAAOqtH,OAAOpf,OAAO7xH,IAAI,YAAa,CACxC,IAAK2Z,EAASu2G,YACZ,MAAM,IAAIQ,EAAe,yCAG3B9sG,EAAOqtH,OAAO4Y,KAAK,YACnBx4J,EAAO,CAAC,CACN9gB,KAAM,MACN2+C,KAAM,OACNtN,KAAMvwB,EACNtb,IAAK6tC,EAAO3wC,UAIhB,OAAOoe,GA4BL5mC,GAAS,SAAgB67B,EAAYknK,EAAUriM,GACjDqiM,EAAS1+K,YAAc,GACvB,IAAI3a,EAAOs5L,GAAgBnnK,EAAYn7B,GAASssK,SAChD+1B,EAASp5H,YAAYjgE,IAKC,qBAAb4kB,UACmB,eAAxBA,SAAS4oC,aACQ,qBAAZ/sC,SAA2BA,QAAQuuB,KAAK,8FAE/C14C,GAAS,WACP,MAAM,IAAIimK,EAAe,wCAS/B,IAoBIg9B,GAAc,SAAqB74K,EAAOyR,EAAYn7B,GACxD,GAAIA,EAAQ8kK,gBAAkBp7I,aAAiB67I,GAC7C,MAAM77I,EAGR,IAAI1gB,EAAO4sK,GAAYR,SAAS,CAAC,eAAgB,CAAC,IAAIjI,EAAWhyI,KAGjE,OAFAnyB,EAAKqa,aAAa,QAASqG,EAAM5lB,YACjCkF,EAAKqa,aAAa,QAAS,SAAWrjB,EAAQymK,YACvCz9J,GAQLs5L,GAAkB,SAAyBnnK,EAAYn7B,GACzD,IAAIwuD,EAAW,IAAI83G,EAAStmK,GAE5B,IAEE,OA50VY,SAAmBkmC,EAAM/K,EAAYqzB,GACnD,IACIg0I,EADAxiM,EAAU0+K,GAAoBlwH,GAGlC,GAAwB,WAApBA,EAASpiD,OACX,OAAO+xK,GAAYj4I,EAAM/K,EAAYn7B,EAASwuD,EAASu2G,aAAa,GAC/D,GAAwB,SAApBv2G,EAASpiD,OAAmB,CACrC,IAAI6wK,EAAWJ,GAAU32I,EAAMlmC,GAC/BwiM,EAAY5sB,GAAYR,SAAS,CAAC,SAAU,CAAC6H,QACxC,CACL,IAAIwlB,EAAatkB,GAAYj4I,EAAM/K,EAAYn7B,EAASwuD,EAASu2G,aAAa,GAE1E29B,EAAY7lB,GAAU32I,EAAMlmC,GAEhCwiM,EAAY5sB,GAAYR,SAAS,CAAC,SAAU,CAACqtB,EAAYC,IAG3D,OAAO/jB,GAAY6jB,EAAWh0I,GA2zVrBm0I,CADIR,GAAchnK,EAAYqzB,GACdrzB,EAAYqzB,GACnC,MAAO9kC,GACP,OAAO64K,GAAY74K,EAAOyR,EAAYqzB,KAoHT22G,GAhGS,CAIxCjuD,QAAS,UAMT53G,OAAQA,GAMRslK,eA/EmB,SAAwBzpI,EAAYn7B,GAEvD,OADasiM,GAAgBnnK,EAAYn7B,GAASwsK,YAmFlDpH,WAAYG,EAUZq9B,QArFsB,SAA2BznK,EAAYn7B,GAC7D,IAAIwuD,EAAW,IAAI83G,EAAStmK,GAC5B,OAAOmiM,GAAchnK,EAAYqzB,IA6FjCq0I,kBAAmBP,GAUnBQ,mBA9DqB,SAA0B3nK,EAAYn7B,GAC3D,IAAIwuD,EAAW,IAAI83G,EAAStmK,GAE5B,IAEE,OAz0VgB,SAAuBkmC,EAAM/K,EAAYqzB,GAC3D,IACIyuH,EAAWJ,GAAU32I,EADXw4I,GAAoBlwH,IAE9Bg0I,EAAY5sB,GAAYR,SAAS,CAAC,SAAU,CAAC6H,IACjD,OAAO0B,GAAY6jB,EAAWh0I,GAq0VrBu0I,CADIZ,GAAchnK,EAAYqzB,GACVrzB,EAAYqzB,GACvC,MAAO9kC,GACP,OAAO64K,GAAY74K,EAAOyR,EAAYqzB,KA6DxCw0I,iBAtlcF,SAAwBluB,EAAUvE,GAChCrC,EAAgB4G,GAAYvE,GA0lc5B0yB,eAAgBryB,EAKhBsyB,cAAevK,GASfwK,UAAW,CACTr2B,KAAMA,EACNC,OAAQA,EACRI,WAAYA,EACZO,QAASA,EACTE,SAAUA,EACVG,SAAUA,IAgBJ,OADV7I,EAAsBA,EAAoB53J,QAxvjBzB,IARfrS,EAAOC,QAAUiO,K,6BCAnB,IAAIijH,EAAajxH,EAAQ,KACrBioM,EAAUjoM,EAAQ,IAClBkoM,EAASloM,EAAQ,KAIjBmoM,EAAa,CAACC,GAAG,EAAMC,GAAG,EAAO7tJ,EAAG,MA+ExC,SAAS8tJ,EAASroI,GAChB,OAAOA,EAAG/4D,OAAO,GAAGmgB,cA9EtBvnB,EAAOC,QAEP,SAAe8E,GACb,IAAIwuD,EAAWnzD,OAAOC,OAAO,GAAI0E,EAASZ,KAAKylD,KAAK,aAChDt6C,EAAWikD,EAASjkD,SAExBA,EAA+B,mBAAbA,GAAyBA,EAE3CnL,KAAK86E,OAEL,SAAgBD,EAAKE,GACnB,IAAIryE,EAAK0mD,EAAS8hB,SAAW,gBAAkB,QAC3C5T,EAAelO,EAASk1I,gBAa5B,SAAiBn8J,GACf,IAWIvL,EACAlO,EAZA9I,EAAOuiB,EAAIviB,KACXrnB,EAAiBqnB,EA+CZpC,QAAQ,UAAW6gL,GA9CxBz9B,EAAUx3G,EAAS7wD,GACnB8H,OAAqBqL,IAAZk1J,GAAqC,OAAZA,GAA0BA,EAC5Dr+C,EAA0B,kBAAXliH,EAAsBA,EAASA,EAAS,EAAI,EAC3DsK,EAAQ,CACVipB,KAAMuO,EAAIq1B,UACV3jC,OAAQsO,EAAIu1B,SACZ5jC,OAAQqO,EAAI01B,aAEVn8D,EAAM,CAACk4B,KAAMuO,EAAIs1B,QAAS5jC,OAAQsO,EAAIw1B,OAAQ7jC,OAAQqO,EAAI21B,WAkB9D,SAASsiD,EAAOpjH,GACd,OAAOA,EAAMwmB,QAAQ,iBAAkB80C,GAAM90C,QAAQ,MAAO+gL,GAG9D,SAASjsI,EAAK0D,EAAIylC,GAChB,IAAI3nE,EAAS2nE,GAAMliF,SAASkiF,EAAI,IAAM,EAClCnpC,EAAOuiB,EAAI53E,OAAOklC,EAAI01B,YAAc/jC,GACxC,MAAgB,MAATw+B,EAAe,QAAUA,EAGlC,SAASisI,IAGP,MAAO,KAFI1pH,EAAI7jD,WAAWmR,EAAI01B,aAAan5D,SAAS,IAAI0e,cAzBtDmlG,IACF3rF,EAAOqnK,EAAO1lM,IAAoC,CAChDuuC,OAAQ,GACR03J,YAAa,KAGf91K,EAAUqsD,EAAKrsD,QAAQ0xF,EAAOxjF,EAAKkQ,QAAS,CAACn8B,MAAOA,EAAOjP,IAAKA,KACxDxD,OAAS,cACjBwwB,EAAQgjE,OAAS9rE,EACjB8I,EAAQijE,MAAQuyG,EAAW37E,GAC3B75F,EAAQkjE,KAAOwuB,EAAOxjF,EAAK4nK,aAC3B91K,EAAQ9uB,KAAmB,IAAbg9B,EAAKh9B,IAAgB,KAvDhC,mEAuD8CgmB,IAvCG,KACpD6+K,EAAS,IAAIT,EAAQ,CACvBthI,uBAAwBv3D,EACxBmyD,aAAcA,EACdmF,kBAAkB,IAGpB,OAAOuqD,EAAWy3E,EAAO/7L,GAAImyE,GAAM,CACjCh+C,MAAOuyB,EAASvyB,MAChBk+C,KAAMA,EACNkwC,QAAS77D,EAAS67D,a,6BC9BxB,IAAI5iH,EAAItM,EAAQ,KACZkjB,EAAIljB,EAAQ,KACZ6+E,EAAO7+E,EAAQ,IACf45C,EAAO55C,EAAQ,IACfs/D,EAAMt/D,EAAQ,IACd2oM,EAAgB3oM,EAAQ,KACxB+tE,EAAK/tE,EAAQ,KAEjBF,EAAOC,QAcP,SAAiB2uH,EAAK7pH,GACpB,IACIm6E,EADA3rB,EAAWxuD,GAAW,GAGtBwuD,EAASykC,UACX9Y,EAAO3rB,EACPA,EAAW,IAEX2rB,EAAO3rB,EAAS2rB,KAGlB,OAAOpyE,EAAU8hH,EAAK,CACpBlvD,OAA2B,QAAnBnM,EAASvyB,MAAkBw+B,EAAM1lB,EACzColC,KAAMA,EACNkwC,QAAS77D,EAAS67D,WA1BtB,IAAIp5D,EAAM,GAAGn1D,eAGTwI,EAAM,CACR,YAAamkG,EACb,qBAAsBA,EACtB,QAsGF,SAAcohB,GACZ,MAAO,CAACzkG,KAAM,OAAQhpB,MAAOytH,EAAIztH,QAtGjC,WA0GF,SAAiBytH,GACf,MAAO,CAACzkG,KAAM,UAAWhpB,MAAOytH,EAAIhlE,OA1GpC,gBA0FF,SAAiBglE,GACf,MAAO,CACLzkG,KAAM,UACNznB,KAAMksH,EAAIlsH,MAAQ,GAClBomM,OAAQl6E,EAAI3kE,UAAY,KACxB8+I,OAAQn6E,EAAI1kE,UAAY,QAxE5B,SAASp9C,EAAU8hH,EAAKpkH,GACtB,IAEI9F,EACAqB,EACAuJ,EAJAowD,EAASl1D,EAAOk1D,OAChB7yD,EAAKmpD,EAAIl1D,KAAKuI,EAAKulH,EAAIpmG,UAAYnf,EAAIulH,EAAIpmG,UAAYxgB,EA0B3D,OArBI6E,IAAO7E,IACTwC,EAAOk1D,OAASkvD,EAAIr4C,eAAiBtI,EAAGzO,IAAMA,EAAM1lB,GAGlD80E,EAAI/7E,aACNnuC,EAoBJ,SAAeA,EAAU8F,GACvB,IAAIhE,GAAS,EACTT,EAAS,GAEb,OAASS,EAAQ9B,EAAShE,QACxBqF,EAAOS,GAASsG,EAAUpI,EAAS8B,GAAQgE,GAG7C,OAAOzE,EA5BM8pB,CAAM++F,EAAI/7E,WAAYroC,IAGnCzE,EAAS8G,EAAG+hH,EAAKlqH,EAAU8F,GAEvBokH,EAAIC,oBAAsBrkH,EAAO00E,OACnC5vE,EAAWnM,EAAS4C,EAAQ6oH,EAAIC,mBAAoBrkH,MAGlDA,EAAOrH,UAAW,EAClB4C,EAAOuJ,SAAWA,GAItB9E,EAAOk1D,OAASA,EAET35D,EAiBT,SAASynG,EAAKohB,EAAKlqH,EAAU8F,GAC3B,IAKIw0E,EACA77E,EANA4C,EAAS,CACXokB,KAAM,OACNzlB,SAAUA,EACVklD,KAAM,CAACklE,WAAyB,WAAbF,EAAI9lD,MAAkC,mBAAb8lD,EAAI9lD,OAclD,OATIt+D,EAAO00E,MAAQ10E,EAAOrH,WACxB67E,EAAMvkD,OAAOjwB,EAAO00E,MACpB/7E,EAAW0lM,EAAc7pH,GACzBj5E,EAAOuJ,SAAW,CAChBwF,MAAO3R,EAAS8rH,QAAQ,GACxBppH,IAAK1C,EAAS8rH,QAAQjwC,EAAIt+E,UAIvBqF,EAwBT,SAASiC,EAAQ4mH,EAAKlqH,EAAU8F,GAU9B,IATA,IAGIzE,EACAs7B,EACAs8C,EACA7oE,EACAjP,EAPAgH,EAA6B,QAAxBrC,EAAOk1D,OAAO1+B,MAAkBx0B,EAAI4W,EACzCngB,EAAQ,GACRuD,GAAS,IAOJA,EAAQooH,EAAIr/F,MAAM7uB,QAEzBuC,IADAo+B,EAAYutF,EAAIr/F,MAAM/oB,IACL6gB,OAASga,EAAUha,OAAS,IAAM,IAAMga,EAAU3+B,MACjE2+B,EAAUlgC,MAiBd,MAZuB,cAFvB4E,EAAS8G,EAAG+hH,EAAI77E,QAAS9vC,EAAOyB,IAErBquC,SAA0B,YAAa67E,IAEhD95G,GADA6oE,EAAMixC,EAAIC,qBACKlxC,EAAIyiB,UAAY9wF,EAASquE,EAAIyiB,UAAUv6F,IACtDA,EAAM83E,GAAOA,EAAIwxC,QAAU7/G,EAASquE,EAAIwxC,QAAQr6G,MAEhD/O,EAAO0zB,QAAU3sB,EAAU8hH,EAAIn1F,QAASjvB,IAEnCsK,GAASjP,IAAQ2E,EAAO00E,OAC3Bn5E,EAAO0zB,QAAQnqB,SAAW,CAACwF,MAAOA,EAAOjP,IAAKA,KAI3CE,EAIT,SAAS5C,EAAS4K,EAAM5K,EAAUqH,GAChC,IACIi2B,EACAv/B,EACA+B,EAHA8C,EAASuJ,EAASnM,GAKtB,GAAkB,YAAd4K,EAAKoc,OACPsW,EAAO1yB,EAAKrJ,SAASqJ,EAAKrJ,SAAShE,OAAS,IAIvCyC,EAASgsH,QAAU1uF,GAAQA,EAAKnxB,UAAYmxB,EAAKnxB,SAASzJ,MAC7DE,EAAOF,IAAMzF,OAAOC,OAAO,GAAIogC,EAAKnxB,SAASzJ,MAG3C2E,EAAO4kH,SAAS,CAGlB,IAAKluH,KAFL+B,EAAQ,GAEIE,EAASosB,MACnBtsB,EAAM87E,EAAKv0E,EAAOk1D,OAAQx+D,GAAKigC,UAAY7xB,EAASnM,EAASosB,MAAMruB,IAGrE6M,EAAK67C,KAAO,CACVt6C,SAAU,CACR+/G,QAAS//G,EAASnM,EAASi9F,UAC3BkvB,QAASnsH,EAASgsH,OAAS7/G,EAASnM,EAASgsH,QAAU,KACvDjuF,WAAYj+B,IAMpB,OAAO8C,EAGT,SAASuJ,EAASy/G,GAChB,IAAIj6G,EAAQ+oB,EAAM,CAChBE,KAAMgxF,EAAIptD,UACV3jC,OAAQ+wF,EAAIltD,SACZ5jC,OAAQ8wF,EAAI/sD,cAEVn8D,EAAMg4B,EAAM,CACdE,KAAMgxF,EAAIntD,QACV5jC,OAAQ+wF,EAAIjtD,OACZ7jC,OAAQ8wF,EAAI9sD,YAEd,OAAOntD,GAASjP,EAAM,CAACiP,MAAOA,EAAOjP,IAAKA,GAAO,KAGnD,SAASg4B,EAAMA,GACb,OAAOA,EAAME,MAAQF,EAAMG,OAASH,EAAQ,O,6BCpN9C,IAAI6hC,EAASx/D,EAAQ,IACjByoD,EAAgBzoD,EAAQ,KAGxBs/D,EAFUt/D,EAAQ,IAEZgO,CAAQwxD,EAAQ,IAAK/W,GAC/B6W,EAAI38D,YAAc,MAElB7C,EAAOC,QAAUu/D,G,2mBCPjBx/D,EAAOC,QAKP,SAAe6pF,EAAUF,GACvB,IAII0kC,EACA35G,EACAlQ,EANAtD,EAAQ2oF,GAAY,GACpBpnF,EAAOknF,GAAkB,MACzB3mF,EAAQ,GACR6R,EAAQ,EAKZ,KAAOA,EAAQ3T,EAAMT,QACnB4wB,EAAO43D,UAAYp0E,EACnBrQ,EAAQ6sB,EAAOlrB,KAAKjF,IACpBmtH,EAAWntH,EAAMmF,MAAMwO,EAAOrQ,EAAQA,EAAM+B,MAAQrF,EAAMT,WAGnDiU,EAEmB,MAAbA,EACT1R,EAAMwQ,GAAK66G,EACFrrH,EAAMoqB,UACfpqB,EAAMoqB,UAAUprB,KAAKqsH,GAErBrrH,EAAMoqB,UAAY,CAACihG,GANnB5rH,EAAO4rH,EASTx5G,GAASw5G,EAAS5tH,QAGhB+D,IACFkQ,EAAWlQ,EAAM,GACjBqQ,KAIJ,MAAO,CAACqV,KAAM,UAAW4oB,QAASrwC,EAAMw+B,WAAYj+B,EAAOyB,SAAU,KArCvE,IAAI4sB,EAAS,S,6BCFb,IAAIouC,EAASx/D,EAAQ,IAGjB45C,EAFU55C,EAAQ,IAEXgO,CAAQwxD,EAAQ,OAC3B5lB,EAAKj3C,YAAc,OAEnB7C,EAAOC,QAAU65C,G,6BCNjB95C,EAAOC,QAEP,SAAiBi/E,GACf,IAAI/9E,EAAQs5B,OAAOykD,GACf8vC,EAAU,GACV19F,EAAS,YAEb,KAAOA,EAAOlrB,KAAKjF,IACjB6tH,EAAQ/sH,KAAKqvB,EAAO43D,WAKtB,OAFA8lC,EAAQ/sH,KAAKd,EAAMT,OAAS,GAErB,CACLuuH,QAAS+5E,EACTnsH,WAAYmsH,EACZ95E,SAwBF,SAAuBrxF,GACrB,IAEII,EAFAF,EAAOF,GAASA,EAAME,KACtBC,EAASH,GAASA,EAAMG,OAGvBka,MAAMna,IAAUma,MAAMla,MAAWD,EAAO,KAAKixF,KAChD/wF,GAAU+wF,EAAQjxF,EAAO,IAAM,GAAKC,EAAS,GAAK,GAGpD,OAAOC,GAAU,GAAKA,EAAS+wF,EAAQA,EAAQtuH,OAAS,GAAKu9B,GAAU,IA7BzE,SAAS+qK,EAAc/qK,GACrB,IAAIz3B,GAAS,EAEb,GAAIy3B,GAAU,GAAKA,EAAS+wF,EAAQA,EAAQtuH,OAAS,GACnD,OAAS8F,EAAQwoH,EAAQtuH,QACvB,GAAIsuH,EAAQxoH,GAASy3B,EACnB,MAAO,CACLF,KAAMv3B,EAAQ,EACdw3B,OAAQC,GAAU+wF,EAAQxoH,EAAQ,IAAM,GAAK,EAC7Cy3B,OAAQA,GAMhB,MAAO,M,uTCnCX,MAAMshB,EAAUr/C,EAAQ,IAClBu/C,EAAMv/C,EAAQ,IAGdyiC,EAAI4c,EAAQG,YAwJlB1/C,EAAOC,QAhJP,MACIyL,cACIvH,KAAK21C,KAAO,KAEZ31C,KAAKw5E,KAAO,EACZx5E,KAAK0sH,YAAc,EACnB1sH,KAAK2sH,aAAe,EAEpB3sH,KAAK4sH,SAAW,GAEhB5sH,KAAK2rE,iBAAkB,EAEvB3rE,KAAK6sH,kBAAmB,EACxB7sH,KAAKikD,eAAgB,EACrBjkD,KAAK8kM,gBAnBoB,MAsB7BxhJ,QAIAyhJ,UACI/kM,KAAK4sH,SAAS9uH,KAAKkC,KAAK0sH,YACxB1sH,KAAK0sH,WAAa1sH,KAAKw5E,IAG3BwrH,kBAAkBpkJ,GAEd,GAAI5gD,KAAKw5E,MAAQx5E,KAAK2sH,YAAa,CAC/B,MAAM1kE,EAASjoD,KAAK21C,KAAK3e,WAAWh3B,KAAKw5E,IAAM,GAE/C,GAAIp+B,EAAQ8gB,gBAAgBjU,GAOxB,OALAjoD,KAAKw5E,MAGLx5E,KAAK+kM,UAEE3pJ,EAAQ+gB,0BAA0Bvb,EAAIqH,QAKhD,IAAKjoD,KAAK6sH,iBAEX,OADA7sH,KAAKikD,eAAgB,EACdzlB,EAAEsmB,IAMb,OAFA9kD,KAAKsjD,KAAKhI,EAAIkhB,wBAEP5b,EAGXwH,kBACQpoD,KAAKw5E,IAAMx5E,KAAK8kM,kBAChB9kM,KAAK2sH,aAAe3sH,KAAKw5E,IACzBx5E,KAAK21C,KAAO31C,KAAK21C,KAAKtyB,UAAUrjB,KAAKw5E,KACrCx5E,KAAKw5E,IAAM,EACXx5E,KAAK0sH,YAAc,EACnB1sH,KAAK4sH,SAAW,IAIxB/oE,MAAMC,EAAOC,GACL/jD,KAAK21C,KACL31C,KAAK21C,MAAQmO,EAEb9jD,KAAK21C,KAAOmO,EAGhB9jD,KAAK2sH,YAAc3sH,KAAK21C,KAAKp5C,OAAS,EACtCyD,KAAKikD,eAAgB,EACrBjkD,KAAK6sH,iBAAmB9oE,EAG5BC,uBAAuBF,GACnB9jD,KAAK21C,KAAO31C,KAAK21C,KAAKtyB,UAAU,EAAGrjB,KAAKw5E,IAAM,GAAK11B,EAAQ9jD,KAAK21C,KAAKtyB,UAAUrjB,KAAKw5E,IAAM,EAAGx5E,KAAK21C,KAAKp5C,QAEvGyD,KAAK2sH,YAAc3sH,KAAK21C,KAAKp5C,OAAS,EACtCyD,KAAKikD,eAAgB,EAGzBG,UAGI,GAFApkD,KAAKw5E,MAEDx5E,KAAKw5E,IAAMx5E,KAAK2sH,YAEhB,OADA3sH,KAAKikD,eAAiBjkD,KAAK6sH,iBACpBruF,EAAEsmB,IAGb,IAAIlE,EAAK5gD,KAAK21C,KAAK3e,WAAWh3B,KAAKw5E,KAInC,GAAIx5E,KAAK2rE,iBAAmB/qB,IAAOpiB,EAAEsiB,UAGjC,OAFA9gD,KAAK2rE,iBAAkB,EACvB3rE,KAAK+kM,UACE/kM,KAAKokD,UAIhB,GAAIxD,IAAOpiB,EAAEguB,gBAET,OADAxsD,KAAK2rE,iBAAkB,EAChBntC,EAAEsiB,UAGb9gD,KAAK2rE,iBAAkB,EAEnBvwB,EAAQ+Q,YAAYvL,KACpBA,EAAK5gD,KAAKglM,kBAAkBpkJ,IAahC,OANKA,EAAK,IAAQA,EAAK,KAASA,IAAOpiB,EAAEsiB,WAAaF,IAAOpiB,EAAEguB,iBAAoB5L,EAAK,KAAQA,EAAK,OAGjG5gD,KAAKilM,+BAA+BrkJ,GAGjCA,EAGXqkJ,+BAA+BrkJ,GACvBxF,EAAQmR,mBAAmB3L,GAC3B5gD,KAAKsjD,KAAKhI,EAAIghB,+BACPlhB,EAAQiR,qBAAqBzL,IACpC5gD,KAAKsjD,KAAKhI,EAAIihB,2BAItBrY,UACQlkD,KAAKw5E,MAAQx5E,KAAK0sH,aAClB1sH,KAAK0sH,WAAa1sH,KAAK4sH,SAAS7gG,MAChC/rB,KAAKw5E,OAGTx5E,KAAKw5E,S,6BCtJb39E,EAAOC,QAAU,IAAIopM,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IA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,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAjC,QAAS,2BAGLkC,EAAoB,CACxBh7L,UAAW,oBACXsmC,UAAW,EACXyP,SAAU+kJ,EACVrlG,MAAOr9G,EACL,KACA,eACA,SACA,UACA,YACAi4M,EAAKrG,UA9QQz0I,EA+QH,QA9QPn9D,EAAO,MAAOm9D,EAAI,QAD3B,IAAmBA,EAkRjB,MAAM0lJ,EAAsB,CAC1BD,EACAJ,EACAD,EACA/P,EACAyF,EAAKxF,qBACLyN,EACAC,GAII2C,EAAqB,CAIzBtL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,KACPj9G,IAAK,MAEP,CACE4zM,cAAe,wBACf5zM,IAAK,MAGTu9D,SAAU+kJ,EACV3qK,SAAU8qK,EAAoB7iN,OAAO,CACnC,CACEq9G,MAAO,KACPj9G,IAAK,KACLu9D,SAAU+kJ,EACV3qK,SAAU8qK,EAAoB7iN,OAAO,CAAE,SACvCkuD,UAAW,KAGfA,UAAW,GAGP60J,EAAuB,CAC3Bn7L,UAAW,WACXy1F,MAAO,IAAMilG,EAAmB,eAAiBG,EACjD5G,aAAa,EACbz7M,IAAK,QACL67M,YAAY,EACZt+I,SAAU+kJ,EACVvQ,QAAS,iBACTp6J,SAAU,CACR,CACEslE,MAAO+kG,EACPzkJ,SAAU+kJ,EACVx0J,UAAW,GAEb,CACEmvD,MAAOolG,EACP5G,aAAa,EACb9jK,SAAU,CAAEi7J,GACZ9kJ,UAAW,GAIb,CACEmvD,MAAO,KACPnvD,UAAW,GAGb,CACEmvD,MAA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M,EAAK/F,iBACL+F,EAAK7F,oBAWL6F,EAAKlF,YACLkF,EAAKvF,kBACLuF,EAAKtF,gB,cC+GXp4M,EAAOC,QAzKP,SAAgBy9M,GAyId,MAAO,CACLh7M,KAAM,MACNs3B,QAAS,CAAC,OACVopC,SATe,CACf3jC,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,SAKAsmL,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,OAoHAI,QAjHuB,CACvB,UACA,QACA,OACA,SAoHA3oK,SAAU,CACRkgK,EAAKzF,oBACLyF,EAAKxF,qBACLwF,EAAK/F,iBACL+F,EAAK7F,kBACL6F,EAAKrF,cACL,CACEhrL,UAAW,OACXy1F,MAAO,IACPj9G,IAAK,KAEP,CACEwnB,UAAW,QACXosL,cAAe,kBACf5zM,IAAK,KACL67M,YAAY,EACZ9J,QAAS,IACTp6J,SAAU,CACR,CACEi8J,cAAe,sBAEjBiE,EAAKhF,4B,cClKf,SAASr2M,EAAOugE,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgE,OAHM,KAUlB,SAASoD,IAAgB,QAAAyE,EAAAzJ,UAAAC,OAANyJ,EAAI,IAAA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0BAYTsmL,SAAU,4BACVqC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAjC,QAAS,2BAGLkC,EAAoB,CACxBh7L,UAAW,oBACXsmC,UAAW,EACXyP,SAAU+kJ,EACVrlG,MAAOr9G,EACL,KACA,eACA,SACA,UACA,YACAi4M,EAAKrG,UA9QQz0I,EA+QH,QA9QPn9D,EAAO,MAAOm9D,EAAI,QAD3B,IAAmBA,EAkRjB,MAAM0lJ,EAAsB,CAC1BD,EACAJ,EACAD,EACA/P,EACAyF,EAAKxF,qBACLyN,EACAC,GAII2C,EAAqB,CAIzBtL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,KACPj9G,IAAK,MAEP,CACE4zM,cAAe,wBACf5zM,IAAK,MAGTu9D,SAAU+kJ,EACV3qK,SAAU8qK,EAAoB7iN,OAAO,CACnC,CACEq9G,MAAO,KACPj9G,IAAK,KACLu9D,SAAU+kJ,EACV3qK,SAAU8qK,EAAoB7iN,OAAO,CAAE,SACvCkuD,UAAW,KAGfA,UAAW,GAGP60J,EAAuB,CAC3Bn7L,UAAW,WACXy1F,MAAO,IAAMilG,EAAmB,eAAiBG,EACj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AhBP,SAAqBy9M,GACnB,MAAO,CACLh7M,KAAM,eACN86C,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO,sBACPs6F,OAAQ,CACNv3M,IAAK,IACLs6M,YAAa,gB,cC4CvBngN,EAAOC,QAvDP,SAAey9M,GACb,MAAO,CACLh7M,KAAM,QACNs3B,QAAS,CAAC,YACV6gL,kBAAkB,EAClBz3I,SAAU,CACR3jC,QAEE,woEAkCJ+d,SAAU,CACR,CACEnwB,UAAW,WACXy1F,MAAO,OACPj9G,IAAK,MAEP63M,EAAKvF,kBACLuF,EAAK7F,kBACL6F,EAAKtF,gB,cC1DX,MAAMmP,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIsD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGrlN,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAmQFzF,EAAOC,QA7MP,SAAsBy9M,GACpB,MAgCMqN,EAAa,CACjBtrL,QAAS8nL,EAAS9hN,OAvBI,CACtB,OACA,SACA,QACA,OACA,KACA,OACA,MACA,KACA,KACA,OACA,QAY0C3D,QAHzBmuB,EAPQ,CACzB,MACA,QACA,MACA,WACA,UAGC+6L,IAAQ/6L,EAAKioE,SAAS8yH,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lB,SAAU,CACR,CACEslE,MAAO,OACPnvD,UAAW,GAEb+pJ,EAAK9H,QAAQgQ,EAAS,CACpBv4L,UAAW,gBAEb,CACEA,UAAW,cACXy1F,MAAO,SAETm1F,EACAyF,EAAKxF,uBAIHO,EAAa,CACjBprL,UAAW,QACXy1F,MAAO/oC,EAAS+tI,GAAgBpK,EAAKrG,SACrC1jJ,UAAW,GAGPu0J,EAAiBnuI,EAAS+tI,GAAgBpK,EAAKrG,SAAW,UAsH1D8Q,EAAe,CACnB1oL,QAAS,y0BAYTsmL,SAAU,4BACVqC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAjC,QAAS,2BAGLkC,EAAoB,CACxBh7L,UAAW,oBACXsmC,UAAW,EACXyP,SAAU+kJ,EACVrlG,MAAOr9G,EACL,KACA,eACA,SACA,UACA,YACAi4M,EAAKrG,UA9QQz0I,EA+QH,QA9QPn9D,EAAO,MAAOm9D,EAAI,QAD3B,IAAmBA,EAkRjB,MAAM0lJ,EAAsB,CAC1BD,EACAJ,EACAD,EACA/P,EACAyF,EAAKxF,qBACLyN,EACAC,GAII2C,EAAqB,CAIzBtL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAA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F,EAAKpG,oBAAsB,YAClC3jJ,UAAW,GAEb,CACEtmC,UAAW,SACXy1F,MAAO,IACPtlE,SAAU,CACR4pK,EACA,CACEtkG,MAAOuoG,IAGX13J,UAAW,GAEb,CACEtmC,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,gBAAkBsoG,GAE3B,CACEtoG,MAAO,iBAAmBsoG,GAE5B,CACEtoG,MAAO,uBAAyBsoG,GAElC,CACEtoG,MAAO,yFAET,CACEA,MAAO,sBAAwBsoG,IAGnCz3J,UAAW,IAMf,OAHA6zJ,EAAMhqK,SAAWouK,EACjBJ,EAAUhuK,SAAWouK,EAAyBtlN,MAAM,GAE7C,CACL5D,KAAM,UACNs3B,QAAS,CAAE,MACXopC,SAAUmoJ,EACV/tK,SAAUouK,K,cCuHd5rN,EAAOC,QA/aP,SAAgBy9M,GACd,MA2IM6J,EAAW,CACf9nL,QA/FsB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,SAwCyBh6B,OAtCC,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,UAKAsgN,SA7IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,UA0HAI,QAvGuB,CACvB,UACA,QACA,OACA,SAqGI1N,EAAaiF,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC/C31F,MAAO,uBAEH6iG,EAAU,CACdt4L,UAAW,SACX4vL,SAAU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KjF,WACL0T,GAEFx4J,UAAW,GAEb,CACEtmC,UAAW,SACXy1F,MAAO,KACPj9G,IAAK,KACLw7M,cAAc,EACdK,YAAY,EACZt+I,SAAUmkJ,EACV5zJ,UAAW,EACXnW,SAAU,CACR4pK,EACAzB,EACAjI,EAAKxF,uBAGTwF,EAAKzF,oBACLyF,EAAKxF,uBAGTmU,M,cC/YNrsN,EAAOC,QA1BP,SAAay9M,GACX,MAAO,CACLh7M,KAAM,MACNm4M,kBAAkB,EAClBz3I,SAAU,CACRo5I,SAAU,yBACV/8K,QAAS,+KAIX+d,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,KAEP,CACEwnB,UAAW,YACXy1F,MAAO,WACPj9G,IAAK,IACL67M,YAAY,O,cC9BpB,MAuBM4K,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wB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CLu9D,SAAUmkJ,EACV/pK,SAAU,CACR,CAAEi8J,cAAe,UACjB,CACE32F,MAAO46F,EAAKpG,oBAAsB,UAClCgK,aAAa,EACb3tJ,UAAW,EACXnW,SAAU,CAACkgK,EAAKhF,wBAElB,CACErrL,UAAW,SACXy1F,MAAO,KAAMj9G,IAAK,KAClBu9D,SAAUmkJ,EACV5zJ,UAAW,EACXnW,SAAU,CACRkgK,EAAKxF,uBAGTwF,EAAKzF,oBACLyF,EAAKxF,uBAGT,CACE7qL,UAAW,WACXy1F,MAAO,qKAAoC46F,EAAKpG,oBAAsB,UAAWgK,aAAa,EAAMz7M,IAAK,QACzG67M,YAAY,EACZt+I,SAAUmkJ,EACV/pK,SAAU,CACR,CACEslE,MAAO46F,EAAKpG,oBAAsB,UAAWgK,aAAa,EAC1D3tJ,UAAW,EACXnW,SAAU,CAACkgK,EAAKhF,wBAElB,CACErrL,UAAW,SACXy1F,MAAO,KAAMj9G,IAAK,KAClBu9D,SAAUmkJ,EACV5zJ,UAAW,EACXnW,SAAU,CACR21K,EACAzV,EAAK/F,iBACL+F,EAAK7F,kBACLz1L,EACAs7L,EAAKxF,uBAGTwF,EAAKzF,oBACLyF,EAAKxF,uBAGT91L,EACA+wM,M,cC/KN,MAAM9b,EAAW,2BACXkQ,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIsD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGrlN,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QA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aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,SACA,UAmNAJ,SAjMkB,CAClB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,YAWEqO,EAAU,CACZhxJ,SAAUmkJ,E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CAAC,GAAI,IAAK,KAAKx7E,KAAIge,GACpB8uM,EAAU9uM,EAAS,WAAaw9D,EAAQkxI,EAAkBD,EAAYS,EAAuBlvM,EAAS,WAAaw9D,WAGvHsxI,EAAU,SAAUJ,EAAkBD,EAAYC,EAAkBF,EAAYU,EAAuB,iBAQlGf,M,cCrOTx1N,EAAOC,QAnCP,SAAcy9M,GACZ,MAAO,CACLh7M,KAAM,OACN86C,SAAU,CACR,CACEnwB,UAAW,YACXy1F,MAAO,MACPj9G,IAAK,KACL67M,YAAY,EACZtE,OAAQ,CACNv3M,IAAK,IACL8tD,UAAW,GAEbA,UAAW,IAEb,CACEtmC,UAAW,YACXy1F,MAAO,OACPj9G,IAAK,KACL67M,YAAY,EACZtE,OAAQ,CACNv3M,IAAK,IACL8tD,UAAW,IAGf,CACEtmC,UAAW,UACXy1F,MAAO,KACPj9G,IAAK,KAEP63M,EAAKvF,sB,cCYXn4M,EAAOC,QA1CP,SAAcy9M,GACZ,MAAO,CACLh7M,KAAM,OACN86C,SAAU,CACR,CACEnwB,UAAW,WACXy1F,MAAO,qBACPj9G,IAAK,MACLy7M,aAAa,EACbI,YAAY,EACZlkK,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO,MAET,CACEz1F,UAAW,QACXy1F,MAAO,0BAET,CACEz1F,UAAW,SACXy1F,MAAO,MACPj9G,IAAK,MACLk7M,YAAY,EACZvjK,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,KAEP,CACEwnB,UAAW,WACXy1F,MAAO,kC,cCtCvB,MAuBMwpG,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7hN,UAGI4rN,EAAmBjK,EAAe/mN,OAAOgnN,GA4O/CzsN,EAAOC,QAjOP,SAAcy9M,GACZ,MAAMiP,EAzbOjP,KACN,CACLkP,UAAW,CACTv/L,UAAW,OACXy1F,MAAO,cAET+pG,SAAU,CACRx/L,UAAW,SACXy1F,MAAO,oCAETgqG,wBAAyB,CACvBz/L,UAAW,gBACXy1F,MAAO,KACPj9G,IAAK,KACL+xM,QAAS,IACTp6J,SAAU,CACRkgK,EAAK/F,iBACL+F,EAAK7F,sBAwaGe,CAAM8E,GACdgZ,EAAqBD,EAIrBE,EAAkB,2BAIlBC,EAAQ,GAAUC,EAAc,GAEhCC,EAAc,SAAS9+M,GAC3B,MAAO,CAELqV,UAAW,SACXy1F,MAAO,KAAO9qG,EAAI,MAAQA,IAIxB++M,EAAa,SAASr0N,EAAMogH,EAAOnvD,GACvC,MAAO,CACLtmC,UAAW3qB,EACXogH,MAAOA,EACPnvD,UAAWA,IAITqjK,EAAc,CAClBxa,SAAU,UACV/8K,QA1BmB,kBA2BnB4B,UAAWkrL,EAAehqM,KAAK,MAG3B00M,EAAc,CAElBn0G,MAAO,MACPj9G,IAAK,MACL23C,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kBAAkB,EAClBz3I,SAAU,CACR3jC,QACE,4/BAYF0mL,QACE,gfAMFJ,SACE,o4KAqDJvoK,SAAU,CACR+rK,EACA,CACEl8L,UAAW,UACXy1F,MAAO,kBAET,CACEz1F,UAAW,WACXosL,cAAe,WACf5zM,IAAK,IACL23C,SAAU,CACR+rK,EACA0O,EACAva,EAAK/F,iBACL+F,EAAK7F,kBACL6F,EAAKpF,mBACLoF,EAAKrF,cACL2f,IAGJ,CACE3qM,UAAW,WACXy1F,MAAO,aACPj9G,IAAK,IACLu9D,SAAU,MACV5lB,SAAU,CACRy6K,EACAD,GAEFrkK,UAAW,GAEb,CACE8lJ,cAAe,aACf5zM,IAAK,IACL23C,SAAU,CACR+rK,EACA0O,EACAva,EAAK/F,iBACL+F,EAAK7F,kBACL6F,EAAKpF,mBACLoF,EAAKrF,cACL2f,IAGJ,CACE3qM,UAAW,OACX4vL,SAAU,CACR,CACEn6F,MAAO,wBACPnvD,UAAW,IAEb,CACEmvD,MAAO,QAET,CACEA,MAAO,UAIb46F,EAAK/F,iBACL+F,EAAK7F,kBACL6F,EAAKpF,mBACLoF,EAAKrF,cACL2f,GACAvyN,OAAOqkN,GACTlS,QAAS,sB,cCxLb,MAAM2P,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIsD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGrlN,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAqRFzF,EAAOC,QA/NP,SAAoBy9M,GAClB,MA4CMqN,EAAa,CACjBtrL,QAAS8nL,EAAS9hN,OAhCQ,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,cAIA0gN,QAAS0E,EAASplN,OA1CQ,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,SAoCAsgN,SAAU+E,EAAUrlN,OA/CO,CAC3B,MACA,WA+CIwlN,EAAc,8CACdrhL,EAAQ8zK,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC1C31F,MAAOmoG,IAEHzD,EAAQ,CACZn6L,UAAW,QACXy1F,MAAO,MACPj9G,IAAK,KACLu9D,SAAU2nJ,GAENmN,EAAe,CACnB7qM,UAAW,QACXy1F,MAAO,cACPj9G,IAAK,oCACLu9D,SAAU2nJ,GAENd,EAAc,CAClBvM,EAAKpF,mBACL,CACEjrL,UAAW,SACXy1F,MAAO,0GACPnvD,UAAW,EACXypJ,OAAQ,CACNv3M,IAAK,WACL8tD,UAAW,IAGf,CACEtmC,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,MACPj9G,IAAK,MACL23C,SAAU,CAACkgK,EAAKhG,mBAElB,CACE50F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAACkgK,EAAKhG,mBAElB,CACE50F,MAAO,MACPj9G,IAAK,MACL23C,SAAU,CACRkgK,EAAKhG,iBACL8P,EACA0Q,IAGJ,CACEp1G,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACRkgK,EAAKhG,iBACL8P,EACA0Q,IAGJ,CACEp1G,MAAO,KACPj9G,IAAK,SACL67M,YAAY,KAIlB,CACEr0L,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,KACPj9G,IAAK,WACL23C,SAAU,CACRgqK,EACA9J,EAAKvF,oBAGT,CAGEr1F,MAAO,6CAIb,CACEA,MAAO,IAAMmoG,GAEf,CACEnoG,MAAO,KACPj9G,IAAK,KACLw7M,cAAc,EACdK,YAAY,EACZvB,YAAa,eAGjBqH,EAAMhqK,SAAWysK,EAEjB,MAAM5C,EAAS,CACbh6L,UAAW,SACXy1F,MAAO,MACPw+F,aAAa,EAGb9jK,SAAU,CACR,CACEslE,MAAO,KACPj9G,IAAK,KACLu9D,SAAU2nJ,EACVvtK,SAAU,CAAC,QAAQ/3C,OAAOwkN,MAShC,MAAO,CACLvnN,KAAM,aACNs3B,QAAS,CAAC,MACVopC,SAAU2nJ,EACVnT,QAAS,OACTp6J,SAAUysK,EAAYxkN,OAAO,CAC3Bi4M,EAAK3F,QAAQ,SAAU,UACvB2F,EAAKvF,kBAXO,CACdr1F,MAAO,2BAYL,CACEz1F,UAAW,WACXmwB,SAAU,CACR5T,EACAy9K,GAEF/F,aAAa,EACbrE,SAAU,CACR,CACEn6F,MAAO,IAAMmoG,EAAc,6CAC3BplN,IAAK,UAEP,CACEi9G,MAAO,IAAMmoG,EAAc,uDAC3BplN,IAAK,kBAEP,CACEi9G,MAAO,IAAMmoG,EAAc,uDAC3BplN,IAAK,sBAIX,CACEwnB,UAAW,QACXosL,cAAe,QACf5zM,IAAK,IACL+xM,QAAS,YACTp6J,SAAU,CACR,CACEi8J,cAAe,UACfoD,gBAAgB,EAChBjF,QAAS,YACTp6J,SAAU,CAAC5T,IAEbA,IAGJ,CACEk5E,MAAOmoG,EAAc,IACrBplN,IAAK,IACLy7M,aAAa,EACbG,WAAW,EACX9tJ,UAAW,Q,cCtWnB,SAAStxD,EAAOugE,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgE,OAHM,KAUlB,SAASoD,IAAgB,QAAAyE,EAAAzJ,UAAAC,OAANyJ,EAAI,IAAAnF,MAAAkF,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA3J,UAAA2J,GACrB,MAAMusF,EAASxsF,EAAKd,KAAK+oC,GAAM/vC,EAAO+vC,KAAI7vB,KAAK,IAC/C,OAAOo0E,EAmIT32F,EAAOC,QAtHP,SAAcy9M,GACZ,MAAMrG,EAAW,yBA8BXkS,EAAW,CACfl8L,UAAW,WACX4vL,SAAU,CACR,CAAEn6F,MAAOr9G,EAAO,IAAK4xM,IACrB,CAAEv0F,MAAO,QACT,CAAEA,MAAO,UAGP+mG,EAAW,CACfx8L,UAAW,QACX4vL,SAAU,CACR,CAAEn6F,MAAOr9G,EAAO,IAAK4xM,IACrB,CAAEv0F,MAAO,QACT,CAAEA,MAAOr9G,EAAO,IAAK4xM,IACrB,CAAEv0F,MAAOr9G,EAAO,OAAQ4xM,IAGxB,CAAEv0F,MAAO,UAIb,MAAO,CACLpgH,KAAM,UAEN0gE,SACE,ysDAqCF5lB,SAAU,CA3FC,CACXnwB,UAAW,OACXy1F,MAAO,mBA8FL46F,EAAK3F,QAAQ,QAAS,KAAM,CAAEpkJ,UAAW,IACzC+pJ,EAAK3F,QAAQ,IAAK,KAClB2F,EAAK7F,kBACL,CACExqL,UAAW,SACX4vL,SAAU,CAER,CAAEn6F,MAAO,IAAKj9G,IAAK,YAGvBgkN,EAjGgB,CAClBx8L,UAAW,cACXsmC,UAAW,EACXmvD,MAAO,KARQ,CACfz1F,UAAW,WACXsmC,UAAW,EACXmvD,MAAO,KAsGLymG,EAvFU,CACZl8L,UAAW,SACX4vL,SAAU,CACN,CAAEn6F,MAAO,gBAEbnvD,UAAW,GAbE,CACbtmC,UAAW,SACX4vL,SAAU,CACN,CAAEn6F,MAAO,qBACT,CAAEA,MAAO,iDAEbnvD,UAAW,O,cCqCf3zD,EAAOC,QAtFP,SAAay9M,GAET,IAKIya,EAAc,CACd9qM,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CATgB,CAC1BnwB,UAAW,QACXy1F,MAAO,eAYPs1G,EAAc,CACd/qM,UAAW,SACXsmC,UAAU,EACVmvD,MAAO46F,EAAKlG,aAgChB,MAAO,CACH90M,KAAM,kCACNk1M,QAAS,IACTp6J,SAAU,CACN26K,EACA,CACI9qM,UAAW,UACX4vL,SAAU,CACNS,EAAK3F,QAAQ,KAAM,KACnB2F,EAAK3F,QAAQ,OAAQ,SAEzBpkJ,UAAW,GAEfykK,EACA,CACI/qM,UAAW,UACX4vL,SAAU,CACN,CACIn6F,MAAO,yBAEX,CACIA,MAAO,6VA1BP,CAChBz1F,UAAW,WACXy1F,MAAO,s0HA1BS,CAChBz1F,UAAW,UACX4vL,SAAU,CACN,CACIn6F,MAAO,2DAEX,CACIA,MAAO,8/MAEX,CACIA,MAAO,sBAEX,CACIA,MAAO,yBAEX,CACIA,MAAO,wKAEX,CACIA,MAAO,yDAqCX,CACIz1F,UAAW,OACXy1F,MAAO,wE,cCPvB9iH,EAAOC,QAzEP,SAAay9M,GACX,MAAM2a,EAAuB,WACvBC,EAAuB,WACvBC,EAAgB,CACpBz1G,MAAOu1G,EACPxyN,IAAKyyN,EACL96K,SAAU,CAAC,SAEPsoK,EAAW,CACfpI,EAAK3F,QAAQ,iBAAsC,KACnD2F,EAAK3F,QACH,aACAugB,EACA,CACE96K,SAAU,CAAC+6K,GACX5kK,UAAW,MAIjB,MAAO,CACLjxD,KAAM,MACN0gE,SAAU,CACRo5I,SAAUkB,EAAKpG,oBACf6O,QAAS,iBACT1mL,QAAS,0FACTsmL,SAEE,wlCAeJvoK,SAAUsoK,EAASrgN,OAAO,CACxB,CACE4nB,UAAW,WACXosL,cAAe,WACf5zM,IAAK,MACL23C,SAAU,CACRkgK,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC5B31F,MAAO,sDAET,CACEz1F,UAAW,SACXy1F,MAAO,MACP+5F,gBAAgB,EAChBr/J,SAAUsoK,IAEZrgN,OAAOqgN,IAEXpI,EAAKrF,cACLqF,EAAK/F,iBACL+F,EAAK7F,kBACL,CACExqL,UAAW,SACXy1F,MAAOu1G,EACPxyN,IAAKyyN,EACL96K,SAAU,CAAC+6K,GACX5kK,UAAW,Q,cCgBnB3zD,EAAOC,QAnFP,SAAkBy9M,GAEhB,MAAM6L,EAAW,CACfl8L,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,SAAW46F,EAAKpG,oBAAsB,MAC7C95J,SAAU,CAAEkgK,EAAKhG,mBAEnB,CACE50F,MAAO,oBAKP4mG,EAAe,CACnBr8L,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACRkgK,EAAKhG,iBACL6R,IAIEiP,EAAO,CACXnrM,UAAW,WACXy1F,MAAO,eACPj9G,IAAK,KACLu9D,SAAU,CACR2iJ,SACE,kPAKJvoK,SAAU,CAAE+rK,IAGR8G,EAAa,CACjBvtG,MAAO,IAAM46F,EAAKpG,oBAAsB,mBAapCmhB,EAAS,CACbprM,UAAW,UACXy1F,MAAO,WACPj9G,IAAK,IACL23C,SAAU,CAAE+rK,IAEd,MAAO,CACL7mN,KAAM,WACNs3B,QAAS,CACP,KACA,MACA,QAEFopC,SAAU,CACRo5I,SAAU,SACV/8K,QAAS,6HAGX+d,SAAU,CACRkgK,EAAKvF,kBACLoR,EACAG,EACA8O,EACAnI,EAjCS,CACXhjM,UAAW,OACXy1F,MAAO,YACPj9G,IAAK,IACLu9D,SAAU,CACRo5I,SAAU,UACV,eAAgB,WA6BhBic,M,cCtFN,MAAMC,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,QACA,aACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,SACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,mBACA,aACA,wBACA,kBACA,uBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,WACA,QACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,cACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,oBACA,OACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,iCACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,WACA,uBACA,kBACA,uBACA,4BACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,WACA,cACA,gBACA,oBACA,OACA,OACA,WACA,eACA,OACA,OACA,YACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,gBACA,iCACA,2BACA,aACA,kBACA,MACA,UACA,uBACA,aACA,eACA,iBACA,uBACA,oBACA,mBACA,eACA,QACA,gBACA,WACA,aACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,oBACA,uBACA,YACA,SACA,cACA,YACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,WACA,cACA,cACA,qBACA,eACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,oBACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,mBACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,wBACA,UACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,eACA,gBACA,YACA,kBACA,uBACA,qBACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,eACA,cACA,iBACA,uBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,cACA,oBACA,kBACA,wBACA,sBACA,4BACA,iBACA,iBACA,oBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,UACA,kBACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,iCACA,iBACA,sBACA,gBACA,sBACA,yBACA,sBACA,oBACA,oBACA,kBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,eACA,OACA,WACA,SACA,SACA,YACA,WACA,6BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,0BACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,2BACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,4BACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,0BACA,cACA,kBACA,gBACA,eACA,uBACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,cACA,YACA,iBACA,kBACA,OACA,eACA,SACA,cACA,KACA,wBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,eACA,cACA,UACA,4BACA,eACA,cACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,2BACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,+BACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,mBACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,eACA,iBACA,mBACA,qBACA,eACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,YACA,WACA,gBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,kBACA,wBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,6BACA,oBACA,gBACA,sBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,UACA,YACA,eACA,gBACA,WACA,QACA,iBACA,yBACA,OACA,WACA,WACA,eACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,YACA,cACA,gBACA,cACA,UACA,kBACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,kCACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,kBACA,wBACA,iCACA,+BACA,8BACA,iBACA,iBACA,wBACA,iBACA,gBACA,gBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,gBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,iBACA,YACA,kBACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,UACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,2BACA,aACA,iBACA,cACA,+BACA,gCACA,iBACA,gCACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,OACA,WACA,iBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,mBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,4BACA,SACA,cACA,mBACA,YACA,aACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,aACA,cACA,QACA,kBACA,cACA,iBACA,cACA,WACA,oBACA,sBACA,sBACA,OACA,uBACA,WACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,mBACA,oBACA,mBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,gBACA,iBACA,UACA,SACA,yBACA,kBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,iBACA,gBACA,kBACA,uBACA,uBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,iBACA,iBACA,iBACA,eACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,cACA,0BACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,kBACA,kBACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,YACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,oBACA,wBACA,iBACA,mBACA,iBACA,UACA,gBACA,wBACA,aACA,6BACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,wBACA,kBACA,kBACA,SACA,WACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,oBACA,sBACA,gBACA,iBACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,gBACA,SACA,YACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,uBACA,YACA,aACA,mCACA,mCACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,YACA,gBACA,YACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,gBACA,0BACA,iBACA,6BACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,2BACA,cACA,qCACA,gCACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,2BACA,eACA,gBACA,cACA,0BACA,eACA,8BACA,YACA,eACA,iBACA,oBACA,uCACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,qBACA,KACA,OACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,qBACA,QACA,cACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,mBACA,cACA,YACA,4BACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,WACA,0BACA,mBACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,aACA,SACA,aACA,cACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,yBACA,kBACA,kBACA,QACA,OACA,WACA,oBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,eACA,cACA,gBACA,eACA,iBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,mBACA,uBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,mBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,qBACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,gBACA,yBACA,aACA,YACA,mBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,mBACA,qBACA,eACA,UACA,cACA,UACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,4BACA,0BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,yBACA,oBACA,8BACA,gBACA,uBACA,oBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,wBACA,oBACA,aACA,aACA,eACA,iBACA,wBACA,cACA,wBACA,wBACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,4BACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,eACA,UACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,aACA,YACA,eACA,QACA,cACA,eACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,2BACA,gBACA,6BACA,QACA,gBACA,kBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,4BACA,SACA,YACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,iBACA,UACA,cACA,cACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,aACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,iBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,yBACA,uBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,kBACA,SACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,UACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,WACA,YACA,aACA,WACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,YACA,8BACA,UACA,mBACA,QACA,cACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,mBACA,gBACA,QACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,YACA,WACA,0BACA,4BACA,4BACA,eACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mCACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,UACA,uBACA,gBACA,YACA,iBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,gBACA,qBACA,iBACA,gBACA,aACA,YACA,SACA,YACA,cACA,eACA,kBACA,cACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,mBACA,SACA,aACA,WACA,iBACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,eACA,mBACA,uBACA,qBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,iBACA,qBACA,WACA,eACA,wBACA,WACA,eACA,gBACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,oBACA,kBACA,2BACA,eACA,qBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,eACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,sBACA,wBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,gBACA,sBACA,mBACA,gBACA,aACA,YACA,YACA,YACA,kBACA,gBACA,YACA,WACA,gBACA,mBACA,kBACA,cACA,UACA,uBACA,sBACA,oBACA,iBACA,4BACA,mBACA,oBACA,qBACA,4BACA,0BACA,YACA,YACA,eACA,WACA,iBACA,iBACA,iBACA,e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AAAC,IAAJ/uF,EAAI+uF,GAAAz4F,UAAAy4F,GACrB,MAAMvC,EAAS,IAAMxsF,EAAKd,KAAK+oC,GAAM/vC,EAAO+vC,KAAI7vB,KAAK,KAAO,IAC5D,OAAOo0E,EAgeT32F,EAAOC,QArdP,SAAcy9M,GACZ,MA0OMwb,EAAkB,uBAClBC,EAAgB,CACpB3c,SAAU,SACV/8K,QA7Oe,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,OAOkBld,KAAK,MAEnBilM,EAAQ,CACZn6L,UAAW,QACXy1F,MAAO,UACPj9G,IAAK,MACLu9D,SAAU+1J,GAENrJ,EAAS,CACbhtG,MAAO,OACPj9G,IAAK,MAGDqkC,EAAM,CACV+yK,SAAU,CACR,CACEn6F,MAAO,QAET,CACEA,MAAOr9G,EACL,iDAEA,0BAIJ,CACEq9G,MAAO,gBACPnvD,UAAW,KAIXylK,EAAkB,CACtB1b,EAAKhG,iBACL8P,EACAt9K,GAEImvL,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,KAOIC,EAAmB,SAACjyM,EAAQ82C,GAAwB,IAAlBC,EAAK39D,UAAAC,OAAA,QAAAmV,IAAApV,UAAA,GAAAA,UAAA,GAAG,MAC9C,MAAMk5B,EAAoB,QAAVykC,EACZA,EACA34D,EAAO24D,EAAOD,GAClB,OAAO14D,EACLA,EAAO,MAAO4hB,EAAQ,KACtB82C,EACA,oBACAxkC,EACA,oBACAykC,EACA86J,IAQEK,EAAYA,CAAClyM,EAAQ82C,EAAMC,IACxB34D,EACLA,EAAO,MAAO4hB,EAAQ,KACtB82C,EACA,oBACAC,EACA86J,GAGEM,EAAwB,CAC5BtvL,EACAwzK,EAAKvF,kBACLuF,EAAK3F,QACH,OACA,OACA,CACE8E,gBAAgB,IAGpBiT,EACA,CACEziM,UAAW,SACXmwB,SAAU47K,EACVnc,SAAU,CACR,CACEn6F,MAAO,kBACPj9G,IAAK,MACL8tD,UAAW,GAEb,CACEmvD,MAAO,kBACPj9G,IAAK,MACL8tD,UAAW,GAEb,CACEmvD,MAAO,kBACPj9G,IAAK,MACL8tD,UAAW,GAEb,CACEmvD,MAAO,kBACPj9G,IAAK,MACL8tD,UAAW,GAEb,CACEmvD,MAAO,gBACPj9G,IAAK,IACL8tD,UAAW,GAEb,CACEmvD,MAAO,UACPj9G,IAAK,IACL8tD,UAAW,GAEb,CACEmvD,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,mBAEnB,CACE50F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,mBAEnB,CACE50F,MAAO,UACPnvD,UAAW,GAEb,CACEmvD,MAAO,eACPnvD,UAAW,KAIjB,CACEtmC,UAAW,SACXy1F,MAAO,4EACPnvD,UAAW,GAEb,CACEmvD,MAAO,WAAa46F,EAAK5E,eAAiB,gDAC1C11I,SAAU,kCACVzP,UAAW,EACXnW,SAAU,CACRkgK,EAAKvF,kBACL,CACE9qL,UAAW,SACX4vL,SAAU,CAER,CAAEn6F,MAAOw2G,EAAiB,SAAUzf,KAAUwf,KAE9C,CAAEv2G,MAAOw2G,EAAiB,SAAU,MAAO,QAC3C,CAAEx2G,MAAOw2G,EAAiB,SAAU,MAAO,QAC3C,CAAEx2G,MAAOw2G,EAAiB,SAAU,MAAO,SAE7C3lK,UAAW,GAEb,CACEtmC,UAAW,SACX4vL,SAAU,CACR,CAGEn6F,MAAO,aACPnvD,UAAW,GAGb,CAAEmvD,MAAOy2G,EAAU,YAAa,KAAM,OAEtC,CAAEz2G,MAAOy2G,EAAU,OAAQ1f,KAAUwf,GAAe,OAEpD,CAAEv2G,MAAOy2G,EAAU,OAAQ,KAAM,OACjC,CAAEz2G,MAAOy2G,EAAU,OAAQ,KAAM,OACjC,CAAEz2G,MAAOy2G,EAAU,OAAQ,KAAM,WAKzC,CACElsM,UAAW,WACXosL,cAAe,MACf5zM,IAAK,uBACL67M,YAAY,EACZ/tJ,UAAW,EACXnW,SAAU,CAAEkgK,EAAKjF,aAEnB,CACE31F,MAAO,UACPnvD,UAAW,GAEb,CACEmvD,MAAO,aACPj9G,IAAK,YACLs6M,YAAa,cACb3iK,SAAU,CACR,CACEslE,MAAO,QACPj9G,IAAK,IACLwnB,UAAW,cAQnB,OAHAm6L,EAAMhqK,SAAWg8K,EACjB1J,EAAOtyK,SAAWg8K,EAEX,CACL92N,KAAM,OACNs3B,QAAS,CACP,KACA,MAEFopC,SAAU+1J,EACV37K,SAAUg8K,K,cC3ddx5N,EAAOC,QA3BP,SAAqBy9M,GACnB,MAAO,CACLh7M,KAAM,cACNy9M,YAAa,MACb3iK,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO,oBAGT,CACEA,MAAO,oBACPj9G,IAAK,IACLs6M,YAAa,QAGf,CACEr9F,MAAO,gBACPj9G,IAAK,WACLs6M,YAAa,OACbkB,cAAc,EACdK,YAAY,O,cC2DpB1hN,EAAOC,QAjFP,SAAgBy9M,GACd,MAAMt7L,EAAS,CACbiL,UAAW,SACXsmC,UAAW,EACXspJ,SAAU,CACR,CACEn6F,MAAO,mBAET46F,EAAKtF,cAIT,MAAO,CACL11M,KAAM,SACNm4M,kBAAkB,EAClBz3I,SAAU,CACR3jC,QAAS,qPAKTsmL,SAAU,uMAGVI,QAAS,sCAEXvO,QAAS,OACTp6J,SAAU,CACRkgK,EAAK3F,QAAQ,OAAQ,QACrB2F,EAAK3F,QACH,IACA,IACA,CACEpkJ,UAAW,IAGf,CACEtmC,UAAW,WACXosL,cAAe,kBACf5zM,IAAK,UACL+xM,QAAS,KACTp6J,SAAU,CAAEkgK,EAAKhF,wBAEnB,CACErrL,UAAW,QACXosL,cAAe,kBACf5zM,IAAK,IACL23C,SAAU,CACR,CACEi8J,cAAe,sBAEjBiE,EAAKhF,wBAGT,CACErrL,UAAW,WACXy1F,MAAO,sBAET,CACEz1F,UAAW,OACXy1F,MAAO,QACPj9G,IAAK,IACLu9D,SAAU,CACR,eAAgB,kCAGpB,CACE/1C,UAAW,OACXy1F,MAAO,kBAET,CACE22F,cAAe,QACf5zM,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhF,wBAEnBgF,EAAK7F,kBACLz1L,M,cC+DNpiB,EAAOC,QAzIP,SAAoBy9M,GAClB,MAAM6J,EAAW,CACf9nL,QAEE,6IAEF0mL,QACE,iBACFJ,SACE,qRAKEkF,EAAc,2BACdzD,EAAQ,CACZn6L,UAAW,QACXy1F,MAAO,MACPj9G,IAAK,KACLu9D,SAAUmkJ,GAEN0C,EAAc,CAClBvM,EAAK9H,QAAQ8H,EAAKrF,cAChB,CACE+E,OAAQ,CACNv3M,IAAK,WACL8tD,UAAW,KAGjB,CACEtmC,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,mBAEnB,CACE50F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACRkgK,EAAKhG,iBACL8P,MAKR,CACEn6L,UAAW,WACXy1F,MAAO,MAAQ46F,EAAKrG,UAEtB,CACEv0F,MAAO,IAAM46F,EAAKrG,UAEpB,CACEv0F,MAAO46F,EAAKrG,SAAW,OAASqG,EAAKrG,WAGzCmQ,EAAMhqK,SAAWysK,EAEjB,MAAMrgL,EAAQ8zK,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC1C31F,MAAOmoG,IAEHC,EAAqB,0BACrB7D,EAAS,CACbh6L,UAAW,SACXy1F,MAAO,YACPw+F,aAAa,EAGb9jK,SAAU,CACR,CACEslE,MAAO,KACPj9G,IAAK,KACLu9D,SAAUmkJ,EACV/pK,SAAU,CAAE,QAAS/3C,OAAOwkN,MAKlC,MAAO,CACLvnN,KAAM,aACNs3B,QAAS,CAAE,QACXopC,SAAUmkJ,EACV3P,QAAS,OACTp6J,SAAUysK,EAAYxkN,OAAO,CAC3Bi4M,EAAK3F,QAAQ,KAAM,KACnB,CACE1qL,UAAW,WACXy1F,MAAO,QAAUmoG,EAAc,YAAcC,EAC7CrlN,IAAK,QACLy7M,aAAa,EACb9jK,SAAU,CACR5T,EACAy9K,IAGJ,CACEvkG,MAAO,aACPnvD,UAAW,EACXnW,SAAU,CACR,CACEnwB,UAAW,WACXy1F,MAAOooG,EACPrlN,IAAK,QACLy7M,aAAa,EACb9jK,SAAU,CAAE6pK,MAIlB,CACEh6L,UAAW,QACXosL,cAAe,QACf5zM,IAAK,IACL+xM,QAAS,YACTp6J,SAAU,CACR,CACEi8J,cAAe,UACfoD,gBAAgB,EAChBjF,QAAS,YACTp6J,SAAU,CAAE5T,IAEdA,IAGJ,CACEvc,UAAW,OACXy1F,MAAOmoG,EAAc,IACrBplN,IAAK,IACLy7M,aAAa,EACbG,WAAW,EACX9tJ,UAAW,Q,cChEnB3zD,EAAOC,QApEP,SAAcy9M,GACZ,MAAO,CACLh7M,KAAM,OACNm4M,kBAAkB,EAClBr9J,SAAU,CACR,CACEi8J,cACE,+FACF5zM,IAAK,IAAKg3M,gBAAgB,EAC1Bz5I,SAAU,CAER3jC,QACE,gkCAaF0mL,QACE,4BAEFJ,SACE,mxCAaJvoK,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,IAAMj9G,IAAK,IAClB23C,SAAU,CAACkgK,EAAKhG,mBAElB,CACErqL,UAAW,SACXy1F,MAAO,IAAKj9G,IAAK,IACjB23C,SAAU,CAACkgK,EAAKhG,mBAElB,CACErqL,UAAW,SACXy1F,MAAO,IAAKj9G,IAAK,IACjB23C,SAAU,CAACkgK,EAAKhG,kBAChB/jJ,UAAW,GAEb+pJ,EAAKrF,cACLqF,EAAKxF,uBAGTwF,EAAKxF,yB,cCoEXl4M,EAAOC,QAnIP,SAAey9M,GACb,MAAMxzK,EAAM,CACV7c,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,SAET,CACEA,MAAO,OACPj9G,IAAK,MAEP,CACEi9G,MAAO,OAAS46F,EAAKpG,uBAIrB8c,EAAU,CACdvX,gBAAgB,EAChBz5I,SAAU,CACRo5I,SAAU,WACV2J,QACE,kJAGJxyJ,UAAW,EACXikJ,QAAS,KACTp6J,SAAU,CACRkgK,EAAKvF,kBACL,CACE9qL,UAAW,SACXmwB,SAAU,CACRkgK,EAAKhG,iBACLxtK,GAEF+yK,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,IACPj9G,IAAK,OAKX,CACEi9G,MAAO,aACPj9G,IAAK,MACLg3M,gBAAgB,EAChB6E,YAAY,EACZlkK,SAAU,CAAEtT,IAEd,CACE7c,UAAW,SACXmwB,SAAU,CACRkgK,EAAKhG,iBACLxtK,GAEF+yK,SAAU,CACR,CACEn6F,MAAO,SACPj9G,IAAK,YACL47M,WAAW,GAGb,CACE3+F,MAAO,YACPj9G,IAAK,YACL47M,WAAW,GAGb,CACE3+F,MAAO,sBAGT,CACEA,MAAO,wBAKb,CACEz1F,UAAW,SACXy1F,MAAO,+DAGT,CACEz1F,UAAW,SACXy1F,MAAO,4BACPnvD,UAAW,GAEbzpB,IAIJ,MAAO,CACLxnC,KAAM,eACNs3B,QAAS,CAAE,aACXwjB,SAAU,CACRkgK,EAAKvF,kBACL,CACEr1F,MAAO46F,EAAKpG,oBAAsB,UAClCgK,aAAa,EACbz7M,IAAK,KACL23C,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO46F,EAAKpG,sBAGhB3jJ,UAAW,GAEb,CACEmvD,MAAO46F,EAAKpG,oBAAsB,MAClCzxM,IAAK,QACLy7M,aAAa,EACb9jK,SAAU,CACR,CACEnwB,UAAW,YACXy1F,MAAO46F,EAAKpG,oBACZ8F,OAAQgX,IAGZzgK,UAAW,IAGfikJ,QAAS,e,cCzDb53M,EAAOC,QAvEP,SAAay9M,GACX,MAAO,CACLh7M,KAAM,MACN0gE,SAAU,CACR3jC,QACE,qXAMF0mL,QACE,uDACFJ,SACE,4TAMJvoK,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO,OACPj9G,IAAK,OACL8tD,UAAW,IAEb,CACEtmC,UAAW,SACXy1F,MAAO,eACPj9G,IAAK,IACL23C,SAAU,CACR,CACEslE,MAAO,QAIb,CACEz1F,UAAW,SACXy1F,MAAO,oBACPj9G,IAAK,OAEP63M,EAAK7F,kBACL,CACExqL,UAAW,OACXy1F,MAAO,eACPnvD,UAAW,GAEb,CACEtmC,UAAW,SACXsmC,UAAW,EACXspJ,SAAU,CACR,CACEn6F,MAAO,4DAET,CACEA,MAAO,+CAET,CACEA,MAAO,iDAET,CACEA,MAAO,2CAIb46F,EAAKvF,sB,cCTXn4M,EAAOC,QAzDP,SAAay9M,GACX,MAAM+b,EAAe,CACnBh6L,QACE,8CACF0mL,QACE,yBACFJ,SACE,2FAGE2T,EAAY,CAChBrsM,UAAW,QACXy1F,MAAO,OACPj9G,IAAK,KACLu9D,SAAUq2J,GAaNrS,EAAS,CACb/5L,UAAW,SACXmwB,SAAU,CAAEk8K,GACZzc,SAAU,CACR,CACEn6F,MAAO,KACPj9G,IAAK,MAEP,CACEi9G,MAAO,IACPj9G,IAAK,OAILokN,EAAc,CAClBvM,EAAKtF,YACLsF,EAAKvF,kBACLuF,EAAKxF,qBACLkP,EA7BY,CACZtkG,MAAO,uBACPw+F,aAAa,EACb3tJ,UAAW,EACXnW,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO,UA0Bb,OADA42G,EAAUl8K,SAAWysK,EACd,CACLvnN,KAAM,MACNs3B,QAAS,CAAE,SACXopC,SAAUq2J,EACVj8K,SAAUysK,K,cCxBdjqN,EAAOC,QA5BP,SAAkBy9M,GAChB,MAAO,CACLh7M,KAAM,YACN86C,SAAU,CACR,CACEnwB,UAAW,OACX+vL,OAAQ,CAGNv3M,IAAK,MACLu3M,OAAQ,CACNv3M,IAAK,IACLs6M,YAAa,eAGjBlD,SAAU,CACR,CACEn6F,MAAO,eAET,CACEA,MAAO,0B,cC0FnB9iH,EAAOC,QA/GP,SAAcy9M,GACZ,MAKMic,EAAU,CAEdtsM,UAAW,WACXy1F,MAAO,mBAGHyvG,EAAY,CAEhBllM,UAAW,WACXy1F,MAAO,SACP80F,QAAS,YAGLgiB,EAAY,CAEhBvsM,UAAW,WACXy1F,MAAO,oBA2BHskG,EAAS,CACb/5L,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,IACPj9G,IAAK,MAGT+xM,QAAS,KACTp6J,SAAU,CA7BM,CAEhBnwB,UAAW,OACXy1F,MAAO,kBAvCS,CAChBz1F,UAAW,WACXy1F,MAAO,wbAkEL62G,EACApH,EACAqH,IAIJ,MAAO,CACLl3N,KAAM,OACNm4M,kBAAkB,EAClBz3I,SAAU,CACR3jC,QACA,ilFACA0mL,QACA,kYAEF3oK,SAAU,CACRkgK,EAAKvF,kBACLuF,EAAKxF,qBACLwF,EAAK3F,QACH,IACA,IACA,CACEpkJ,UAAW,IAGf,CACEtmC,UAAW,WACXosL,cAAe,uCACf5zM,IAAK,KAEPuhN,EApEa,CAEf/5L,UAAW,UACXy1F,MAAO,4RAmEL62G,EACApH,EACAqH,EA9Ee,CAEjBvsM,UAAW,SACXy1F,MAAO,qpBAeO,CAEdz1F,UAAW,QACXy1F,MAAO,YA4DL46F,EAAKtF,gB,cCOXp4M,EAAOC,QAhHP,SAAoBy9M,GAClB,MAIMmc,EAAgB,yBA+BhBC,EAAiB,CACrBtd,SAAUqd,EACVp6L,QAAS,+CAEX,MAAO,CACL/8B,KAAM,cACNs3B,QAAS,CACP,KACA,OACA,QACA,UACA,iBAEFopC,SA3CoB,CACpBo5I,SAAUqd,EACVp6L,QACE,guCAsBF0mL,QACE,wCACFJ,SACE,oFAgBFnO,QAAS,KACTp6J,SAAU,CAlDM,CAChBnwB,UAAW,WACXy1F,MAAO,wEAkDL46F,EAAKzF,oBACLyF,EAAKxF,qBACLwF,EAAKrF,cACLqF,EAAK7F,kBACL6F,EAAK/F,iBACL,CACEtqL,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,KACPj9G,IAAK,IACL+xM,QAAS,MACTp6J,SAAU,CAAEkgK,EAAKhG,qBAIvB,CACErqL,UAAW,OACXy1F,MAAO,eACPj9G,IAAK,IACLu9D,SAAU,CACR,eACE,kFAGJ5lB,SAAU,CACR,CACEslE,MAAO,OACPnvD,UAAW,GAEb+pJ,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CACnCxqL,UAAW,gBAEb,CACEA,UAAW,cACXy1F,MAAO,QACPj9G,IAAK,IACL+xM,QAAS,OAEX8F,EAAKzF,oBACLyF,EAAKxF,uBAGT,CACE7qL,UAAW,QACXy1F,MAAO,IAAMg3G,EAAer6L,QAAQjT,MAAM,KAAKjK,KAAK,KAAO,OAC3D1c,IAAK,SACL67M,YAAY,EACZt+I,SAAU02J,EACVt8K,SAAU,CAAEkgK,EAAKhF,wBAEnB,CACE51F,MAAO,MAAQ46F,EAAKpG,oBACpB3jJ,UAAW,O,cCjCnB3zD,EAAOC,QAxEP,SAAey9M,GAEb,MAAO,CACLh7M,KAAM,QACNs3B,QAAS,CAAC,MACVopC,SAAU,CACRo5I,SAAU,eACV/8K,QACE,sVAOFsmL,SAEE,qHAGFI,QACE,cAEJvO,QAAS,UACTp6J,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO,yBACPnvD,UAAW,GAEb+pJ,EAAK3F,QACH,SACA,SACA,CACEv6J,SAAU,CAAC,UAGf,CACEnwB,UAAW,SACXy1F,MAAO,0BAGT,CACEz1F,UAAW,OACXy1F,MAAO,iBAET,CACEz1F,UAAW,OACXy1F,MAAO,kBACPnvD,UAAW,GAEb,CACEmvD,MAAO,qBAAwBnvD,UAAW,GAE5C+pJ,EAAK9H,QAAQ8H,EAAK/F,iBAAkB,CAACtqL,UAAW,SAAUsmC,UAAW,IACrE+pJ,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CAACD,QAAS,OAC/C,CACEvqL,UAAW,SACXy1F,MACE,2HAIFnvD,UAAW,GAEb,CACEmvD,MAAO,U,cCKf9iH,EAAOC,QAxEP,SAAkBy9M,GAChB,MAAMqc,EAAe,CACnB1sM,UAAW,UACXy1F,MAAO,kCAMH6iG,EAAU,CACdt4L,UAAW,SACXy1F,MAAO,8BACPnvD,UAAW,GAEPyzJ,EAAS1J,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CAClDD,QAAS,OA0BLoiB,EAAY,CAChB3sM,UAAW,WACXosL,cAAe,kBACf5zM,IAAK,OACL23C,SAAU,CApBG,CACbnwB,UAAW,SACXy1F,MAAO,MACPj9G,IAAK,MACL23C,SAAU,CACR,OACAmoK,EACAyB,EACA2S,EA5Ba,CACf1sM,UAAW,UACXy1F,MAAO,yBAwCL46F,EAAKhF,wBAIT,MAAO,CACLh2M,KAAM,WACNs3B,QAAS,CAAE,QACXopC,SAAU,CACR3jC,QAAS,+DACT0mL,QAAS,sBACTJ,SAAU,udAEZvoK,SAAU,CACRkgK,EAAKzF,oBACLyF,EAAKxF,qBACLyN,EA7CW,CACbt4L,UAAW,OACX+1C,SAAU,CACR,eAAgB,eAElB0/C,MAAO,gBACPj9G,IAAK,KAyCHuhN,EACA2S,EA5Bc,CAChBj3G,MAAO,SACPnvD,UAAW,GA4BTqmK,M,cCyBNh6N,EAAOC,QA7FP,SAAiBy9M,GACf,MAAMuc,EAAmB,CACvBzd,SAAU,SACV/8K,QACE,+lCASEy6L,EAAgBxc,EAAK3F,QACzB,KACA,KACA,CACEpkJ,UAAW,IAGTwmK,EAAgBzc,EAAK3F,QACzB,SACA,SACA,CACEpkJ,UAAW,KAGTyzJ,EAAS,CACb/5L,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACR,CACEslE,MAAO,QAIPinG,EAAc,CAClB18L,UAAW,SACXy1F,MAAO,YAEH+mG,EAAW,CACfx8L,UAAW,WACXosL,cAAe,mDACf5zM,IAAK,OACLu9D,SAAU,+DACV5lB,SAAU,CACRkgK,EAAKjF,WACL,CACEprL,UAAW,SACXy1F,MAAO,MACPj9G,IAAK,MACLu9D,SAAU62J,EACVz8K,SAAU,CACR4pK,EACA2C,IAGJmQ,EACAC,IAGJ,MAAO,CACLz3N,KAAM,UACNm4M,kBAAkB,EAClBz3I,SAAU62J,EACVriB,QAAS,kCACTp6J,SAAU,CACR08K,EACAC,EACAzc,EAAKzF,oBACLmP,EACA2C,EACArM,EAAKtF,YACLyR,EACA,CACEx8L,UAAW,QACXy1F,MAAO,eACPj9G,IAAK,OACLu9D,SAAU62J,EACVz8K,SAAU,CACR4pK,EACA2C,EACAmQ,EACAC,EACAzc,EAAKzF,oBACL4R,Q,cCrCV7pN,EAAOC,QAhDP,SAAiBy9M,GACf,MAAM0c,EAAmB1c,EAAK3F,QAC5B,KACA,KACA,CACEv6J,SAAU,CAAE,UAGhB,MAAO,CACL96C,KAAM,UACNy9M,YAAa,MACbxsJ,UAAW,EACXnW,SAAU,CACRkgK,EAAK3F,QAAQ,KAAM,KACnB2F,EAAK3F,QACH,UACA,KACA,CACEpkJ,UAAW,GACXnW,SAAU,CAAE48K,KAGhB,CACE/sM,UAAW,OACXy1F,MAAO,gCACPnvD,UAAW,IAEb,CACEtmC,UAAW,QACXy1F,MAAO,4DAET,CACEz1F,UAAW,WACXy1F,MAAO,qBAET,CACEz1F,UAAW,UACXy1F,MAAO,eAET,CACEz1F,UAAW,SACXy1F,MAAO,oBAET46F,EAAKrF,kB,cCOXr4M,EAAOC,QAlDP,SAAYy9M,GAWV,MAAO,CACLh7M,KAAM,uBACNs3B,QAAS,CAAE,WACXopC,SAAU,CACRo5I,SAAU,gBACVuJ,SAGE,wDACFtmL,QACE,kzBAgBF0mL,QACE,sDAEJ3oK,SAAU,CACRkgK,EAAKvF,kBACLuF,EAAKtF,YACLsF,EAAK7F,kBA1CK,CACZxqL,UAAW,WACXy1F,MAAO,sBAEK,CACZz1F,UAAW,WACXy1F,MAAO,UACPj9G,IAAK,S,cCqmBT7F,EAAOC,QAnmBP,SAAey9M,GACb,MAAM2c,EAAe3c,EAAK3F,QAAQ,KAAM,KAElCuiB,EAAgB,4CA0DhBzH,EAEJ,gxBAeI0H,EACJ1H,EAAM1rM,OACHqF,MAAM,KACNnjB,KAAI,SAASugB,GAAO,OAAOA,EAAI4C,MAAM,KAAK,MAC1CjK,KAAK,KAuLJi4M,EAzFJ,quIA0FYrzM,OACPqF,MAAM,KACNnjB,KAAI,SAASugB,GAAO,OAAOA,EAAI4C,MAAM,KAAK,MAC1CjK,KAAK,KAEZ,MAAO,CACL7f,KAAM,aACNs3B,QAAS,CACP,WACA,cAEF6gL,kBAAkB,EAClBz3I,SAAU,CACR3jC,QACMg7L,stFACN1U,SACM2U,i2MAIR9iB,QAAS,6DACTp6J,SAAU,CAER,CACEnwB,UAAW,UACX4vL,SAAU,CACR,CACEn6F,MAAO,qBAET,CACEA,MAAO,2CAET,CACEA,MAAO,2CAET,CACEA,MAAO,gDAET,CACEA,MAAO,qCAET,CACEA,MAAO,4BAET,CACEA,MAAO,uBAET,CACEA,MAAO,8BAET,CACEA,MAAO,0CAET,CACEA,MAAO,gCAET,CACEA,MAAO,sCAET,CACEA,MAAO,iFAET,CACEA,MAAO,uBAET,CACEA,MAAO,uBAET,CACEA,MAAO,+BAET,CACEA,MAAO,qBAET,CACEA,MAAO,uBAET,CACEA,MAAO,8DAET,CACEA,MAAO,6BAET,CACEA,MAAO,gDAET,CACEA,MAAO,oCAET,CACEA,MAAO,qCAET,CACEA,MAAO,wCAET,CACEA,MAAO,6BAET,CACEA,MAAO,wBAET,CACEA,MAAO,wCAET,CACEA,MAAO,2BAET,CACEA,MAAO,4BAET,CACEA,MAAO,mCAET,CACEA,MAAO,+BAET,CACEA,MAAO,8BAET,CACEA,MAAO,yCAET,CACEA,MAAO,qCAET,CACEA,MAAO,uCAET,CACEA,MAAO,0CAET,CACEA,MAAO,wBAET,CACEA,MAAO,oBAET,CACEA,MAAO,6BAET,CACEA,MAAO,mCAET,CACEA,MAAO,sCAET,CACEA,MAAO,uGAET,CACEA,MAAO,sEAKb,CACEA,MAAO,kCAIT,CACEA,MAAO,iBACP1/C,SAAU,WAGZ,CACE0/C,MAAO,qDAIT,CACEA,MAAO,6MAGT,CAEEA,MAAO,sCACPnvD,UAAW,IAGb,CACEmvD,MAAO,iBACPj9G,IAAK,WACL47M,WAAW,EACXr+I,SAAU,CAERj5C,KAAM,2KAMV,CACE24F,MAAO,mCACP1/C,SAAU,CAER3jC,QAAS,SAIb,CACEqjF,MAAO,sDACP1/C,SAAU,CAER3jC,QAAS,qBAMb,CACEg6K,cAAe,oCACf5zM,IAAK63M,EAAKlG,YACViK,WAAW,EACXr+I,SAAU,wCAGZ,CACE/1C,UAAW,OACXy1F,MAAO,oCAGT,CACEz1F,UAAW,OACXy1F,MAAO,2FAGT,CACEA,MAAO,kGACP1/C,SAAU,CACR3jC,QAAS,UACTtV,KAAM,oFAIV,CACE24F,MAAO,OAAS03G,EAAe,YAIjC,CACE13G,MAAO,OAASy3G,EAAW,QAE7B,CACEz3G,MAAO,OAASy3G,EAAW,eAC3Bn3J,SAAU,CACR3jC,QAAS,OACTtV,KAAM0oM,EAAMlrM,QAAQ,QAAS,MAGjC,CACE0F,UAAW,OACXy1F,MAAO,OAASy3G,EAAW,QAG7B,CACEltM,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACR,CACEslE,MAAO,QAIb,CACEz1F,UAAW,SACXy1F,MAAO,eACPj9G,IAAK,IACL23C,SAAU,CACR,CACEslE,MAAO,UAGXnvD,UAAW,IAEb+pJ,EAAKtE,kBAAkB,CACrBt2F,MAAOw3G,EACPz0N,IAAKy0N,EACL98K,SAAU,CACR,CAGE2iK,YAAa,CACX,QACA,OACA,SACA,MACA,IACA,MACA,OACA,MACA,OACA,OACA,SACA,MACA,QAEFtD,gBAAgB,MAKtB,CACE/5F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACR,CACEslE,MAAO,QAKb46F,EAAKrF,cAELqF,EAAKxF,qBACLmiB,EAGA,CACEhtM,UAAW,OACX4vL,SAAU,CACR,CACEn6F,MAAO,cACPnvD,UAAW,IAEb,CACEmvD,MAAO,WAET,CACEA,MAAO,QACPj9G,IAAK,OAKX,CACEwnB,UAAW,SACXy1F,MAxlBQ,sCAylBRnvD,UAAW,Q,cCpanB3zD,EAAOC,QA/LP,SAAay9M,GACX,MAAM6L,EAAW,CACfl8L,UAAW,WACXy1F,MAAO,sEAKHmlG,EAAe,CACnB56L,UAAW,OACX4vL,SAAU,CACR,CAAEn6F,MAAO,SAAUnvD,UAAW,IAC9B,CAAEmvD,MAAO,WACT,CAAEA,MAAO,SAGP0kG,EAAQ,CACZn6L,UAAW,QACX4vL,SAAU,CACR,CAAEn6F,MAAO,SACT,CAAEA,MAAO,OAAQj9G,IAAK,QAGpB80N,EAAgBjd,EAAK9H,QAAQ8H,EAAK/F,iBAAkB,CACxDC,QAAS,OAELgjB,EAAgBld,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CACzDD,QAAS,KACTp6J,SAAUkgK,EAAK7F,kBAAkBr6J,SAAS/3C,OAAO+hN,KAE7CqT,EAAUnd,EAAKtE,kBAAkB,CACrCt2F,MAAO,mBACPj9G,IAAK,gBACL23C,SAAUkgK,EAAK7F,kBAAkBr6J,SAAS/3C,OAAO+hN,KAE7CJ,EAAS,CACb/5L,UAAW,SACXmwB,SAAU,CAACkgK,EAAKhG,iBAAkBuQ,GAClChL,SAAU,CACRS,EAAK9H,QAAQ+kB,EAAe,CAC1B73G,MAAO,KAAMj9G,IAAK,MAEpB63M,EAAK9H,QAAQglB,EAAe,CAC1B93G,MAAO,KAAMj9G,IAAK,MAEpB+0N,EACAD,EACAE,IAGEz4M,EAAS,CACbiL,UAAW,SACX4vL,SAAU,CACR,CAAEn6F,MAAO,4BACT,CAAEA,MAAO,8BACT,CAAEA,MAAO,oCAET,CAAEA,MAAO,4EAEXnvD,UAAW,GAEP4zJ,EAAW,CACf9nL,QAGA,umBAcA0mL,QAAS,kBACTJ,SAGA,00CASF,MAAO,CACL/rL,QAAS,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAClD6gL,kBAAkB,EAClBz3I,SAAUmkJ,EACV/pK,SAAU,CACRkgK,EAAKvF,kBACLuF,EAAK3F,QAAQ,KAAM,IAAK,CAACv6J,SAAU,CAACyqK,KACpCvK,EAAK3F,QACH,OACA,OACA,CACEv6J,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,iBAKf46F,EAAK3F,QACH,uBACA,EACA,CACE8E,gBAAgB,EAChBz5I,SAAU,oBAGd6kJ,EACA,CACE56L,UAAW,UAAWy1F,MAAO,YAE/BymG,EACA,CAEEzmG,MAAO,oDAET,CACEz1F,UAAW,WACXsmC,UAAW,EACX8lJ,cAAe,cAAe5zM,IAAK,OAAQ67M,YAAY,EACvD9J,QAAS,UACTp6J,SAAU,CACR,CACEi8J,cAAe,OAEjBiE,EAAKhF,sBACL,CACE51F,MAAO,KACPi+F,YAAY,GAEd,CACE1zL,UAAW,SACXy1F,MAAO,MAAOj9G,IAAK,MACnBw7M,cAAc,EACdK,YAAY,EACZt+I,SAAUmkJ,EACV/pK,SAAU,CACR,OACA+rK,EACA7L,EAAKxF,qBACLkP,EACAhlM,MAKR,CACEiL,UAAW,QACX4vL,SAAU,CACR,CAAExD,cAAe,OAAQ7B,QAAS,SAClC,CAAE6B,cAAe,wBAAyB7B,QAAS,WAErDjkJ,UAAW,EACX9tD,IAAK,KACL67M,YAAY,EACZlkK,SAAU,CACR,CAACi8J,cAAe,sBAChBiE,EAAKhF,wBAGT,CACEe,cAAe,YACf9lJ,UAAW,EACX9tD,IAAK,IACL+xM,QAAS,OACTp6J,SAAU,CAACkgK,EAAKhF,wBAElB,CACEe,cAAe,MACf9lJ,UAAW,EACX9tD,IAAK,IACL23C,SAAU,CAACkgK,EAAKhF,wBAElB0O,EACAhlM,M,cCjJNpiB,EAAOC,QA7CP,SAAqBy9M,GACnB,MAAO,CACLh7M,KAAM,eACNy9M,YAAa,MACb3iK,SAAU,CACR,CACEslE,MAAO,cACPj9G,IAAK,MACLs6M,YAAa,MACb3iK,SAAU,CAGR,CACEslE,MAAO,OACPj9G,IAAK,OACLu7M,MAAM,GAER,CACEt+F,MAAO,KACPj9G,IAAK,IACLu7M,MAAM,GAER,CACEt+F,MAAO,KACPj9G,IAAK,IACLu7M,MAAM,GAER1D,EAAK9H,QAAQ8H,EAAK/F,iBAAkB,CAClCC,QAAS,KACTvqL,UAAW,KACXmwB,SAAU,KACV4jK,MAAM,IAER1D,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CACnCD,QAAS,KACTvqL,UAAW,KACXmwB,SAAU,KACV4jK,MAAM,U,cC3BlBphN,EAAOC,QAXP,SAAmBy9M,GACjB,MAAO,CACLh7M,KAAM,aACNs3B,QAAS,CACP,OACA,OAEFqlL,mBAAmB,K,cC0EvBr/M,EAAOC,QAhFP,SAAcy9M,GAgEZ,MAAO,CACLh7M,KAAM,OACN0gE,SAjEe,CACf3jC,QACE,iTAKF+iE,KACE,0BACF2jH,QACE,mBAwDF3oK,SAAU,CA/BM,CAChBnwB,UAAW,OACXy1F,MAAO,mBACPnvD,UAAW,GAzBoB,CAC/BtmC,UAAW,SACXy1F,MAAO,MACPj9G,IAAK,MACL8tD,UAAW,IAGa,CACxBtmC,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,mBAGY,CAC7BrqL,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,kBACjB/jJ,UAAW,GASO,CAClBmvD,MAAO46F,EAAKrG,SAAW,IACvB1jJ,UAAW,GAGO,CAClBtmC,UAAW,SACXy1F,MAAO,+FACPnvD,UAAW,GAwBT+pJ,EAAKzF,oBACLyF,EAAKxF,yB,cCuPXl4M,EAAOC,QAlUP,SAAoBy9M,GAClB,MAwCM6J,EAAW,CACf/K,SAAU,iBACV/8K,QACE,uLAIFsmL,SACE,mqBAaEuD,EAAkB,CACtBxmG,MAAO,YACPnvD,UAAW,GAGPzpB,EAAM,CACV7c,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,QAET,CACEz1F,UAAW,UACXy1F,MAAO,UAET,CACEA,MAAO,uBAUP4mG,EAAe,CACnBr8L,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,KACPj9G,IAAK,QAGT23C,SAAU,CACR8rK,EACAp/K,EACA,CACE7c,UAAW,WACXy1F,MAAO,UACPj9G,IAAK,YAKLi1N,EAAc,CAClBztM,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,KACPj9G,IAAK,SAmBLk1N,EAAard,EAAK9H,QACtB8H,EAAK3F,QAAQ,KAAM,MACnB,CACEkF,SAAU,CAER,CACEn6F,MAAO,IACPj9G,IAAK,KAGP,CACEi9G,MAAO,KACPj9G,IAAK,OAGT23C,SAAU,CA7BM,CAClBnwB,UAAW,SACX4vL,SAAU,CAER,CACEn6F,MAAO,2FAGT,CACEA,MAAO,sGAwBPk4G,EAAU,CACd3tM,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,IAAIr9G,OA9If,2rBA8ImC,qBAK/Bw1N,EAAW,CACf5tM,UAAW,QACXosL,cAAe,aACf5zM,IAAK,SACL67M,YAAY,EACZ/tJ,UAAW,EACXnW,SAAU,CAAEkgK,EAAKjF,aAGbyiB,EAAc,CAClB7tM,UAAW,WACXy1F,MAAO,cACPj9G,IAAK,UACL67M,YAAY,EACZJ,aAAa,EACb3tJ,UAAW,EACXnW,SAAU,CACR,CACEslE,MAAO,WACPnvD,UAAW,EACXtmC,UAAW,WAEb,CACEA,UAAW,QACXy1F,MAnIgB,yBAoIhBnvD,UAAW,GAEb,CACEmvD,MAAO,KACPj9G,IAAK,KACLwnB,UAAW,SACXsmC,UAAW,EACXnW,SAAU,CAAEtT,MAOZixL,EAAW,CACfr4G,MAAO,UACPj9G,IAAK,IACLy7M,aAAa,EACb9jK,SAAU,CACRksK,EACAoR,EACA,CACEztM,UAAW,UACXy1F,MAAO,oDAMPs4G,EAAe,CACnBne,SAAU,CAER,CACE5vL,UAAW,WACXy1F,MAAO,IAAIr9G,OAjMf,+bAiM4C,SAE1C,CACE4nB,UAAW,UACXy1F,MAAO,aACPnvD,UAAW,KAaX0nK,EAAa,CACjBhuM,UAAW,WACXy1F,MAAO,wBACPj9G,IAAK,IACLy7M,aAAa,EACb3tJ,UAAW,EACXnW,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO,IAAIr9G,OACT8hN,EAAS9nL,QAAQ52B,WAAW8e,QAAQ,MAAO,KACxC,QACLo5L,YAAY,EACZptJ,UAAW,GAEb+pJ,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC5BsI,YAAY,MAKZua,EAAiB,CAErBD,EACAN,EACAzR,EACA5L,EAAKtF,YACLsR,EACAoR,EAEAE,EACA9wL,EAhMc,CACd7c,UAAW,UACXy1F,MAAO,yBAuJU,CACjBz1F,UAAW,eACXy1F,MAAO,MACPnvD,UAAW,IAyCP4nK,EAAU,CACdz4G,MAAO,KACPj9G,IAAK,KACLw7M,cAAc,EACdK,YAAY,EACZ/tJ,UAAW,EACXnW,SAAU,GAAG/3C,OACX,OACA61N,EACA,CACEx4G,MAAO,IAjSC,CACZ,SACA,OACA,OACA,MACA,OACA,OACA,UACA,SACA,SACA,WACA,MACA,QACA,YACA,QAmRuBvgG,KAAK,KAAO,IAC/B8K,UAAW,WACXsmC,UAAW,GAEb,CACEtmC,UAAW,OACXy1F,MAAO,YACPnvD,UAAW,KAOjB,OAFA0nK,EAAW79K,SAAS5sB,QAAQ2qM,GAErB,CACL74N,KAAM,aACNs3B,QAAS,CACP,KACA,OAEF6gL,kBAAkB,EAClBz3I,SAAUmkJ,EACV/pK,SAAU89K,EAAe71N,OACvBw1N,EACAC,EACAC,EACAC,EACAG,M,cC5QNv7N,EAAOC,QAjDP,SAAoBy9M,GAClB,MAAO,CACLh7M,KAAM,aACN0gE,SAAU,CACR3jC,QAAS,6iBAQT0mL,QAAS,2CACT74L,MAAO,aACPy4L,SAAU,wtEAyBZvoK,SAAU,CACRkgK,EAAKzF,oBACLyF,EAAKxF,qBACLwF,EAAK/F,iBACL+F,EAAK7F,kBACL6F,EAAKrF,kB,cCVXr4M,EAAOC,QApCP,SAAiBy9M,GACf,MAAO,CACLh7M,KAAM,kBACN86C,SAAU,CACRkgK,EAAKrF,cACL,CACEv1F,MAAO,6CACPj9G,IAAK,IACL67M,YAAY,GAEd,CACE5+F,MAAO,2BACPj9G,IAAK,IACLu9D,SAAU,wCACVzP,UAAW,IAEb,CACEmvD,MAAO,iBACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKrF,eACjB1kJ,UAAW,IAEb+pJ,EAAK/F,iBACL+F,EAAK7F,kBACL,CACExqL,UAAW,SACXy1F,MAAO,MACPj9G,IAAK,OACLw7M,cAAc,EACdK,YAAY,EACZ/tJ,UAAW,O,cCiEnB3zD,EAAOC,QA9FP,SAAgBy9M,GACd,MAoBM8d,EAAW,CAEf14G,MAAO,KACPj9G,IAAK,KACL8tD,UAAW,GAGP+2J,EAAO,CAEX5nG,MAAO,KACPj9G,IAAK,MAGD41N,EAAe,CAEnBpuM,UAAW,UACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAK5F,qBAGb4jB,EAAkB,CAEtBruM,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAEkgK,EAAKhG,mBAiBb/jK,EAAQ,CA/DD,CAEXmvE,MAAO,qBACPnvD,UAAW,GAGD,CAEVtmC,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,sBAET,CACEA,MAAO,mBAGXnvD,UAAW,GAkDX6nK,EARc,CACd14G,MAAO,MASP4nG,EACA+Q,EACA/d,EAAKxF,qBACLwF,EAAK7F,kBACL6F,EAAK/F,iBACL+jB,EAzBgB,CAChBruM,UAAW,SACXy1F,MAAO,aAGU,CACjBz1F,UAAW,SACXy1F,MAAO,SAqBP46F,EAAKrF,eAMP,OAHAmjB,EAASh+K,SAAW7J,EACpB+2K,EAAKltK,SAAW7J,EAET,CACLjxC,KAAM,SACN86C,SAAU7J,EAAMluC,OAAO,CACrB,CACEq9G,MAAO,Y,cCXf9iH,EAAOC,QA7EP,SAAoBy9M,GAGlB,IAAIie,EAAM,aAGNC,EAAcD,EAAI,OAAOA,EACzBE,EAHM,aAINC,EAAQ,IAAMF,EAAc,IAApB,cACRG,EAAe,kCACfC,EAAY,+BAEZC,EAAkB,CAEdp2N,IAAKi2N,EACLnoK,UAAW,EACXypJ,OAAQ,CAEN/vL,UAAW,SACXxnB,IAAK,IACL8tD,UAAW,EACXnW,SAAU,CACR,CAAEslE,MAAO,YACT,CAAEA,MAAO,cAKrB,MAAO,CACLpgH,KAAM,cACNm4M,kBAAkB,EAClBjD,QAAS,KACTp6J,SAAU,CACRkgK,EAAK3F,QAAQ,YAAa,KAG1B,CACEuJ,aAAa,EACbrE,SAAU,CACR,CAAEn6F,MAAOi5G,EAAeH,EAAajoK,UAAW,GAChD,CAAEmvD,MAAOi5G,EAAeF,EAAUloK,UAAW,IAE/CnW,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAOi5G,EACPhb,YAAY,EACZptJ,UAAW,IAGfypJ,OAAQ6e,GAGV,CACEn5G,MAAOk5G,EAAYF,EACnBxa,aAAa,EACb3tJ,UAAW,EACXnW,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAOk5G,EACPjb,YAAY,EACZptJ,UAAW,IAGfypJ,OAAQ6e,GAGV,CACE5uM,UAAW,OACXsmC,UAAW,EACXmvD,MAAOk5G,EAAYL,EAAM,S,cChCjC37N,EAAOC,QAtCP,SAAkBy9M,GAChB,MAAO,CACLh7M,KAAM,mBACN0gE,SAAU,CACR3jC,QAAS,+DACTsmL,SAAU,2GAEVI,QAAS,cAEX3oK,SAAU,CACRkgK,EAAK7F,kBACL6F,EAAKtF,YACLsF,EAAKzF,oBACLyF,EAAKxF,qBACL,CACE7qL,UAAW,QACXosL,cAAe,uBAAwB5zM,IAAK,KAC5C+xM,QAAS,KACTp6J,SAAU,CACRkgK,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC5B2E,OAAQ,CAACP,gBAAgB,EAAM6E,YAAY,OAIjD,CACEr0L,UAAW,WACXosL,cAAe,MACf5zM,IAAK,OAAQ67M,YAAY,EACzBt+I,SAAU,eAEZ,CAEE0/C,MAAO,mC,cC0Gf9iH,EAAOC,QA3IP,SAAgBy9M,GACd,MAqCM3F,EAAU2F,EAAK3F,QAAQ,IAAK,KAE5BV,EAAW,0BAEXztK,EAAQ8zK,EAAK9H,QAAQ8H,EAAKjF,WAAY,CAC1C31F,MAAOu0F,IAGHkS,EAAW,CACfl8L,UAAW,WACXy1F,MAAO,MAAQu0F,GAGX+P,EAAS,CACb/5L,UAAW,SACXmwB,SAAU,CACRkgK,EAAKhG,iBACL6R,GAEFtM,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,KAEP,CACEi9G,MAAO,IACPj9G,IAAK,OAKX,MAAO,CACLnD,KAAM,SACNs3B,QAAS,CAAE,MACXwjB,SAAU,CACRu6J,EACAwR,EACAnC,EACA,CACE3N,cAAe,QACf5zM,IAAK,QACL+xM,QAAS,IACTp6J,SAAU,CACR5T,EACAmuK,IAGJ,CACE0B,cAAe,SACf5zM,IAAK,KACL23C,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO46F,EAAKrG,SACZ0J,YAAY,KAIlB,CACEj+F,MAAO46F,EAAKrG,SAAW,UACvBiK,aAAa,EACbz7M,IAAK,KACL23C,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO46F,EAAKrG,UAEd,CACEv0F,MAAO,KACPj9G,IAAK,KACLu9D,SA3Gc,CACtB3jC,QAEE,2GACF0mL,QAEE,0xDAiBFJ,SAEE,+sCAmFMpyJ,UAAW,EACXnW,SAAU,CACR4pK,EACArP,EACA,CACEj1F,MAAO,mBACPw+F,aAAa,EACbz7M,IAAK,KACL23C,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO46F,EAAKrG,YAIlB,CACEhqL,UAAW,SACXy1F,MAAO,4EACPnvD,UAAW,GAEb41J,KAIN51J,UAAW,O,cCxCnB3zD,EAAOC,QA1FP,SAAmBy9M,GAajB,MAAO,CACLh7M,KAAM,YACNs3B,QAAS,CACP,KACA,OAEFopC,SAEE,6iCAeF5lB,SAAU,CAERkgK,EAAK3F,QAAQ,IAAK,IAAK,CACrBpkJ,UAAW,IAGb,CACEtmC,UAAW,WACXy1F,MAAO,yCACPj9G,IAAK,MACL67M,YAAY,EACZJ,aAAa,EACb9jK,SAAU,CACR,CACEnwB,UAAW,UACXy1F,MAAO,mCACP4+F,YAAY,GAEd,CACEr0L,UAAW,OACXy1F,MAAO,WAGT46F,EAAKhF,wBA1DG,CACdrrL,UAAW,SACXy1F,MAAO,QACPj9G,IAAK,IACL+xM,QAAS,OAEO,CAEhBvqL,UAAW,SACXy1F,MAAO,0B,cCXX,SAASzgH,EAAOugE,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgE,OAHM,KAUlB,SAASumN,EAAUhmJ,GACjB,OAOF,WAAyB,QAAA14D,EAAAzJ,UAAAC,OAANyJ,EAAI,IAAAnF,MAAAkF,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA3J,UAAA2J,GAErB,OADeD,EAAKd,KAAK+oC,GAAM/vC,EAAO+vC,KAAI7vB,KAAK,IARxC9c,CAAO,MAAOm9D,EAAI,KAwa3B5iE,EAAOC,QArZP,SAAgBy9M,GACd,MAuIM6J,EAAW,CACf/K,SAAU,sBACV/8K,QAzIqB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,SA0GAsmL,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,OAmCAI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BAh8L,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWI+X,EAAS,CACb7U,UAAW,OACXy1F,MAAO,kBAGH0kG,EAAQ,CACZn6L,UAAW,QACXy1F,MAAO,KACPj9G,IAAK,KACLu9D,SAAUmkJ,EACV3P,QAAS,KAGLskB,EAAkB,CACtBp5G,MAAO,OACPnvD,UAAW,GAGPyzJ,EAAS,CACb/5L,UAAW,SACXmwB,SAAU,CAAEkgK,EAAKhG,kBACjBuF,SAAU,CACR,CACEn6F,MAAO,yCACPj9G,IAAK,MACL23C,SAAU,CACRkgK,EAAKhG,iBACLx1K,GAEFyxB,UAAW,IAEb,CACEmvD,MAAO,yCACPj9G,IAAK,MACL23C,SAAU,CACRkgK,EAAKhG,iBACLx1K,GAEFyxB,UAAW,IAEb,CACEmvD,MAAO,8BACPj9G,IAAK,MACL23C,SAAU,CACRkgK,EAAKhG,iBACLx1K,EACAg6L,EACA1U,IAGJ,CACE1kG,MAAO,8BACPj9G,IAAK,MACL23C,SAAU,CACRkgK,EAAKhG,iBACLx1K,EACAg6L,EACA1U,IAGJ,CACE1kG,MAAO,eACPj9G,IAAK,IACL8tD,UAAW,IAEb,CACEmvD,MAAO,eACPj9G,IAAK,IACL8tD,UAAW,IAEb,CACEmvD,MAAO,4BACPj9G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gB,EAAK3F,QAAQ,KAAM,MACnBtyM,OAAOy4N,M,cCpEb,MAuBM5R,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7hN,UAsHF7K,EAAOC,QA3GP,SAAcy9M,GACZ,MAAMiP,EAtbOjP,KACN,CACLkP,UAAW,CACTv/L,UAAW,OACXy1F,MAAO,cAET+pG,SAAU,CACRx/L,UAAW,SACXy1F,MAAO,oCAETgqG,wBAAyB,CACvBz/L,UAAW,gBACXy1F,MAAO,KACPj9G,IAAK,KACL+xM,QAAS,IACTp6J,SAAU,CACRkgK,EAAK/F,iBACL+F,EAAK7F,sBAqaGe,CAAM8E,GACdygB,EAAoB1R,EACpB2R,EAAmB5R,EAEnBH,EAAgB,WAGhB9C,EAAW,CACfl8L,UAAW,WACXy1F,MAAO,mCAGT,MAAO,CACLpgH,KAAM,OACNm4M,kBAAkB,EAClBjD,QAAS,SACTp6J,SAAU,CACRkgK,EAAKzF,oBACLyF,EAAKxF,qBACL,CACE7qL,UAAW,cACXy1F,MAAO,kBACPnvD,UAAW,GAEb,CACEtmC,UAAW,iBACXy1F,MAAO,oBACPnvD,UAAW,GAEbg5J,EAAMG,wBACN,CACEz/L,UAAW,eACXy1F,MAAO,OAASwpG,EAAK/pM,KAAK,KAAO,OAEjCoxC,UAAW,GAEb,CACEtmC,UAAW,kBACXy1F,MAAO,KAAOs7G,EAAiB77M,KAAK,KAAO,KAE7C,CACE8K,UAAW,kBACXy1F,MAAO,MAAQq7G,EAAkB57M,KAAK,KAAO,KAE/CgnM,EACA,CACEzmG,MAAO,KACPj9G,IAAK,KACL23C,SAAU,CAAEkgK,EAAKnF,kBAEnB,CACElrL,UAAW,YACXy1F,MAAO,OAAS4pG,EAAWnqM,KAAK,KAAO,QAEzC,CACEugG,MAAO,8oCAET,CACEA,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACR+rK,EACAoD,EAAME,SACNnP,EAAKnF,gBACLmF,EAAK7F,kBACL6F,EAAK/F,iBACLgV,EAAMC,YAMV,CACE9pG,MAAO,oBACP25F,QAAS4P,EACTjpJ,SAAU,oBAEZ,CACE0/C,MAAO,IACPj9G,IAAK,OACLy7M,aAAa,EACbl+I,SAAU,CACRo5I,SAAU,UACV/8K,QA9Ea,kBA+Eb4B,UAAWkrL,EAAehqM,KAAK,MAEjCi7B,SAAU,CACR,CACEslE,MAAOupG,EACPh/L,UAAW,WAEb,CACEy1F,MAAO,eACPz1F,UAAW,aAEbk8L,EACA7L,EAAK7F,kBACL6F,EAAK/F,iBACLgV,EAAME,SACNnP,EAAKnF,sB,cC5ffv4M,EAAOC,QApBP,SAAey9M,GACb,MAAO,CACLh7M,KAAM,gBACNs3B,QAAS,CAAE,WACXwjB,SAAU,CACR,CACEnwB,UAAW,OAIXy1F,MAAO,iCACPs6F,OAAQ,CACNv3M,IAAK,gBACLs6M,YAAa,a,cCgHvBngN,EAAOC,QA/HP,SAAey9M,GACb,MAAM2gB,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,OAkCF,MAAO,CACL37N,KAAM,QACN86C,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL8tD,UAAW,GAEb+pJ,EAAK3F,QACH,IACA,IACA,CACEpkJ,UAAW,IAGf,CACEtmC,UAAW,UACX4vL,SAAU,CACR,CACEn6F,MAAO,6BAET,CACEA,MAAO,oBACPnvD,UAAW,GAEb,CACEmvD,MAAO,oBACPnvD,UAAW,GAEb,CACEmvD,MAAO,OA5CM,CACrB,YACA,cACA,WACA,QACA,YACA,SACA,UACA,YACA,SACA,SACA,UAiCuCvgG,KAAK,KAAO,OAIjD,CACE8K,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,OAASu7G,EAAqB97M,KAAK,KAAO,QAEnD,CACEugG,MAAO,OAASu7G,EAAqB97M,KAAK,KAAO,2BACjDoxC,UAAW,IAEb,CACEmvD,MAAO,OA9Ea,CAC5B,OACA,OACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,OACA,WACA,SACA,OACA,UACA,SACA,OACA,UA6D8CvgG,KAAK,KAAO,2BAClDoxC,UAAW,MAIjB,CACEtmC,UAAW,QACXy1F,MAAO,cACPnvD,UAAW,GAEb,CACEmvD,MAAO,kB,cClEf9iH,EAAOC,QAvDP,SAAmBy9M,GACjB,MAAM4gB,EAAe,qBACfC,EAAO,CACXlxM,UAAW,SACXy1F,MAAO,WAEHunG,EAAS,CACbh9L,UAAW,SACXy1F,MAAO,IAAM46F,EAAKpG,qBAEpB,MAAO,CACL50M,KAAM,YACNs3B,QAAS,CAAE,MACXopC,SAAU,wCACV5lB,SAAU,CACRkgK,EAAK3F,QAAQ,IAAK,KAClB2F,EAAK/F,iBACL,CACEtqL,UAAW,OACXy1F,MAAO,w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,EAAO+vC,KAAI7vB,KAAK,IAC/C,OAAOo0E,EAUT,SAASkjH,IAAgB,QAAA5gH,EAAAx4F,UAAAC,OAANyJ,EAAI,IAAAnF,MAAAi0F,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ/uF,EAAI+uF,GAAAz4F,UAAAy4F,GACrB,MAAMvC,EAAS,IAAMxsF,EAAKd,KAAK+oC,GAAM/vC,EAAO+vC,KAAI7vB,KAAK,KAAO,IAC5D,OAAOo0E,EAwpBT32F,EAAOC,QA/oBP,SAAay9M,GACX,MAAM2c,EAAe3c,EAAK3F,QAAQ,KAAM,KAmBlC8S,EAAW,CACf,OACA,QAGA,WAUIgI,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,aAmYI2L,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,gBAwBIC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,iBAGIzE,EAAYwE,EAEZjX,EAAW,CArff,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,YACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,OAzXA,MACA,MACA,YACA,OACA,QACA,QACA,OACA,QA0f0DzlN,QAAQ29B,IAC1D++L,EAAmBtmI,SAASz4D,KAchC8vL,EAAgB,CACpBzsG,MAAOr9G,EAAO,KAAMo0M,KAAUmgB,GAAY,SAC1C52J,SAAU,CACR2iJ,SAAUiU,IAmBd,MAAO,CACLt3N,KAAM,MACNm4M,kBAAkB,EAElBjD,QAAS,WACTx0I,SAAU,CACRo5I,SAAU,YACV/8K,QArBJ,SAAyBxP,GAA+B,IAAzB,WAACyuM,EAAU,KAAEC,GAAKl+N,UAAAC,OAAA,QAAAmV,IAAApV,UAAA,GAAAA,UAAA,GAAG,GAClD,MAAMm+N,EAAYD,EAElB,OADAD,EAAaA,GAAc,GACpBzuM,EAAK5mB,KAAK2nB,GACXA,EAAKvsB,MAAM,WAAai6N,EAAWxmI,SAASlnE,GACvCA,EACE4tM,EAAU5tM,GACZ,GAAPvrB,OAAUurB,EAAI,MAEPA,IAaP6tM,CAAgBtX,EAAU,CAAEoX,KAAOvsL,GAAMA,EAAE1xC,OAAS,IACtDylN,QAAS0E,EACT1gM,KAAM0oM,EACN9M,SAzF4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,mBA4EAvoK,SAAU,CACR,CACEslE,MAAO+2F,KAAU4kB,GACjBr7J,SAAU,CACRo5I,SAAU,UACV/8K,QAAS8nL,EAAS9hN,OAAOg5N,GACzBtY,QAAS0E,EACT1gM,KAAM0oM,IAGV,CACExlM,UAAW,OACXy1F,MAAO+2F,EApmBX,mBACA,eACA,gBACA,qBAmmBE0V,EA5Da,CACfliM,UAAW,WACXy1F,MAAO,cAvkBM,CACbz1F,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CACR,CAACslE,MAAO,UAKU,CACxBA,MAAO,IACPj9G,IAAK,IACL23C,SAAU,CAAE,CAAEslE,MAAO,QAsnBnB46F,EAAKrF,cACLqF,EAAKxF,qBACLmiB,EA7Da,CACfhtM,UAAW,WACXy1F,MAAO,gDACPnvD,UAAW,O,cCvFf3zD,EAAOC,QA3hBP,SAAcy9M,GA8cZ,MAAO,CACLh7M,KAAM,OACNs3B,QAAS,CAAE,aACXopC,SAAU,CACRo5I,SAAUkB,EAAKrG,SACf/pL,MAjdW,CACb,YACA,QACA,OACA,aACA,aACA,cACA,aA2cEmS,QAzce,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,UAicsBh6B,OAtbN,CAChB,MACA,OACA,SACA,UACA,mBACA,UACA,cACA,aACA,SACA,0BACA,yBACA,iBACA,gBACA,SAwawCA,OA/bhB,CACxB,QACA,SACA,wBACA,mBACA,wBACA,uBACA,mBAybEsgN,SAvac,CAChB,MACA,aACA,MACA,OACA,QACA,iBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,gBACA,kBACA,iBACA,uBACA,sBACA,iBACA,gBACA,oBACA,qBACA,oBACA,sBACA,qBACA,qBACA,oBACA,WACA,aACA,YACA,YACA,WACA,kBACA,eACA,2BACA,iBACA,gBACA,sBACA,gBACA,eACA,QACA,yBACA,wBACA,mBACA,kBACA,aACA,eACA,cACA,cACA,aACA,OACA,OACA,iBACA,mBACA,kBACA,kBACA,iBACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,MACA,OACA,eACA,YACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,cACA,cACA,qBACA,oBACA,WACA,UACA,OACA,iBACA,gBACA,WACA,cACA,WACA,yBACA,2BACA,0BACA,0BACA,yBACA,IACA,kBACA,mBACA,MACA,OACA,MACA,OACA,qBACA,uBACA,sBACA,sBACA,qBACA,QACA,kBACA,oBACA,mBACA,mBACA,kBACA,OACA,oBACA,OACA,QACA,MACA,OACA,OACA,OACA,cACA,gBACA,eACA,eACA,cACA,YACA,cACA,aACA,aACA,UACA,UACA,YACA,wBACA,SACA,aACA,eACA,cACA,cACA,aACA,OACA,sBACA,qBACA,QACA,WACA,WACA,gBACA,oBACA,qBACA,MACA,UACA,qBACA,uBACA,sBACA,sBACA,qBACA,cACA,gBACA,kBACA,iBACA,iBACA,gBACA,YACA,WACA,aACA,mBACA,kBACA,UACA,cACA,SACA,SACA,QACA,UACA,SACA,yBACA,wBACA,gBACA,eACA,UACA,YACA,MACA,QACA,QACA,YACA,kBACA,QACA,YACA,OACA,kBACA,eACA,wBACA,gBACA,UACA,uBACA,cACA,cACA,eACA,iBACA,gBACA,gBACA,eACA,QACA,gBACA,kBACA,iBACA,iBACA,gBACA,oBACA,aACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,yBACA,gBACA,6BACA,4BACA,oBACA,yBACA,mBACA,uBACA,sBACA,mBACA,kBACA,eACA,oCACA,qBACA,uBACA,sBACA,0BACA,yBACA,sBACA,qBACA,mBACA,qBACA,oBACA,oBACA,mBACA,oBACA,aACA,eACA,cACA,cACA,aACA,eACA,eACA,wBACA,uBACA,UACA,aACA,eACA,cACA,cACA,aACA,oBACA,sBACA,qBACA,qBACA,oBACA,KACA,cACA,gBACA,eACA,mBACA,kBACA,eACA,cACA,oBACA,MACA,QACA,OACA,OACA,OACA,YACA,iBACA,gBACA,OACA,eACA,iBACA,gBACA,gBACA,eACA,SACA,YACA,aACA,iBACA,aACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,8BACA,6BACA,6BACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,kBACA,oBACA,mBACA,mBACA,kBACA,UACA,WACA,YACA,mBACA,oBACA,OACA,QACA,SACA,mBACA,OACA,gBACA,kBACA,iBACA,iBACA,gBACA,UACA,UACA,MACA,OACA,MACA,OACA,SACA,aACA,SACA,cACA,cACA,YACA,gBACA,YACA,QACA,sBACA,kBACA,WACA,QACA,cACA,gBACA,eACA,eACA,cACA,WACA,iBACA,gBACA,cACA,gBACA,eACA,eACA,cACA,cACA,eACA,gBAiEAvoK,SAAU,CACRkgK,EAAKzF,oBACLyF,EAAK3F,QACH,IACA,IACA,CACEpkJ,UAAW,EACXyP,SAAU,CACR,eAAgB,aAItBs6I,EAAK3F,QACH,OACA,OACA,CACEpkJ,UAAW,EAEXnW,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,sBAKf,CAEEA,MAAO,gBACP1/C,SAAU,SAEZ,CAGE0/C,MAAO,mBACP1/C,SAAU,SAEZ,CACE/1C,UAAW,UACXy1F,MAAO,iBACPnvD,UAAW,IAEb,CACEmvD,MAAO,SAAW46F,EAAKrG,SAAW,WAClCj0I,SA3GgB,CACpB,YACA,kBACA,OACA,gBACA,WACA,iBACA,cACA,oBACA,SACA,aACA,YACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,iBACA,iBACA,YACA,cACA,WACA,oBACA,WACA,YACA,WACA,oBACA,eACA,wBACA,oBACA,kBACA,cACA,eACA,iBACA,qBACA,SACA,mBACA,SACA,gBACA,UACA,cACA,WACA,wBACA,cACA,YACA,UACA,YACA,UACA,SACA,YA0DE,CACE/1C,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,oCAET,CACEA,MAAO,6BAGXnvD,UAAW,GAEb,CACEtmC,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,IACL8tD,UAAW,O,cClenB3zD,EAAOC,QA9CP,SAAey9M,GACb,MAAO,CACLh7M,KAAM,QACNs3B,QAAS,CACP,KACA,OAEF6gL,kBAAkB,EAClBz3I,SAAU,4/cACV5lB,SAAU,CACR,CACEnwB,UAAW,SACXy1F,MAAO,mBAET,CACEz1F,UAAW,WACXy1F,MAAO,yBAET,CACEz1F,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,kBAET,CACEA,MAAO,iBAKb,CACEz1F,UAAW,WACX4vL,SAAU,CACR,CACEn6F,MAAO,q5CAKb46F,EAAK3F,QAAQ,iBAAiB,GAC9B2F,EAAKzF,oBACLyF,EAAKxF,yB,cCWXl4M,EAAOC,QA1DP,SAAgBy9M,GAiBd,MAAO,CACLh7M,KAAM,eACNs3B,QAAS,CACP,MACA,OACA,OAEF6gL,kBAAkB,EAClBz3I,SAvBsB,CACtBo5I,SAFsB,oBAGtB/8K,QAAS,sBAsBT+d,SAAU,CApBS,CACnBnwB,UAAW,OACXy1F,MAAO,gBACPnvD,UAAW,IAEQ,CACnBtmC,UAAW,OACXy1F,MAAO,oBACPnvD,UAAW,IAeT+pJ,EAAKzF,oBACLyF,EAAKxF,qBACLwF,EAAK3F,QAAQ,WAAY,QACzB2F,EAAKrF,cACLqF,EAAK9H,QAAQ8H,EAAK/F,iBAAkB,CAClCC,QAAS,OAEX8F,EAAK9H,QAAQ8H,EAAK7F,kBAAmB,CACnCD,QAAS,OAEX,CACEvqL,UAAW,SACXy1F,MAAO,IACPj9G,IAAK,KAEP,CACEwnB,UAAW,SACX4vL,SAAU,CACR,CACEn6F,MAAO,IACPj9G,IAAK,OACL+xM,QAAS,a,cCzDrB,MAuBM0U,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,SAGIC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,cAIIC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,SAIIC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA7hN,UAsLF7K,EAAOC,QA3KP,SAAgBy9M,GACd,MAAMiP,EAtbOjP,KACN,CACLkP,UAAW,CACTv/L,UAAW,OACXy1F,MAAO,cAET+pG,SAAU,CACRx/L,UAAW,SACXy1F,MAAO,oCAETgqG,wBAAyB,CACvBz/L,UAAW,gBACXy1F,MAAO,KACPj9G,IAAK,KACL+xM,QAAS,IACTp6J,SAAU,CACRkgK,EAAK/F,iBACL+F,EAAK7F,sBAqaGe,CAAM8E,GAGd6L,EAAW,CACfl8L,UAAW,WACXy1F,MAAO,MAAQ46F,EAAKrG,UAoBhBynB,EAAoB,oBAiB1B,MAAO,CACLp8N,KAAM,SACNs3B,QAAS,CAAE,QACX6gL,kBAAkB,EAClBz3I,SAAU,iBACVw0I,QAAS,IAnBK,CACd,MACA,iBACA,cACA,cACA,cACA,IACA,OACA,SACA,SACA,MACA,KAQuBr1L,KAAK,KAAO,IACnCi7B,SAAU,CAGRkgK,EAAK7F,kBACL6F,EAAK/F,iBAGL+F,EAAKzF,oBACLyF,EAAKx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CA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,WAOI+7J,EAAW,CACf,QACA,MACA,QAIIC,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,SAKIC,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,YAIIC,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,OAIIC,EAAe1lB,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAII2lB,EAAoB3lB,EACxB0lB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMI5/L,EAAWl6B,EAAO85N,EAAcC,EAAmB,KAGnDC,EAAiB5lB,EACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASI6lB,EAAsB7lB,EAC1B4lB,EACA,KACA,0DAIIh8J,EAAah+D,EAAOg6N,EAAgBC,EAAqB,KAGzDC,EAAiBl6N,EAAO,QAASi6N,EAAqB,KAItDE,EAAoB,CACxB,cACAn6N,EAAO,eAAgBo0M,EAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACAp0M,EAAO,SAAUg+D,EAAY,MAC7B,OACA,cACA,kBACA,iCACA,WACA,oBACA,UACA,oBAIIo8J,EAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA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,MAAOj9G,IAAK,SAejBooN,EAAS,CACXnrG,MAAO,iBACP1/C,SACE,4SAIF5lB,SAAU,CACRw8K,IAIA1N,EAAO,iIAKX,OAFAA,EAAOA,EAAO,IAAMA,EAAK9/L,MAAM,KAAKnjB,KAAI,SAAS1I,GAAG,MAAO,MAAQA,KAAI4hB,KAAK,KAErE,CACL7f,KAAM,OACNs3B,QAAS,CAAC,YACV6gL,kBAAkB,EAClBsF,YAAa,MACb3iK,SAAU,CACRkgK,EAAK3F,QAAQ,MAAO,OACpB,CACE1qL,UAAW,eACXy1F,MAAO,MAAOj9G,IAAK,MACnB23C,SAAU,CACR,CACEnwB,UAAW,OACXy1F,MAAO,MACP1/C,SAAUkpJ,EACVlP,OAAQ,CACNP,gBAAgB,EAChBr/J,SAAU,CAACywK,EAAQ+L,GACnBrmK,UAAW,MAKnB,CACEtmC,UAAW,oBACXy1F,MAAO,OAAQj9G,IAAK,OACpB23C,SAAU,CAAC,OAAQywK,EAAQ+L,Q,cCtEnC,MAAM3iB,EAAW,2BACXkQ,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,WAEIsD,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGrlN,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAqDF,S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AAO,WAET,eAAgB,CACdR,QAAS,6DACTE,YAAY,EACZD,QAAQ,EACRO,MAAO,YAET,wBAAyB,CACvBR,QAAS,uBACTE,YAAY,EACZM,MAAO,YAGT,gCAAiC,CAC/B,CAEER,QAAS,wBACTE,YAAY,EACZM,MAAO,YAET,CAEER,QAAS,iBACTE,YAAY,EACZM,MAAO,aAIX,sBAAuB,CACrB,CAEER,QAAS,iBACTE,YAAY,EACZM,MAAO,YAET,CAEER,QAAS,iBACTE,YAAY,EACZM,MAAO,aAGX,cAAe,CACbR,QAAS,0BACTE,YAAY,GAiBdnT,OAAQ,CACNiT,QAAS,qBACTC,QAAQ,EACRQ,OAAQyxM,IAGR1+G,EAAS,SAAU/pH,GACrB,OAAQA,EAAM,IAAI4e,QAAQ,4BAA6B,SAErD+pN,EAAmB,SAAUhpO,GAC/B,OAAO,IAAI+Z,OAAO,aAAe/Z,EAAIW,IAAIypH,GAAQvwG,KAAK,KAAO,eAE3Dw/K,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ3hM,OAAOuB,KAAKogM,GAAUz/L,SAAQ,SAAUkJ,GACtC8lO,EAAO9lO,GAAG8zB,QAAUoyM,EAAiB3vC,EAASv2L,OA0NhD8lO,EAAOG,YAAYnyM,QAAUoyM,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cACA,qBACA,SACA,mBACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBACA,cACA,iBACA,cACA,eACA,aACA,cACA,WACA,iBACA,oBACA,cACA,qBACA,WACA,eACA,mBACA,oBACA,iBACA,UACA,iBACA,iBACA,cACA,SACA,gBACA,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S,iBACTE,YAAY,GAEd,CAEEF,QAAS,iBACTE,YAAY,IAGhBS,YAAa,yBAEfzH,EAAMG,UAAUikN,IAAU,KAAE78M,OAAOx0B,KAAOitB,EAAMG,UAAUikN,IA9C5D58O,EAAOC,QAAU28O,EACjBA,EAAI/5O,YAAc,MAClB+5O,EAAI5iN,QAAU,I,6BCCd,SAAS8iN,EAAMtkN,GACbA,EAAMG,UAAUmkN,MAAQ,CACtBz9M,QAAS,OACTI,QACE,s0BACFiyB,UAAW,CACTpyB,QAAS,cACTQ,MAAO,YAETuxB,SAAU,aACVxpC,OAAQ,gBACR8X,SAAU,mBACVM,YAAa,yBAfjBjgC,EAAOC,QAAU68O,EACjBA,EAAMj6O,YAAc,QACpBi6O,EAAM9iN,QAAU,I,6BCChB,SAAS+iN,EAAQvkN,IACd,SAAWA,GACV,IAAIwkN,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAU3zO,KAAI,SAAUs2B,GAClC,OAAOA,EAAShY,QAAQ,IAAK,WAESpF,KAAK,KAAO,OACpDiW,EAAMG,UAAUokN,QAAUvkN,EAAMG,UAAUyG,OAAO,aAAc,IAC/D5G,EAAMG,UAAUiH,aAAa,UAAW,SAAU,CAChDuB,SAAU,CACR7B,QACE,oHACFC,QAAQ,EACRQ,OAAQ,CACNN,QAAShd,OAAO,YAAcw6N,EAAkB,iBAItDzkN,EAAMG,UAAUokN,QAAQ1wN,OAAO0T,OAAS,CACtCh8B,IAAK,CAEHu7B,QACE,yEACFC,QAAQ,GAEVm9B,OAAQ,CAENp9B,QACE,gGACFC,QAAQ,IAGZ/G,EAAMG,UAAUiH,aAAa,UAAW,WAAY,CAClD0xB,QAAS,CACPhyB,QAAS7c,OAAO,SA7CG,CACrB,WACA,OACA,UACA,QACA,YACA,aACA,gBACA,SACA,SACA,SACA,UACA,QAiC8CF,KAAK,KAAO,QACxDud,MAAO,aApRZ,CAuREtH,GA3RLx4B,EAAOC,QAAU88O,EACjBA,EAAQl6O,YAAc,UACtBk6O,EAAQ/iN,QAAU,I,6BCClB,SAASkjN,EAAO1kN,GACdA,EAAMG,UAAUukN,OAAS,CACvB7wN,OAAQ,cACRgT,QAAS,CACP,CACEC,QAAS,yBACTC,QAAQ,GAEV,CACED,QAAS,MACTC,QAAQ,IAGZunB,aAAc,CAC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AI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,IAAK,GAAGjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EAAI,GAAI,KAAKjD,OAAOiD,EA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","file":"static/js/2.3f459d03.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","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 };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport React, { useState, useCallback, forwardRef, useRef, useEffect, useImperativeHandle, useMemo } from 'react';\n\nconst is = {\n arr: Array.isArray,\n obj: a => Object.prototype.toString.call(a) === '[object Object]',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === void 0,\n nul: a => a === null,\n set: a => a instanceof Set,\n map: a => a instanceof Map,\n\n equ(a, b) {\n if (typeof a !== typeof b) return false;\n if (is.str(a) || is.num(a)) return a === b;\n if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;\n let i;\n\n for (i in a) if (!(i in b)) return false;\n\n for (i in b) if (a[i] !== b[i]) return false;\n\n return is.und(i) ? a === b : true;\n }\n\n};\nfunction merge(target, lowercase) {\n if (lowercase === void 0) {\n lowercase = true;\n }\n\n return object => (is.arr(object) ? object : Object.keys(object)).reduce((acc, element) => {\n const key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;\n acc[key] = target(key);\n return acc;\n }, target);\n}\nfunction useForceUpdate() {\n const _useState = useState(false),\n f = _useState[1];\n\n const forceUpdate = useCallback(() => f(v => !v), []);\n return forceUpdate;\n}\nfunction withDefault(value, defaultValue) {\n return is.und(value) || is.nul(value) ? defaultValue : value;\n}\nfunction toArray(a) {\n return !is.und(a) ? is.arr(a) ? a : [a] : [];\n}\nfunction callProp(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return is.fun(obj) ? obj(...args) : obj;\n}\n\nfunction getForwardProps(props) {\n const to = props.to,\n from = props.from,\n config = props.config,\n onStart = props.onStart,\n onRest = props.onRest,\n onFrame = props.onFrame,\n children = props.children,\n reset = props.reset,\n reverse = props.reverse,\n force = props.force,\n immediate = props.immediate,\n delay = props.delay,\n attach = props.attach,\n destroyed = props.destroyed,\n interpolateTo = props.interpolateTo,\n ref = props.ref,\n lazy = props.lazy,\n forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"ref\", \"lazy\"]);\n\n return forward;\n}\n\nfunction interpolateTo(props) {\n const forward = getForwardProps(props);\n if (is.und(forward)) return _extends({\n to: forward\n }, props);\n const rest = Object.keys(props).reduce((a, k) => !is.und(forward[k]) ? a : _extends({}, a, {\n [k]: props[k]\n }), {});\n return _extends({\n to: forward\n }, rest);\n}\nfunction handleRef(ref, forward) {\n if (forward) {\n // If it's a function, assume it's a ref callback\n if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {\n forward.current = ref;\n }\n }\n\n return ref;\n}\n\nclass Animated {\n constructor() {\n this.payload = void 0;\n this.children = [];\n }\n\n getAnimatedValue() {\n return this.getValue();\n }\n\n getPayload() {\n return this.payload || this;\n }\n\n attach() {}\n\n detach() {}\n\n getChildren() {\n return this.children;\n }\n\n addChild(child) {\n if (this.children.length === 0) this.attach();\n this.children.push(child);\n }\n\n removeChild(child) {\n const index = this.children.indexOf(child);\n this.children.splice(index, 1);\n if (this.children.length === 0) this.detach();\n }\n\n}\nclass AnimatedArray extends Animated {\n constructor() {\n super(...arguments);\n this.payload = [];\n\n this.attach = () => this.payload.forEach(p => p instanceof Animated && p.addChild(this));\n\n this.detach = () => this.payload.forEach(p => p instanceof Animated && p.removeChild(this));\n }\n\n}\nclass AnimatedObject extends Animated {\n constructor() {\n super(...arguments);\n this.payload = {};\n\n this.attach = () => Object.values(this.payload).forEach(s => s instanceof Animated && s.addChild(this));\n\n this.detach = () => Object.values(this.payload).forEach(s => s instanceof Animated && s.removeChild(this));\n }\n\n getValue(animated) {\n if (animated === void 0) {\n animated = false;\n }\n\n const payload = {};\n\n for (const key in this.payload) {\n const value = this.payload[key];\n if (animated && !(value instanceof Animated)) continue;\n payload[key] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n }\n\n return payload;\n }\n\n getAnimatedValue() {\n return this.getValue(true);\n }\n\n}\n\nlet applyAnimatedValues;\nfunction injectApplyAnimatedValues(fn, transform) {\n applyAnimatedValues = {\n fn,\n transform\n };\n}\nlet colorNames;\nfunction injectColorNames(names) {\n colorNames = names;\n}\nlet requestFrame = cb => typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;\nlet cancelFrame = id => {\n typeof window !== 'undefined' && window.cancelAnimationFrame(id);\n};\nfunction injectFrame(raf, caf) {\n requestFrame = raf;\n cancelFrame = caf;\n}\nlet interpolation;\nfunction injectStringInterpolator(fn) {\n interpolation = fn;\n}\nlet now = () => Date.now();\nfunction injectNow(nowFn) {\n now = nowFn;\n}\nlet defaultElement;\nfunction injectDefaultElement(el) {\n defaultElement = el;\n}\nlet animatedApi = node => node.current;\nfunction injectAnimatedApi(fn) {\n animatedApi = fn;\n}\nlet createAnimatedStyle;\nfunction injectCreateAnimatedStyle(factory) {\n createAnimatedStyle = factory;\n}\nlet manualFrameloop;\nfunction injectManualFrameloop(callback) {\n manualFrameloop = callback;\n}\n\nvar Globals = /*#__PURE__*/Object.freeze({\n get applyAnimatedValues () { return applyAnimatedValues; },\n injectApplyAnimatedValues: injectApplyAnimatedValues,\n get colorNames () { return colorNames; },\n injectColorNames: injectColorNames,\n get requestFrame () { return requestFrame; },\n get cancelFrame () { return cancelFrame; },\n injectFrame: injectFrame,\n get interpolation () { return interpolation; },\n injectStringInterpolator: injectStringInterpolator,\n get now () { return now; },\n injectNow: injectNow,\n get defaultElement () { return defaultElement; },\n injectDefaultElement: injectDefaultElement,\n get animatedApi () { return animatedApi; },\n injectAnimatedApi: injectAnimatedApi,\n get createAnimatedStyle () { return createAnimatedStyle; },\n injectCreateAnimatedStyle: injectCreateAnimatedStyle,\n get manualFrameloop () { return manualFrameloop; },\n injectManualFrameloop: injectManualFrameloop\n});\n\n/**\n * Wraps the `style` property with `AnimatedStyle`.\n */\n\nclass AnimatedProps extends AnimatedObject {\n constructor(props, callback) {\n super();\n this.update = void 0;\n this.payload = !props.style ? props : _extends({}, props, {\n style: createAnimatedStyle(props.style)\n });\n this.update = callback;\n this.attach();\n }\n\n}\n\nconst isFunctionComponent = val => is.fun(val) && !(val.prototype instanceof React.Component);\n\nconst createAnimatedComponent = Component => {\n const AnimatedComponent = forwardRef((props, ref) => {\n const forceUpdate = useForceUpdate();\n const mounted = useRef(true);\n const propsAnimated = useRef(null);\n const node = useRef(null);\n const attachProps = useCallback(props => {\n const oldPropsAnimated = propsAnimated.current;\n\n const callback = () => {\n let didUpdate = false;\n\n if (node.current) {\n didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());\n }\n\n if (!node.current || didUpdate === false) {\n // If no referenced node has been found, or the update target didn't have a\n // native-responder, then forceUpdate the animation ...\n forceUpdate();\n }\n };\n\n propsAnimated.current = new AnimatedProps(props, callback);\n oldPropsAnimated && oldPropsAnimated.detach();\n }, []);\n useEffect(() => () => {\n mounted.current = false;\n propsAnimated.current && propsAnimated.current.detach();\n }, []);\n useImperativeHandle(ref, () => animatedApi(node, mounted, forceUpdate));\n attachProps(props);\n\n const _getValue = propsAnimated.current.getValue(),\n scrollTop = _getValue.scrollTop,\n scrollLeft = _getValue.scrollLeft,\n animatedProps = _objectWithoutPropertiesLoose(_getValue, [\"scrollTop\", \"scrollLeft\"]); // Functions cannot have refs, see:\n // See: https://github.com/react-spring/react-spring/issues/569\n\n\n const refFn = isFunctionComponent(Component) ? undefined : childRef => node.current = handleRef(childRef, ref);\n return React.createElement(Component, _extends({}, animatedProps, {\n ref: refFn\n }));\n });\n return AnimatedComponent;\n};\n\nlet active = false;\nconst controllers = new Set();\n\nconst update = () => {\n if (!active) return false;\n let time = now();\n\n for (let controller of controllers) {\n let isActive = false;\n\n for (let configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n let config = controller.configs[configIdx];\n let endOfAnimation, lastTime;\n\n for (let valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n let animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n if (animation.done) continue;\n let from = config.fromValues[valIdx];\n let to = config.toValues[valIdx];\n let position = animation.lastPosition;\n let isAnimated = to instanceof Animated;\n let velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n if (config.immediate) {\n animation.setValue(to);\n animation.done = true;\n continue;\n } // Break animation when string values are involved\n\n\n if (typeof from === 'string' || typeof to === 'string') {\n animation.setValue(to);\n animation.done = true;\n continue;\n }\n\n if (config.duration !== void 0) {\n /** Duration easing */\n position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);\n endOfAnimation = time >= animation.startTime + config.duration;\n } else if (config.decay) {\n /** Decay easing */\n position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));\n endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n if (endOfAnimation) to = position;\n } else {\n /** Spring easing */\n lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n let numSteps = Math.floor(time - lastTime);\n\n for (let i = 0; i < numSteps; ++i) {\n let force = -config.tension * (position - to);\n let damping = -config.friction * velocity;\n let acceleration = (force + damping) / config.mass;\n velocity = velocity + acceleration * 1 / 1000;\n position = position + velocity * 1 / 1000;\n } // Conditions for stopping the spring animation\n\n\n let isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n let isVelocity = Math.abs(velocity) <= config.precision;\n let isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n animation.lastVelocity = velocity;\n animation.lastTime = time;\n } // Trails aren't done until their parents conclude\n\n\n if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n if (endOfAnimation) {\n // Ensure that we end up with a round value\n if (animation.value !== to) position = to;\n animation.done = true;\n } else isActive = true;\n\n animation.setValue(position);\n animation.lastPosition = position;\n } // Keep track of updated values only when necessary\n\n\n if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();\n } // Update callbacks in the end of the frame\n\n\n if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame\n\n if (!isActive) {\n controllers.delete(controller);\n controller.stop(true);\n }\n } // Loop over as long as there are controllers ...\n\n\n if (controllers.size) {\n if (manualFrameloop) manualFrameloop();else requestFrame(update);\n } else {\n active = false;\n }\n\n return active;\n};\n\nconst start = controller => {\n if (!controllers.has(controller)) controllers.add(controller);\n\n if (!active) {\n active = true;\n if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);\n }\n};\n\nconst stop = controller => {\n if (controllers.has(controller)) controllers.delete(controller);\n};\n\nfunction createInterpolator(range, output, extrapolate) {\n if (typeof range === 'function') {\n return range;\n }\n\n if (Array.isArray(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (interpolation && typeof range.output[0] === 'string') {\n return interpolation(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nclass AnimatedInterpolation extends AnimatedArray {\n constructor(parents, range, output, extrapolate) {\n super();\n this.calc = void 0;\n this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];\n this.calc = createInterpolator(range, output, extrapolate);\n }\n\n getValue() {\n return this.calc(...this.payload.map(value => value.getValue()));\n }\n\n updateConfig(range, output, extrapolate) {\n this.calc = createInterpolator(range, output, extrapolate);\n }\n\n interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n\n}\n\nconst interpolate$1 = (parents, range, output) => parents && new AnimatedInterpolation(parents, range, output);\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\n/** API\n * useChain(references, timeSteps, timeFrame)\n */\n\nfunction useChain(refs, timeSteps, timeFrame) {\n if (timeFrame === void 0) {\n timeFrame = 1000;\n }\n\n const previous = useRef();\n useEffect(() => {\n if (is.equ(refs, previous.current)) refs.forEach((_ref) => {\n let current = _ref.current;\n return current && current.start();\n });else if (timeSteps) {\n refs.forEach((_ref2, index) => {\n let current = _ref2.current;\n\n if (current) {\n const ctrls = current.controllers;\n\n if (ctrls.length) {\n const t = timeFrame * timeSteps[index];\n ctrls.forEach(ctrl => {\n ctrl.queue = ctrl.queue.map(e => _extends({}, e, {\n delay: e.delay + t\n }));\n ctrl.start();\n });\n }\n }\n });\n } else refs.reduce((q, _ref3, rI) => {\n let current = _ref3.current;\n return q = q.then(() => current.start());\n }, Promise.resolve());\n previous.current = refs;\n });\n}\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an AnimatedValue is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction addAnimatedStyles(node, styles) {\n if ('update' in node) {\n styles.add(node);\n } else {\n node.getChildren().forEach(child => addAnimatedStyles(child, styles));\n }\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n var _this;\n\n super();\n _this = this;\n this.animatedStyles = new Set();\n this.value = void 0;\n this.startPosition = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.startTime = void 0;\n this.lastTime = void 0;\n this.done = false;\n\n this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n _this.value = value;\n if (flush) _this.flush();\n };\n\n this.value = _value;\n this.startPosition = _value;\n this.lastPosition = _value;\n }\n\n flush() {\n if (this.animatedStyles.size === 0) {\n addAnimatedStyles(this, this.animatedStyles);\n }\n\n this.animatedStyles.forEach(animatedStyle => animatedStyle.update());\n }\n\n clearStyles() {\n this.animatedStyles.clear();\n }\n\n getValue() {\n return this.value;\n }\n\n interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n\n}\n\nclass AnimatedValueArray extends AnimatedArray {\n constructor(values) {\n super();\n this.payload = values.map(n => new AnimatedValue(n));\n }\n\n setValue(value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n if (Array.isArray(value)) {\n if (value.length === this.payload.length) {\n value.forEach((v, i) => this.payload[i].setValue(v, flush));\n }\n } else {\n this.payload.forEach(p => p.setValue(value, flush));\n }\n }\n\n getValue() {\n return this.payload.map(v => v.getValue());\n }\n\n interpolate(range, output) {\n return new AnimatedInterpolation(this, range, output);\n }\n\n}\n\nlet G = 0;\n\nclass Controller {\n constructor() {\n this.id = void 0;\n this.idle = true;\n this.hasChanged = false;\n this.guid = 0;\n this.local = 0;\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.listeners = [];\n this.queue = [];\n this.localQueue = void 0;\n\n this.getValues = () => this.interpolations;\n\n this.id = G++;\n }\n /** update(props)\n * This function filters input props and creates an array of tasks which are executed in .start()\n * Each task is allowed to carry a delay, which means it can execute asnychroneously */\n\n\n update(args) {\n //this._id = n + this.id\n if (!args) return this; // Extract delay and the to-prop from props\n\n const _ref = interpolateTo(args),\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay,\n to = _ref.to,\n props = _objectWithoutPropertiesLoose(_ref, [\"delay\", \"to\"]);\n\n if (is.arr(to) || is.fun(to)) {\n // If config is either a function or an array queue it up as is\n this.queue.push(_extends({}, props, {\n delay,\n to\n }));\n } else if (to) {\n // Otherwise go through each key since it could be delayed individually\n let ops = {};\n Object.entries(to).forEach((_ref2) => {\n let k = _ref2[0],\n v = _ref2[1];\n\n // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props\n const entry = _extends({\n to: {\n [k]: v\n },\n delay: callProp(delay, k)\n }, props);\n\n const previous = ops[entry.delay] && ops[entry.delay].to;\n ops[entry.delay] = _extends({}, ops[entry.delay], entry, {\n to: _extends({}, previous, entry.to)\n });\n });\n this.queue = Object.values(ops);\n } // Sort queue, so that async calls go last\n\n\n this.queue = this.queue.sort((a, b) => a.delay - b.delay); // Diff the reduced props immediately (they'll contain the from-prop and some config)\n\n this.diff(props);\n return this;\n }\n /** start(onEnd)\n * This function either executes a queue, if present, or starts the frameloop, which animates */\n\n\n start(onEnd) {\n // If a queue is present we must excecute it\n if (this.queue.length) {\n this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values\n\n if (this.localQueue) {\n this.localQueue.forEach((_ref3) => {\n let _ref3$from = _ref3.from,\n from = _ref3$from === void 0 ? {} : _ref3$from,\n _ref3$to = _ref3.to,\n to = _ref3$to === void 0 ? {} : _ref3$to;\n if (is.obj(from)) this.merged = _extends({}, from, this.merged);\n if (is.obj(to)) this.merged = _extends({}, this.merged, to);\n });\n } // The guid helps us tracking frames, a new queue over an old one means an override\n // We discard async calls in that caseÃ\n\n\n const local = this.local = ++this.guid;\n const queue = this.localQueue = this.queue;\n this.queue = []; // Go through each entry and execute it\n\n queue.forEach((_ref4, index) => {\n let delay = _ref4.delay,\n props = _objectWithoutPropertiesLoose(_ref4, [\"delay\"]);\n\n const cb = finished => {\n if (index === queue.length - 1 && local === this.guid && finished) {\n this.idle = true;\n if (this.props.onRest) this.props.onRest(this.merged);\n }\n\n if (onEnd) onEnd();\n }; // Entries can be delayed, ansyc or immediate\n\n\n let async = is.arr(props.to) || is.fun(props.to);\n\n if (delay) {\n setTimeout(() => {\n if (local === this.guid) {\n if (async) this.runAsync(props, cb);else this.diff(props).start(cb);\n }\n }, delay);\n } else if (async) this.runAsync(props, cb);else this.diff(props).start(cb);\n });\n } // Otherwise we kick of the frameloop\n else {\n if (is.fun(onEnd)) this.listeners.push(onEnd);\n if (this.props.onStart) this.props.onStart();\n start(this);\n }\n\n return this;\n }\n\n stop(finished) {\n this.listeners.forEach(onEnd => onEnd(finished));\n this.listeners = [];\n return this;\n }\n /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */\n\n\n pause(finished) {\n this.stop(true);\n if (finished) stop(this);\n return this;\n }\n\n runAsync(_ref5, onEnd) {\n var _this = this;\n\n let delay = _ref5.delay,\n props = _objectWithoutPropertiesLoose(_ref5, [\"delay\"]);\n\n const local = this.local; // If \"to\" is either a function or an array it will be processed async, therefor \"to\" should be empty right now\n // If the view relies on certain values \"from\" has to be present\n\n let queue = Promise.resolve(undefined);\n\n if (is.arr(props.to)) {\n for (let i = 0; i < props.to.length; i++) {\n const index = i;\n\n const fresh = _extends({}, props, interpolateTo(props.to[index]));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n queue = queue.then(() => {\n //this.stop()\n if (local === this.guid) return new Promise(r => this.diff(fresh).start(r));\n });\n }\n } else if (is.fun(props.to)) {\n let index = 0;\n let last;\n queue = queue.then(() => props.to( // next(props)\n p => {\n const fresh = _extends({}, props, interpolateTo(p));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n index++; //this.stop()\n\n if (local === this.guid) return last = new Promise(r => this.diff(fresh).start(r));\n return;\n }, // cancel()\n function (finished) {\n if (finished === void 0) {\n finished = true;\n }\n\n return _this.stop(finished);\n }).then(() => last));\n }\n\n queue.then(onEnd);\n }\n\n diff(props) {\n this.props = _extends({}, this.props, props);\n let _this$props = this.props,\n _this$props$from = _this$props.from,\n from = _this$props$from === void 0 ? {} : _this$props$from,\n _this$props$to = _this$props.to,\n to = _this$props$to === void 0 ? {} : _this$props$to,\n _this$props$config = _this$props.config,\n config = _this$props$config === void 0 ? {} : _this$props$config,\n reverse = _this$props.reverse,\n attach = _this$props.attach,\n reset = _this$props.reset,\n immediate = _this$props.immediate; // Reverse values when requested\n\n if (reverse) {\n var _ref6 = [to, from];\n from = _ref6[0];\n to = _ref6[1];\n } // This will collect all props that were ever set, reset merged props when necessary\n\n\n this.merged = _extends({}, from, this.merged, to);\n this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n let target = attach && attach(this); // Reduces input { name: value } pairs into animated values\n\n this.animations = Object.entries(this.merged).reduce((acc, _ref7) => {\n let name = _ref7[0],\n value = _ref7[1];\n // Issue cached entries, except on reset\n let entry = acc[name] || {}; // Figure out what the value is supposed to be\n\n const isNumber = is.num(value);\n const isString = is.str(value) && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n const isArray = is.arr(value);\n const isInterpolation = !isNumber && !isArray && !isString;\n let fromValue = !is.und(from[name]) ? from[name] : value;\n let toValue = isNumber || isArray ? value : isString ? value : 1;\n let toConfig = callProp(config, name);\n if (target) toValue = target.animations[name].parent;\n let parent = entry.parent,\n interpolation$$1 = entry.interpolation,\n toValues = toArray(target ? toValue.getPayload() : toValue),\n animatedValues;\n let newValue = value;\n if (isInterpolation) newValue = interpolation({\n range: [0, 1],\n output: [value, value]\n })(1);\n let currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags\n\n const isFirst = is.und(parent);\n const isActive = !isFirst && entry.animatedValues.some(v => !v.done);\n const currentValueDiffersFromGoal = !is.equ(newValue, currentValue);\n const hasNewGoal = !is.equ(newValue, entry.previous);\n const hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)\n // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)\n\n if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {\n // Convert regular values into animated values, ALWAYS re-use if possible\n if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {\n let prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n prev = prev !== void 0 && !reset ? prev : fromValue;\n\n if (entry.parent) {\n parent = entry.parent;\n parent.setValue(0, false);\n } else parent = new AnimatedValue(0);\n\n const range = {\n output: [prev, value]\n };\n\n if (entry.interpolation) {\n interpolation$$1 = entry.interpolation;\n entry.interpolation.updateConfig(range);\n } else interpolation$$1 = parent.interpolate(range);\n }\n toValues = toArray(target ? toValue.getPayload() : toValue);\n animatedValues = toArray(parent.getPayload());\n if (reset && !isInterpolation) parent.setValue(fromValue, false);\n this.hasChanged = true; // Reset animated values\n\n animatedValues.forEach(value => {\n value.startPosition = value.value;\n value.lastPosition = value.value;\n value.lastVelocity = isActive ? value.lastVelocity : undefined;\n value.lastTime = isActive ? value.lastTime : undefined;\n value.startTime = now();\n value.done = false;\n value.animatedStyles.clear();\n }); // Set immediate values\n\n if (callProp(immediate, name)) {\n parent.setValue(isInterpolation ? toValue : value, false);\n }\n\n return _extends({}, acc, {\n [name]: _extends({}, entry, {\n name,\n parent,\n interpolation: interpolation$$1,\n animatedValues,\n toValues,\n previous: newValue,\n config: toConfig,\n fromValues: toArray(parent.getValue()),\n immediate: callProp(immediate, name),\n initialVelocity: withDefault(toConfig.velocity, 0),\n clamp: withDefault(toConfig.clamp, false),\n precision: withDefault(toConfig.precision, 0.01),\n tension: withDefault(toConfig.tension, 170),\n friction: withDefault(toConfig.friction, 26),\n mass: withDefault(toConfig.mass, 1),\n duration: toConfig.duration,\n easing: withDefault(toConfig.easing, t => t),\n decay: toConfig.decay\n })\n });\n } else {\n if (!currentValueDiffersFromGoal) {\n // So ... the current target value (newValue) appears to be different from the previous value,\n // which normally constitutes an update, but the actual value (currentValue) matches the target!\n // In order to resolve this without causing an animation update we silently flag the animation as done,\n // which it technically is. Interpolations also needs a config update with their target set to 1.\n if (isInterpolation) {\n parent.setValue(1, false);\n interpolation$$1.updateConfig({\n output: [newValue, newValue]\n });\n }\n\n parent.done = true;\n this.hasChanged = true;\n return _extends({}, acc, {\n [name]: _extends({}, acc[name], {\n previous: newValue\n })\n });\n }\n\n return acc;\n }\n }, this.animations);\n\n if (this.hasChanged) {\n // Make animations available to frameloop\n this.configs = Object.values(this.animations);\n this.values = {};\n this.interpolations = {};\n\n for (let key in this.animations) {\n this.interpolations[key] = this.animations[key].interpolation;\n this.values[key] = this.animations[key].interpolation.getValue();\n }\n }\n\n return this;\n }\n\n destroy() {\n this.stop();\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.local = 0;\n }\n\n}\n\n/** API\n * const props = useSprings(number, [{ ... }, { ... }, ...])\n * const [props, set] = useSprings(number, (i, controller) => ({ ... }))\n */\n\nconst useSprings = (length, props) => {\n const mounted = useRef(false);\n const ctrl = useRef();\n const isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations\n\n const _useMemo = useMemo(() => {\n // Remove old controllers\n if (ctrl.current) {\n ctrl.current.map(c => c.destroy());\n ctrl.current = undefined;\n }\n\n let ref;\n return [new Array(length).fill().map((_, i) => {\n const ctrl = new Controller();\n const newProps = isFn ? callProp(props, i, ctrl) : props[i];\n if (i === 0) ref = newProps.ref;\n ctrl.update(newProps);\n if (!ref) ctrl.start();\n return ctrl;\n }), ref];\n }, [length]),\n controllers = _useMemo[0],\n ref = _useMemo[1];\n\n ctrl.current = controllers; // The hooks reference api gets defined here ...\n\n const api = useImperativeHandle(ref, () => ({\n start: () => Promise.all(ctrl.current.map(c => new Promise(r => c.start(r)))),\n stop: finished => ctrl.current.forEach(c => c.stop(finished)),\n\n get controllers() {\n return ctrl.current;\n }\n\n })); // This function updates the controllers\n\n const updateCtrl = useMemo(() => updateProps => ctrl.current.map((c, i) => {\n c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);\n if (!ref) c.start();\n }), [length]); // Update controller if props aren't functional\n\n useEffect(() => {\n if (mounted.current) {\n if (!isFn) updateCtrl(props);\n } else if (!ref) ctrl.current.forEach(c => c.start());\n }); // Update mounted flag and destroy controller on unmount\n\n useEffect(() => (mounted.current = true, () => ctrl.current.forEach(c => c.destroy())), []); // Return animated props, or, anim-props + the update-setter above\n\n const propValues = ctrl.current.map(c => c.getValues());\n return isFn ? [propValues, updateCtrl, finished => ctrl.current.forEach(c => c.pause(finished))] : propValues;\n};\n\n/** API\n * const props = useSpring({ ... })\n * const [props, set] = useSpring(() => ({ ... }))\n */\n\nconst useSpring = props => {\n const isFn = is.fun(props);\n\n const _useSprings = useSprings(1, isFn ? props : [props]),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2];\n\n return isFn ? [result[0], set, pause] : result;\n};\n\n/** API\n * const trails = useTrail(number, { ... })\n * const [trails, set] = useTrail(number, () => ({ ... }))\n */\n\nconst useTrail = (length, props) => {\n const mounted = useRef(false);\n const isFn = is.fun(props);\n const updateProps = callProp(props);\n const instances = useRef();\n\n const _useSprings = useSprings(length, (i, ctrl) => {\n if (i === 0) instances.current = [];\n instances.current.push(ctrl);\n return _extends({}, updateProps, {\n config: callProp(updateProps.config, i),\n attach: i > 0 && (() => instances.current[i - 1])\n });\n }),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2]; // Set up function to update controller\n\n\n const updateCtrl = useMemo(() => props => set((i, ctrl) => {\n const last = props.reverse ? i === 0 : length - 1 === i;\n const attachIdx = props.reverse ? i + 1 : i - 1;\n const attachController = instances.current[attachIdx];\n return _extends({}, props, {\n config: callProp(props.config || updateProps.config, i),\n attach: attachController && (() => attachController)\n });\n }), [length, updateProps.reverse]); // Update controller if props aren't functional\n\n useEffect(() => void (mounted.current && !isFn && updateCtrl(props))); // Update mounted flag and destroy controller on unmount\n\n useEffect(() => void (mounted.current = true), []);\n return isFn ? [result, updateCtrl, pause] : result;\n};\n\n/** API\n * const transitions = useTransition(items, itemKeys, { ... })\n * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))\n */\n\nlet guid = 0;\nconst ENTER = 'enter';\nconst LEAVE = 'leave';\nconst UPDATE = 'update';\n\nconst mapKeys = (items, keys) => (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);\n\nconst get = props => {\n let items = props.items,\n _props$keys = props.keys,\n keys = _props$keys === void 0 ? item => item : _props$keys,\n rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n items = toArray(items !== void 0 ? items : null);\n return _extends({\n items,\n keys: mapKeys(items, keys)\n }, rest);\n};\n\nfunction useTransition(input, keyTransform, config) {\n const props = _extends({\n items: input,\n keys: keyTransform || (i => i)\n }, config);\n\n const _get = get(props),\n _get$lazy = _get.lazy,\n lazy = _get$lazy === void 0 ? false : _get$lazy,\n _get$unique = _get.unique,\n _get$reset = _get.reset,\n reset = _get$reset === void 0 ? false : _get$reset,\n enter = _get.enter,\n leave = _get.leave,\n update = _get.update,\n onDestroyed = _get.onDestroyed,\n keys = _get.keys,\n items = _get.items,\n onFrame = _get.onFrame,\n _onRest = _get.onRest,\n onStart = _get.onStart,\n ref = _get.ref,\n extra = _objectWithoutPropertiesLoose(_get, [\"lazy\", \"unique\", \"reset\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"ref\"]);\n\n const forceUpdate = useForceUpdate();\n const mounted = useRef(false);\n const state = useRef({\n mounted: false,\n first: true,\n deleted: [],\n current: {},\n transitions: [],\n prevProps: {},\n paused: !!props.ref,\n instances: !mounted.current && new Map(),\n forceUpdate\n });\n useImperativeHandle(props.ref, () => ({\n start: () => Promise.all(Array.from(state.current.instances).map((_ref) => {\n let c = _ref[1];\n return new Promise(r => c.start(r));\n })),\n stop: finished => Array.from(state.current.instances).forEach((_ref2) => {\n let c = _ref2[1];\n return c.stop(finished);\n }),\n\n get controllers() {\n return Array.from(state.current.instances).map((_ref3) => {\n let c = _ref3[1];\n return c;\n });\n }\n\n })); // Update state\n\n state.current = diffItems(state.current, props);\n\n if (state.current.changed) {\n // Update state\n state.current.transitions.forEach(transition => {\n const slot = transition.slot,\n from = transition.from,\n to = transition.to,\n config = transition.config,\n trail = transition.trail,\n key = transition.key,\n item = transition.item;\n if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object\n\n const ctrl = state.current.instances.get(key);\n\n const newProps = _extends({}, extra, {\n to,\n from,\n config,\n ref,\n onRest: values => {\n if (state.current.mounted) {\n if (transition.destroyed) {\n // If no ref is given delete destroyed items immediately\n if (!ref && !lazy) cleanUp(state, key);\n if (onDestroyed) onDestroyed(item);\n } // A transition comes to rest once all its springs conclude\n\n\n const curInstances = Array.from(state.current.instances);\n const active = curInstances.some((_ref4) => {\n let c = _ref4[1];\n return !c.idle;\n });\n if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);\n if (_onRest) _onRest(item, slot, values);\n }\n },\n onStart: onStart && (() => onStart(item, slot)),\n onFrame: onFrame && (values => onFrame(item, slot, values)),\n delay: trail,\n reset: reset && slot === ENTER // Update controller\n\n });\n\n ctrl.update(newProps);\n if (!state.current.paused) ctrl.start();\n });\n }\n\n useEffect(() => {\n state.current.mounted = mounted.current = true;\n return () => {\n state.current.mounted = mounted.current = false;\n Array.from(state.current.instances).map((_ref5) => {\n let c = _ref5[1];\n return c.destroy();\n });\n state.current.instances.clear();\n };\n }, []);\n return state.current.transitions.map((_ref6) => {\n let item = _ref6.item,\n slot = _ref6.slot,\n key = _ref6.key;\n return {\n item,\n key,\n state: slot,\n props: state.current.instances.get(key).getValues()\n };\n });\n}\n\nfunction cleanUp(state, filterKey) {\n const deleted = state.current.deleted;\n\n for (let _ref7 of deleted) {\n let key = _ref7.key;\n\n const filter = t => t.key !== key;\n\n if (is.und(filterKey) || filterKey === key) {\n state.current.instances.delete(key);\n state.current.transitions = state.current.transitions.filter(filter);\n state.current.deleted = state.current.deleted.filter(filter);\n }\n }\n\n state.current.forceUpdate();\n}\n\nfunction diffItems(_ref8, props) {\n let first = _ref8.first,\n prevProps = _ref8.prevProps,\n state = _objectWithoutPropertiesLoose(_ref8, [\"first\", \"prevProps\"]);\n\n let _get2 = get(props),\n items = _get2.items,\n keys = _get2.keys,\n initial = _get2.initial,\n from = _get2.from,\n enter = _get2.enter,\n leave = _get2.leave,\n update = _get2.update,\n _get2$trail = _get2.trail,\n trail = _get2$trail === void 0 ? 0 : _get2$trail,\n unique = _get2.unique,\n config = _get2.config,\n _get2$order = _get2.order,\n order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;\n\n let _get3 = get(prevProps),\n _keys = _get3.keys,\n _items = _get3.items;\n\n let current = _extends({}, state.current);\n\n let deleted = [...state.deleted]; // Compare next keys with current keys\n\n let currentKeys = Object.keys(current);\n let currentSet = new Set(currentKeys);\n let nextSet = new Set(keys);\n let added = keys.filter(item => !currentSet.has(item));\n let removed = state.transitions.filter(item => !item.destroyed && !nextSet.has(item.originalKey)).map(i => i.originalKey);\n let updated = keys.filter(item => currentSet.has(item));\n let delay = -trail;\n\n while (order.length) {\n const changeType = order.shift();\n\n switch (changeType) {\n case ENTER:\n {\n added.forEach((key, index) => {\n // In unique mode, remove fading out transitions if their key comes in again\n if (unique && deleted.find(d => d.originalKey === key)) deleted = deleted.filter(t => t.originalKey !== key);\n const keyIndex = keys.indexOf(key);\n const item = items[keyIndex];\n const slot = first && initial !== void 0 ? 'initial' : ENTER;\n current[key] = {\n slot,\n originalKey: key,\n key: unique ? String(key) : guid++,\n item,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n to: callProp(enter, item)\n };\n });\n break;\n }\n\n case LEAVE:\n {\n removed.forEach(key => {\n const keyIndex = _keys.indexOf(key);\n\n const item = _items[keyIndex];\n const slot = LEAVE;\n deleted.unshift(_extends({}, current[key], {\n slot,\n destroyed: true,\n left: _keys[Math.max(0, keyIndex - 1)],\n right: _keys[Math.min(_keys.length, keyIndex + 1)],\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(leave, item)\n }));\n delete current[key];\n });\n break;\n }\n\n case UPDATE:\n {\n updated.forEach(key => {\n const keyIndex = keys.indexOf(key);\n const item = items[keyIndex];\n const slot = UPDATE;\n current[key] = _extends({}, current[key], {\n item,\n slot,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(update, item)\n });\n });\n break;\n }\n }\n }\n\n let out = keys.map(key => current[key]); // This tries to restore order for deleted items by finding their last known siblings\n // only using the left sibling to keep order placement consistent for all deleted items\n\n deleted.forEach((_ref9) => {\n let left = _ref9.left,\n right = _ref9.right,\n item = _objectWithoutPropertiesLoose(_ref9, [\"left\", \"right\"]);\n\n let pos; // Was it the element on the left, if yes, move there ...\n\n if ((pos = out.findIndex(t => t.originalKey === left)) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n pos = Math.max(0, pos);\n out = [...out.slice(0, pos), item, ...out.slice(pos)];\n });\n return _extends({}, state, {\n changed: added.length || removed.length || updated.length,\n first: first && added.length === 0,\n transitions: out,\n current,\n deleted,\n prevProps: props\n });\n}\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(style) {\n if (style === void 0) {\n style = {};\n }\n\n super();\n\n if (style.transform && !(style.transform instanceof Animated)) {\n style = applyAnimatedValues.transform(style);\n }\n\n this.payload = style;\n }\n\n}\n\n// http://www.w3.org/TR/css3-color/#svg-color\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\n// const INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n if (colors.hasOwnProperty(color)) return colors[color];\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff) >>> // a\n 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff) >>> // a\n 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4])) >>> // a\n 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nconst stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nconst colorNamesRegex = new RegExp(`(${Object.keys(colors).join('|')})`, 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nconst createStringInterpolator = config => {\n // Replace colors with rgba\n const outputRange = config.output.map(rangeValue => rangeValue.replace(colorRegex, colorToRgba)).map(rangeValue => rangeValue.replace(colorNamesRegex, colorToRgba));\n const outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n value.match(stringShapeRegex).forEach((number, i) => outputRanges[i].push(+number));\n });\n const interpolations = outputRange[0].match(stringShapeRegex).map((_value, i) => createInterpolator(_extends({}, config, {\n output: outputRanges[i]\n })));\n return input => {\n let i = 0;\n return outputRange[0] // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n .replace(stringShapeRegex, () => interpolations[i++](input)) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`);\n };\n};\n\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\ninjectCreateAnimatedStyle(style => new AnimatedStyle(style));\ninjectDefaultElement('div');\ninjectStringInterpolator(createStringInterpolator);\ninjectColorNames(colors);\ninjectApplyAnimatedValues((instance, props) => {\n if (instance.nodeType && instance.setAttribute !== undefined) {\n const style = props.style,\n children = props.children,\n scrollTop = props.scrollTop,\n scrollLeft = props.scrollLeft,\n attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n const filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n if (children !== void 0) instance.textContent = children; // Set styles ...\n\n for (let styleName in style) {\n if (!style.hasOwnProperty(styleName)) continue;\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n if (styleName === 'float') styleName = 'cssFloat';\n if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n } // Set attributes ...\n\n\n for (let name in attributes) {\n // Attributes are written in dash case\n const dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase()));\n if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n }\n\n return;\n } else return false;\n}, style => style);\n\nconst domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n// Extend animated with all the available THREE elements\nconst apply = merge(createAnimatedComponent, false);\nconst extendedAnimated = apply(domElements);\n\nexport { apply, config, update, extendedAnimated as animated, extendedAnimated as a, interpolate$1 as interpolate, Globals, useSpring, useTrail, useTransition, useChain, useSprings };\n","'use strict'\n\nfunction markdownLineEnding(code) {\n return code < -2\n}\n\nmodule.exports = markdownLineEnding\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity\n var size = 0\n return start\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n\nmodule.exports = spaceFactory\n","/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\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 { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var spin = props.spin,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-spin': spin,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, [\"style\"]);\n\n mixins.attrs['style'] = _objectSpread2({}, mixins.attrs['style'], {}, existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2({}, mixins.attrs, {}, remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, [\"forwardedRef\"]);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2({}, classes, {}, transform, {}, mask, {\n symbol: symbol,\n title: title,\n titleId: titleId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n border: PropTypes.bool,\n className: PropTypes.string,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n size: PropTypes.oneOf(['lg', 'xs', 'sm', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n fixedWidth: false,\n inverse: false,\n flip: null,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n symbol: false,\n title: '',\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use strict'\n\nmodule.exports = all\n\nvar one = require('./one')\n\nfunction all(h, parent) {\n var nodes = parent.children || []\n var length = nodes.length\n var values = []\n var index = -1\n var result\n var head\n\n while (++index < length) {\n result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (result.value) {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n head = result.children && result.children[0]\n\n if (head && head.value) {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n\n values = values.concat(result)\n }\n }\n\n return values\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\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 // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n ) {\n ++i\n } // Create a sparse array\n tokenStack[i] = match\n return placeholder\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 } // 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\n /* && 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","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","'use strict'\n\nmodule.exports = u\n\nfunction u(type, props, value) {\n var node\n\n if (\n (value === null || value === undefined) &&\n (typeof props !== 'object' || Array.isArray(props))\n ) {\n value = props\n props = {}\n }\n\n node = Object.assign({type: String(type)}, props)\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== null && value !== undefined) {\n node.value = String(value)\n }\n\n return node\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\nexport var pointStart = point('start')\nexport var pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike} [node]\n * @returns {Point}\n */\n function point(node) {\n /** @type {Point} */\n // @ts-ignore looks like a point\n var point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","var defineProperty = require(\"./defineProperty.js\");\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? Object(arguments[r]) : {},\n o = Object.keys(t);\n \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), o.forEach(function (r) {\n defineProperty(e, r, t[r]);\n });\n }\n return e;\n}\nmodule.exports = _objectSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n\nmodule.exports = markdownSpace\n","'use strict'\n\nvar splice = require('../constant/splice.js')\n\n// causes a stack overflow in V8 when trying to insert 100k items for instance.\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length\n var chunkStart = 0\n var parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0)\n splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n\nmodule.exports = chunkedSplice\n","'use strict'\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32\n}\n\nmodule.exports = markdownLineEndingOrSpace\n","'use strict';\n\nclass Mixin {\n constructor(host) {\n const originalMethods = {};\n const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n for (const key of Object.keys(overriddenMethods)) {\n if (typeof overriddenMethods[key] === 'function') {\n originalMethods[key] = host[key];\n host[key] = overriddenMethods[key];\n }\n }\n }\n\n _getOverriddenMethods() {\n throw new Error('Not implemented');\n }\n}\n\nMixin.install = function(host, Ctor, opts) {\n if (!host.__mixins) {\n host.__mixins = [];\n }\n\n for (let i = 0; i < host.__mixins.length; i++) {\n if (host.__mixins[i].constructor === Ctor) {\n return host.__mixins[i];\n }\n }\n\n const mixin = new Ctor(host, opts);\n\n host.__mixins.push(mixin);\n\n return mixin;\n};\n\nmodule.exports = Mixin;\n","var toPropertyKey = require(\"./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}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction regexCheck(regex) {\n return check\n\n function check(code) {\n return regex.test(fromCharCode(code))\n }\n}\n\nmodule.exports = regexCheck\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict'\n\nvar assign = require('../constant/assign.js')\n\nfunction shallow(object) {\n return assign({}, object)\n}\n\nmodule.exports = shallow\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\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 '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(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|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 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 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 // highlight predefined macros as constants\n constant:\n /\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fab\";\nvar fa500px = {\n prefix: 'fab',\n iconName: '500px',\n icon: [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"]\n};\nvar faAccessibleIcon = {\n prefix: 'fab',\n iconName: 'accessible-icon',\n icon: [448, 512, [], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"]\n};\nvar faAccusoft = {\n prefix: 'fab',\n iconName: 'accusoft',\n icon: [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"]\n};\nvar faAcquisitionsIncorporated = {\n prefix: 'fab',\n iconName: 'acquisitions-incorporated',\n icon: [384, 512, [], \"f6af\", \"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"]\n};\nvar faAdn = {\n prefix: 'fab',\n iconName: 'adn',\n icon: [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"]\n};\nvar faAdversal = {\n prefix: 'fab',\n iconName: 'adversal',\n icon: [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"]\n};\nvar faAffiliatetheme = {\n prefix: 'fab',\n iconName: 'affiliatetheme',\n icon: [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"]\n};\nvar faAirbnb = {\n prefix: 'fab',\n iconName: 'airbnb',\n icon: [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"]\n};\nvar faAlgolia = {\n prefix: 'fab',\n iconName: 'algolia',\n icon: [448, 512, [], \"f36c\", \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"]\n};\nvar faAlipay = {\n prefix: 'fab',\n iconName: 'alipay',\n icon: [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"]\n};\nvar faAmazon = {\n prefix: 'fab',\n iconName: 'amazon',\n icon: [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"]\n};\nvar faAmazonPay = {\n prefix: 'fab',\n iconName: 'amazon-pay',\n icon: [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"]\n};\nvar faAmilia = {\n prefix: 'fab',\n iconName: 'amilia',\n icon: [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"]\n};\nvar faAndroid = {\n prefix: 'fab',\n iconName: 'android',\n icon: [576, 512, [], \"f17b\", \"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"]\n};\nvar faAngellist = {\n prefix: 'fab',\n iconName: 'angellist',\n icon: [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"]\n};\nvar faAngrycreative = {\n prefix: 'fab',\n iconName: 'angrycreative',\n icon: [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"]\n};\nvar faAngular = {\n prefix: 'fab',\n iconName: 'angular',\n icon: [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"]\n};\nvar faAppStore = {\n prefix: 'fab',\n iconName: 'app-store',\n icon: [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"]\n};\nvar faAppStoreIos = {\n prefix: 'fab',\n iconName: 'app-store-ios',\n icon: [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"]\n};\nvar faApper = {\n prefix: 'fab',\n iconName: 'apper',\n icon: [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"]\n};\nvar faApple = {\n prefix: 'fab',\n iconName: 'apple',\n icon: [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"]\n};\nvar faApplePay = {\n prefix: 'fab',\n iconName: 'apple-pay',\n icon: [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"]\n};\nvar faArtstation = {\n prefix: 'fab',\n iconName: 'artstation',\n icon: [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"]\n};\nvar faAsymmetrik = {\n prefix: 'fab',\n iconName: 'asymmetrik',\n icon: [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"]\n};\nvar faAtlassian = {\n prefix: 'fab',\n iconName: 'atlassian',\n icon: [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"]\n};\nvar faAudible = {\n prefix: 'fab',\n iconName: 'audible',\n icon: [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"]\n};\nvar faAutoprefixer = {\n prefix: 'fab',\n iconName: 'autoprefixer',\n icon: [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"]\n};\nvar faAvianex = {\n prefix: 'fab',\n iconName: 'avianex',\n icon: [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"]\n};\nvar faAviato = {\n prefix: 'fab',\n iconName: 'aviato',\n icon: [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"]\n};\nvar faAws = {\n prefix: 'fab',\n iconName: 'aws',\n icon: [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"]\n};\nvar faBandcamp = {\n prefix: 'fab',\n iconName: 'bandcamp',\n icon: [512, 512, [], \"f2d5\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"]\n};\nvar faBattleNet = {\n prefix: 'fab',\n iconName: 'battle-net',\n icon: [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"]\n};\nvar faBehance = {\n prefix: 'fab',\n iconName: 'behance',\n icon: [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"]\n};\nvar faBehanceSquare = {\n prefix: 'fab',\n iconName: 'behance-square',\n icon: [448, 512, [], \"f1b5\", \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"]\n};\nvar faBimobject = {\n prefix: 'fab',\n iconName: 'bimobject',\n icon: [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"]\n};\nvar faBitbucket = {\n prefix: 'fab',\n iconName: 'bitbucket',\n icon: [512, 512, [], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"]\n};\nvar faBitcoin = {\n prefix: 'fab',\n iconName: 'bitcoin',\n icon: [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"]\n};\nvar faBity = {\n prefix: 'fab',\n iconName: 'bity',\n icon: [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"]\n};\nvar faBlackTie = {\n prefix: 'fab',\n iconName: 'black-tie',\n icon: [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"]\n};\nvar faBlackberry = {\n prefix: 'fab',\n iconName: 'blackberry',\n icon: [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"]\n};\nvar faBlogger = {\n prefix: 'fab',\n iconName: 'blogger',\n icon: [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"]\n};\nvar faBloggerB = {\n prefix: 'fab',\n iconName: 'blogger-b',\n icon: [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"]\n};\nvar faBluetooth = {\n prefix: 'fab',\n iconName: 'bluetooth',\n icon: [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"]\n};\nvar faBluetoothB = {\n prefix: 'fab',\n iconName: 'bluetooth-b',\n icon: [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"]\n};\nvar faBootstrap = {\n prefix: 'fab',\n iconName: 'bootstrap',\n icon: [448, 512, [], \"f836\", \"M292.3 311.93c0 42.41-39.72 41.43-43.92 41.43h-80.89v-81.69h80.89c42.56 0 43.92 31.9 43.92 40.26zm-50.15-73.13c.67 0 38.44 1 38.44-36.31 0-15.52-3.51-35.87-38.44-35.87h-74.66v72.18h74.66zM448 106.67v298.66A74.89 74.89 0 0 1 373.33 480H74.67A74.89 74.89 0 0 1 0 405.33V106.67A74.89 74.89 0 0 1 74.67 32h298.66A74.89 74.89 0 0 1 448 106.67zM338.05 317.86c0-21.57-6.65-58.29-49.05-67.35v-.73c22.91-9.78 37.34-28.25 37.34-55.64 0-7 2-64.78-77.6-64.78h-127v261.33c128.23 0 139.87 1.68 163.6-5.71 14.21-4.42 52.71-17.98 52.71-67.12z\"]\n};\nvar faBtc = {\n prefix: 'fab',\n iconName: 'btc',\n icon: [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"]\n};\nvar faBuffer = {\n prefix: 'fab',\n iconName: 'buffer',\n icon: [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"]\n};\nvar faBuromobelexperte = {\n prefix: 'fab',\n iconName: 'buromobelexperte',\n icon: [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"]\n};\nvar faBuyNLarge = {\n prefix: 'fab',\n iconName: 'buy-n-large',\n icon: [576, 512, [], \"f8a6\", \"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"]\n};\nvar faBuysellads = {\n prefix: 'fab',\n iconName: 'buysellads',\n icon: [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"]\n};\nvar faCanadianMapleLeaf = {\n prefix: 'fab',\n iconName: 'canadian-maple-leaf',\n icon: [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"]\n};\nvar faCcAmazonPay = {\n prefix: 'fab',\n iconName: 'cc-amazon-pay',\n icon: [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"]\n};\nvar faCcAmex = {\n prefix: 'fab',\n iconName: 'cc-amex',\n icon: [576, 512, [], \"f1f3\", \"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"]\n};\nvar faCcApplePay = {\n prefix: 'fab',\n iconName: 'cc-apple-pay',\n icon: [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"]\n};\nvar faCcDinersClub = {\n prefix: 'fab',\n iconName: 'cc-diners-club',\n icon: [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"]\n};\nvar faCcDiscover = {\n prefix: 'fab',\n iconName: 'cc-discover',\n icon: [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"]\n};\nvar faCcJcb = {\n prefix: 'fab',\n iconName: 'cc-jcb',\n icon: [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"]\n};\nvar faCcMastercard = {\n prefix: 'fab',\n iconName: 'cc-mastercard',\n icon: [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"]\n};\nvar faCcPaypal = {\n prefix: 'fab',\n iconName: 'cc-paypal',\n icon: [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"]\n};\nvar faCcStripe = {\n prefix: 'fab',\n iconName: 'cc-stripe',\n icon: [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"]\n};\nvar faCcVisa = {\n prefix: 'fab',\n iconName: 'cc-visa',\n icon: [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"]\n};\nvar faCentercode = {\n prefix: 'fab',\n iconName: 'centercode',\n icon: [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"]\n};\nvar faCentos = {\n prefix: 'fab',\n iconName: 'centos',\n icon: [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"]\n};\nvar faChrome = {\n prefix: 'fab',\n iconName: 'chrome',\n icon: [496, 512, [], \"f268\", \"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"]\n};\nvar faChromecast = {\n prefix: 'fab',\n iconName: 'chromecast',\n icon: [512, 512, [], \"f838\", \"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"]\n};\nvar faCloudflare = {\n prefix: 'fab',\n iconName: 'cloudflare',\n icon: [640, 512, [], \"e07d\", \"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"]\n};\nvar faCloudscale = {\n prefix: 'fab',\n iconName: 'cloudscale',\n icon: [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"]\n};\nvar faCloudsmith = {\n prefix: 'fab',\n iconName: 'cloudsmith',\n icon: [332, 512, [], \"f384\", \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"]\n};\nvar faCloudversify = {\n prefix: 'fab',\n iconName: 'cloudversify',\n icon: [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"]\n};\nvar faCodepen = {\n prefix: 'fab',\n iconName: 'codepen',\n icon: [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"]\n};\nvar faCodiepie = {\n prefix: 'fab',\n iconName: 'codiepie',\n icon: [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"]\n};\nvar faConfluence = {\n prefix: 'fab',\n iconName: 'confluence',\n icon: [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"]\n};\nvar faConnectdevelop = {\n prefix: 'fab',\n iconName: 'connectdevelop',\n icon: [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"]\n};\nvar faContao = {\n prefix: 'fab',\n iconName: 'contao',\n icon: [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"]\n};\nvar faCottonBureau = {\n prefix: 'fab',\n iconName: 'cotton-bureau',\n icon: [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"]\n};\nvar faCpanel = {\n prefix: 'fab',\n iconName: 'cpanel',\n icon: [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"]\n};\nvar faCreativeCommons = {\n prefix: 'fab',\n iconName: 'creative-commons',\n icon: [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"]\n};\nvar faCreativeCommonsBy = {\n prefix: 'fab',\n iconName: 'creative-commons-by',\n icon: [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"]\n};\nvar faCreativeCommonsNc = {\n prefix: 'fab',\n iconName: 'creative-commons-nc',\n icon: [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"]\n};\nvar faCreativeCommonsNcEu = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-eu',\n icon: [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"]\n};\nvar faCreativeCommonsNcJp = {\n prefix: 'fab',\n iconName: 'creative-commons-nc-jp',\n icon: [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"]\n};\nvar faCreativeCommonsNd = {\n prefix: 'fab',\n iconName: 'creative-commons-nd',\n icon: [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"]\n};\nvar faCreativeCommonsPd = {\n prefix: 'fab',\n iconName: 'creative-commons-pd',\n icon: [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"]\n};\nvar faCreativeCommonsPdAlt = {\n prefix: 'fab',\n iconName: 'creative-commons-pd-alt',\n icon: [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"]\n};\nvar faCreativeCommonsRemix = {\n prefix: 'fab',\n iconName: 'creative-commons-remix',\n icon: [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"]\n};\nvar faCreativeCommonsSa = {\n prefix: 'fab',\n iconName: 'creative-commons-sa',\n icon: [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"]\n};\nvar faCreativeCommonsSampling = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling',\n icon: [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"]\n};\nvar faCreativeCommonsSamplingPlus = {\n prefix: 'fab',\n iconName: 'creative-commons-sampling-plus',\n icon: [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"]\n};\nvar faCreativeCommonsShare = {\n prefix: 'fab',\n iconName: 'creative-commons-share',\n icon: [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"]\n};\nvar faCreativeCommonsZero = {\n prefix: 'fab',\n iconName: 'creative-commons-zero',\n icon: [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"]\n};\nvar faCriticalRole = {\n prefix: 'fab',\n iconName: 'critical-role',\n icon: [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"]\n};\nvar faCss3 = {\n prefix: 'fab',\n iconName: 'css3',\n icon: [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"]\n};\nvar faCss3Alt = {\n prefix: 'fab',\n iconName: 'css3-alt',\n icon: [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"]\n};\nvar faCuttlefish = {\n prefix: 'fab',\n iconName: 'cuttlefish',\n icon: [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"]\n};\nvar faDAndD = {\n prefix: 'fab',\n iconName: 'd-and-d',\n icon: [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"]\n};\nvar faDAndDBeyond = {\n prefix: 'fab',\n iconName: 'd-and-d-beyond',\n icon: [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"]\n};\nvar faDailymotion = {\n prefix: 'fab',\n iconName: 'dailymotion',\n icon: [448, 512, [], \"e052\", \"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"]\n};\nvar faDashcube = {\n prefix: 'fab',\n iconName: 'dashcube',\n icon: [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"]\n};\nvar faDeezer = {\n prefix: 'fab',\n iconName: 'deezer',\n icon: [576, 512, [], \"e077\", \"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"]\n};\nvar faDelicious = {\n prefix: 'fab',\n iconName: 'delicious',\n icon: [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"]\n};\nvar faDeploydog = {\n prefix: 'fab',\n iconName: 'deploydog',\n icon: [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"]\n};\nvar faDeskpro = {\n prefix: 'fab',\n iconName: 'deskpro',\n icon: [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"]\n};\nvar faDev = {\n prefix: 'fab',\n iconName: 'dev',\n icon: [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"]\n};\nvar faDeviantart = {\n prefix: 'fab',\n iconName: 'deviantart',\n icon: [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"]\n};\nvar faDhl = {\n prefix: 'fab',\n iconName: 'dhl',\n icon: [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"]\n};\nvar faDiaspora = {\n prefix: 'fab',\n iconName: 'diaspora',\n icon: [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"]\n};\nvar faDigg = {\n prefix: 'fab',\n iconName: 'digg',\n icon: [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"]\n};\nvar faDigitalOcean = {\n prefix: 'fab',\n iconName: 'digital-ocean',\n icon: [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"]\n};\nvar faDiscord = {\n prefix: 'fab',\n iconName: 'discord',\n icon: [448, 512, [], \"f392\", \"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"]\n};\nvar faDiscourse = {\n prefix: 'fab',\n iconName: 'discourse',\n icon: [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"]\n};\nvar faDochub = {\n prefix: 'fab',\n iconName: 'dochub',\n icon: [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"]\n};\nvar faDocker = {\n prefix: 'fab',\n iconName: 'docker',\n icon: [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"]\n};\nvar faDraft2digital = {\n prefix: 'fab',\n iconName: 'draft2digital',\n icon: [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"]\n};\nvar faDribbble = {\n prefix: 'fab',\n iconName: 'dribbble',\n icon: [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"]\n};\nvar faDribbbleSquare = {\n prefix: 'fab',\n iconName: 'dribbble-square',\n icon: [448, 512, [], \"f397\", \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"]\n};\nvar faDropbox = {\n prefix: 'fab',\n iconName: 'dropbox',\n icon: [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"]\n};\nvar faDrupal = {\n prefix: 'fab',\n iconName: 'drupal',\n icon: [448, 512, [], \"f1a9\", \"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"]\n};\nvar faDyalog = {\n prefix: 'fab',\n iconName: 'dyalog',\n icon: [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"]\n};\nvar faEarlybirds = {\n prefix: 'fab',\n iconName: 'earlybirds',\n icon: [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"]\n};\nvar faEbay = {\n prefix: 'fab',\n iconName: 'ebay',\n icon: [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"]\n};\nvar faEdge = {\n prefix: 'fab',\n iconName: 'edge',\n icon: [512, 512, [], \"f282\", \"M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z\"]\n};\nvar faEdgeLegacy = {\n prefix: 'fab',\n iconName: 'edge-legacy',\n icon: [512, 512, [], \"e078\", \"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"]\n};\nvar faElementor = {\n prefix: 'fab',\n iconName: 'elementor',\n icon: [448, 512, [], \"f430\", \"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"]\n};\nvar faEllo = {\n prefix: 'fab',\n iconName: 'ello',\n icon: [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"]\n};\nvar faEmber = {\n prefix: 'fab',\n iconName: 'ember',\n icon: [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"]\n};\nvar faEmpire = {\n prefix: 'fab',\n iconName: 'empire',\n icon: [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"]\n};\nvar faEnvira = {\n prefix: 'fab',\n iconName: 'envira',\n icon: [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"]\n};\nvar faErlang = {\n prefix: 'fab',\n iconName: 'erlang',\n icon: [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"]\n};\nvar faEthereum = {\n prefix: 'fab',\n iconName: 'ethereum',\n icon: [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"]\n};\nvar faEtsy = {\n prefix: 'fab',\n iconName: 'etsy',\n icon: [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"]\n};\nvar faEvernote = {\n prefix: 'fab',\n iconName: 'evernote',\n icon: [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"]\n};\nvar faExpeditedssl = {\n prefix: 'fab',\n iconName: 'expeditedssl',\n icon: [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"]\n};\nvar faFacebook = {\n prefix: 'fab',\n iconName: 'facebook',\n icon: [512, 512, [], \"f09a\", \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"]\n};\nvar faFacebookF = {\n prefix: 'fab',\n iconName: 'facebook-f',\n icon: [320, 512, [], \"f39e\", \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"]\n};\nvar faFacebookMessenger = {\n prefix: 'fab',\n iconName: 'facebook-messenger',\n icon: [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"]\n};\nvar faFacebookSquare = {\n prefix: 'fab',\n iconName: 'facebook-square',\n icon: [448, 512, [], \"f082\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"]\n};\nvar faFantasyFlightGames = {\n prefix: 'fab',\n iconName: 'fantasy-flight-games',\n icon: [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"]\n};\nvar faFedex = {\n prefix: 'fab',\n iconName: 'fedex',\n icon: [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"]\n};\nvar faFedora = {\n prefix: 'fab',\n iconName: 'fedora',\n icon: [448, 512, [], \"f798\", \"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"]\n};\nvar faFigma = {\n prefix: 'fab',\n iconName: 'figma',\n icon: [384, 512, [], \"f799\", \"M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z\"]\n};\nvar faFirefox = {\n prefix: 'fab',\n iconName: 'firefox',\n icon: [512, 512, [], \"f269\", \"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"]\n};\nvar faFirefoxBrowser = {\n prefix: 'fab',\n iconName: 'firefox-browser',\n icon: [512, 512, [], \"e007\", \"M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z\"]\n};\nvar faFirstOrder = {\n prefix: 'fab',\n iconName: 'first-order',\n icon: [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"]\n};\nvar faFirstOrderAlt = {\n prefix: 'fab',\n iconName: 'first-order-alt',\n icon: [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"]\n};\nvar faFirstdraft = {\n prefix: 'fab',\n iconName: 'firstdraft',\n icon: [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"]\n};\nvar faFlickr = {\n prefix: 'fab',\n iconName: 'flickr',\n icon: [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"]\n};\nvar faFlipboard = {\n prefix: 'fab',\n iconName: 'flipboard',\n icon: [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"]\n};\nvar faFly = {\n prefix: 'fab',\n iconName: 'fly',\n icon: [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"]\n};\nvar faFontAwesome = {\n prefix: 'fab',\n iconName: 'font-awesome',\n icon: [448, 512, [], \"f2b4\", \"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\"]\n};\nvar faFontAwesomeAlt = {\n prefix: 'fab',\n iconName: 'font-awesome-alt',\n icon: [448, 512, [], \"f35c\", \"M339.3 171.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1zM397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm14.3 397.7c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6v-.1c7.8 0 14.3 6.6 14.3 14.3z\"]\n};\nvar faFontAwesomeFlag = {\n prefix: 'fab',\n iconName: 'font-awesome-flag',\n icon: [448, 512, [], \"f425\", \"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fab',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFonticons = {\n prefix: 'fab',\n iconName: 'fonticons',\n icon: [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"]\n};\nvar faFonticonsFi = {\n prefix: 'fab',\n iconName: 'fonticons-fi',\n icon: [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"]\n};\nvar faFortAwesome = {\n prefix: 'fab',\n iconName: 'fort-awesome',\n icon: [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"]\n};\nvar faFortAwesomeAlt = {\n prefix: 'fab',\n iconName: 'fort-awesome-alt',\n icon: [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"]\n};\nvar faForumbee = {\n prefix: 'fab',\n iconName: 'forumbee',\n icon: [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"]\n};\nvar faFoursquare = {\n prefix: 'fab',\n iconName: 'foursquare',\n icon: [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"]\n};\nvar faFreeCodeCamp = {\n prefix: 'fab',\n iconName: 'free-code-camp',\n icon: [576, 512, [], \"f2c5\", \"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"]\n};\nvar faFreebsd = {\n prefix: 'fab',\n iconName: 'freebsd',\n icon: [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"]\n};\nvar faFulcrum = {\n prefix: 'fab',\n iconName: 'fulcrum',\n icon: [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"]\n};\nvar faGalacticRepublic = {\n prefix: 'fab',\n iconName: 'galactic-republic',\n icon: [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"]\n};\nvar faGalacticSenate = {\n prefix: 'fab',\n iconName: 'galactic-senate',\n icon: [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"]\n};\nvar faGetPocket = {\n prefix: 'fab',\n iconName: 'get-pocket',\n icon: [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"]\n};\nvar faGg = {\n prefix: 'fab',\n iconName: 'gg',\n icon: [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"]\n};\nvar faGgCircle = {\n prefix: 'fab',\n iconName: 'gg-circle',\n icon: [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"]\n};\nvar faGit = {\n prefix: 'fab',\n iconName: 'git',\n icon: [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"]\n};\nvar faGitAlt = {\n prefix: 'fab',\n iconName: 'git-alt',\n icon: [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"]\n};\nvar faGitSquare = {\n prefix: 'fab',\n iconName: 'git-square',\n icon: [448, 512, [], \"f1d2\", \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"]\n};\nvar faGithub = {\n prefix: 'fab',\n iconName: 'github',\n icon: [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"]\n};\nvar faGithubAlt = {\n prefix: 'fab',\n iconName: 'github-alt',\n icon: [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"]\n};\nvar faGithubSquare = {\n prefix: 'fab',\n iconName: 'github-square',\n icon: [448, 512, [], \"f092\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"]\n};\nvar faGitkraken = {\n prefix: 'fab',\n iconName: 'gitkraken',\n icon: [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"]\n};\nvar faGitlab = {\n prefix: 'fab',\n iconName: 'gitlab',\n icon: [512, 512, [], \"f296\", \"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"]\n};\nvar faGitter = {\n prefix: 'fab',\n iconName: 'gitter',\n icon: [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"]\n};\nvar faGlide = {\n prefix: 'fab',\n iconName: 'glide',\n icon: [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"]\n};\nvar faGlideG = {\n prefix: 'fab',\n iconName: 'glide-g',\n icon: [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"]\n};\nvar faGofore = {\n prefix: 'fab',\n iconName: 'gofore',\n icon: [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"]\n};\nvar faGoodreads = {\n prefix: 'fab',\n iconName: 'goodreads',\n icon: [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"]\n};\nvar faGoodreadsG = {\n prefix: 'fab',\n iconName: 'goodreads-g',\n icon: [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"]\n};\nvar faGoogle = {\n prefix: 'fab',\n iconName: 'google',\n icon: [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"]\n};\nvar faGoogleDrive = {\n prefix: 'fab',\n iconName: 'google-drive',\n icon: [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"]\n};\nvar faGooglePay = {\n prefix: 'fab',\n iconName: 'google-pay',\n icon: [640, 512, [], \"e079\", \"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"]\n};\nvar faGooglePlay = {\n prefix: 'fab',\n iconName: 'google-play',\n icon: [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"]\n};\nvar faGooglePlus = {\n prefix: 'fab',\n iconName: 'google-plus',\n icon: [512, 512, [], \"f2b3\", \"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"]\n};\nvar faGooglePlusG = {\n prefix: 'fab',\n iconName: 'google-plus-g',\n icon: [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"]\n};\nvar faGooglePlusSquare = {\n prefix: 'fab',\n iconName: 'google-plus-square',\n icon: [448, 512, [], \"f0d4\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"]\n};\nvar faGoogleWallet = {\n prefix: 'fab',\n iconName: 'google-wallet',\n icon: [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"]\n};\nvar faGratipay = {\n prefix: 'fab',\n iconName: 'gratipay',\n icon: [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"]\n};\nvar faGrav = {\n prefix: 'fab',\n iconName: 'grav',\n icon: [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"]\n};\nvar faGripfire = {\n prefix: 'fab',\n iconName: 'gripfire',\n icon: [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"]\n};\nvar faGrunt = {\n prefix: 'fab',\n iconName: 'grunt',\n icon: [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"]\n};\nvar faGuilded = {\n prefix: 'fab',\n iconName: 'guilded',\n icon: [448, 512, [], \"e07e\", \"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"]\n};\nvar faGulp = {\n prefix: 'fab',\n iconName: 'gulp',\n icon: [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"]\n};\nvar faHackerNews = {\n prefix: 'fab',\n iconName: 'hacker-news',\n icon: [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"]\n};\nvar faHackerNewsSquare = {\n prefix: 'fab',\n iconName: 'hacker-news-square',\n icon: [448, 512, [], \"f3af\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"]\n};\nvar faHackerrank = {\n prefix: 'fab',\n iconName: 'hackerrank',\n icon: [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"]\n};\nvar faHips = {\n prefix: 'fab',\n iconName: 'hips',\n icon: [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"]\n};\nvar faHireAHelper = {\n prefix: 'fab',\n iconName: 'hire-a-helper',\n icon: [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"]\n};\nvar faHive = {\n prefix: 'fab',\n iconName: 'hive',\n icon: [512, 512, [], \"e07f\", \"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"]\n};\nvar faHooli = {\n prefix: 'fab',\n iconName: 'hooli',\n icon: [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"]\n};\nvar faHornbill = {\n prefix: 'fab',\n iconName: 'hornbill',\n icon: [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"]\n};\nvar faHotjar = {\n prefix: 'fab',\n iconName: 'hotjar',\n icon: [448, 512, [], \"f3b1\", \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"]\n};\nvar faHouzz = {\n prefix: 'fab',\n iconName: 'houzz',\n icon: [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"]\n};\nvar faHtml5 = {\n prefix: 'fab',\n iconName: 'html5',\n icon: [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"]\n};\nvar faHubspot = {\n prefix: 'fab',\n iconName: 'hubspot',\n icon: [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"]\n};\nvar faIdeal = {\n prefix: 'fab',\n iconName: 'ideal',\n icon: [576, 512, [], \"e013\", \"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"]\n};\nvar faImdb = {\n prefix: 'fab',\n iconName: 'imdb',\n icon: [448, 512, [], \"f2d8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"]\n};\nvar faInnosoft = {\n prefix: 'fab',\n iconName: 'innosoft',\n icon: [448, 512, [], \"e080\", \"M422.559,159.71a27.379,27.379,0,0,0-13.866-23.337,26.42,26.42,0,0,0-26.211.133L73.943,314.647V176.261a11.955,11.955,0,0,1,6.047-10.34L218.066,86.208a12.153,12.153,0,0,1,11.922.025l32.656,18.853L112.581,191.723v56L359.642,105.086,241.129,36.679c-10.992-6.129-22.3-6.255-33.8-.27l-164.6,95.026c-10.634,6.12-16.771,16.39-17.29,29.124l0,191.5c.17,10.135,5.08,18.672,13.474,23.428a27.037,27.037,0,0,0,26.736-.045L374.057,197.376V335.657a11.976,11.976,0,0,1-5.92,10.368L230.025,425.77a12.175,12.175,0,0,1-11.937.062l-32.723-18.9,150.051-86.627v-56L88.367,406.932l118.794,68.583a33.88,33.88,0,0,0,34.25-.327l164.527-94.995c10.746-6.631,16.649-17.118,16.624-29.528Z\"]\n};\nvar faInstagram = {\n prefix: 'fab',\n iconName: 'instagram',\n icon: [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"]\n};\nvar faInstagramSquare = {\n prefix: 'fab',\n iconName: 'instagram-square',\n icon: [448, 512, [], \"e055\", \"M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z\"]\n};\nvar faInstalod = {\n prefix: 'fab',\n iconName: 'instalod',\n icon: [512, 512, [], \"e081\", \"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"]\n};\nvar faIntercom = {\n prefix: 'fab',\n iconName: 'intercom',\n icon: [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"]\n};\nvar faInternetExplorer = {\n prefix: 'fab',\n iconName: 'internet-explorer',\n icon: [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"]\n};\nvar faInvision = {\n prefix: 'fab',\n iconName: 'invision',\n icon: [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"]\n};\nvar faIoxhost = {\n prefix: 'fab',\n iconName: 'ioxhost',\n icon: [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"]\n};\nvar faItchIo = {\n prefix: 'fab',\n iconName: 'itch-io',\n icon: [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"]\n};\nvar faItunes = {\n prefix: 'fab',\n iconName: 'itunes',\n icon: [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"]\n};\nvar faItunesNote = {\n prefix: 'fab',\n iconName: 'itunes-note',\n icon: [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"]\n};\nvar faJava = {\n prefix: 'fab',\n iconName: 'java',\n icon: [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"]\n};\nvar faJediOrder = {\n prefix: 'fab',\n iconName: 'jedi-order',\n icon: [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"]\n};\nvar faJenkins = {\n prefix: 'fab',\n iconName: 'jenkins',\n icon: [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"]\n};\nvar faJira = {\n prefix: 'fab',\n iconName: 'jira',\n icon: [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"]\n};\nvar faJoget = {\n prefix: 'fab',\n iconName: 'joget',\n icon: [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"]\n};\nvar faJoomla = {\n prefix: 'fab',\n iconName: 'joomla',\n icon: [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"]\n};\nvar faJs = {\n prefix: 'fab',\n iconName: 'js',\n icon: [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faJsSquare = {\n prefix: 'fab',\n iconName: 'js-square',\n icon: [448, 512, [], \"f3b9\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"]\n};\nvar faJsfiddle = {\n prefix: 'fab',\n iconName: 'jsfiddle',\n icon: [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"]\n};\nvar faKaggle = {\n prefix: 'fab',\n iconName: 'kaggle',\n icon: [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"]\n};\nvar faKeybase = {\n prefix: 'fab',\n iconName: 'keybase',\n icon: [448, 512, [], \"f4f5\", \"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"]\n};\nvar faKeycdn = {\n prefix: 'fab',\n iconName: 'keycdn',\n icon: [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"]\n};\nvar faKickstarter = {\n prefix: 'fab',\n iconName: 'kickstarter',\n icon: [448, 512, [], \"f3bb\", \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"]\n};\nvar faKickstarterK = {\n prefix: 'fab',\n iconName: 'kickstarter-k',\n icon: [384, 512, [], \"f3bc\", \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"]\n};\nvar faKorvue = {\n prefix: 'fab',\n iconName: 'korvue',\n icon: [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"]\n};\nvar faLaravel = {\n prefix: 'fab',\n iconName: 'laravel',\n icon: [512, 512, [], \"f3bd\", \"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"]\n};\nvar faLastfm = {\n prefix: 'fab',\n iconName: 'lastfm',\n icon: [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"]\n};\nvar faLastfmSquare = {\n prefix: 'fab',\n iconName: 'lastfm-square',\n icon: [448, 512, [], \"f203\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"]\n};\nvar faLeanpub = {\n prefix: 'fab',\n iconName: 'leanpub',\n icon: [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"]\n};\nvar faLess = {\n prefix: 'fab',\n iconName: 'less',\n icon: [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"]\n};\nvar faLine = {\n prefix: 'fab',\n iconName: 'line',\n icon: [448, 512, [], \"f3c0\", \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"]\n};\nvar faLinkedin = {\n prefix: 'fab',\n iconName: 'linkedin',\n icon: [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"]\n};\nvar faLinkedinIn = {\n prefix: 'fab',\n iconName: 'linkedin-in',\n icon: [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"]\n};\nvar faLinode = {\n prefix: 'fab',\n iconName: 'linode',\n icon: [448, 512, [], \"f2b8\", \"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"]\n};\nvar faLinux = {\n prefix: 'fab',\n iconName: 'linux',\n icon: [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"]\n};\nvar faLyft = {\n prefix: 'fab',\n iconName: 'lyft',\n icon: [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"]\n};\nvar faMagento = {\n prefix: 'fab',\n iconName: 'magento',\n icon: [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"]\n};\nvar faMailchimp = {\n prefix: 'fab',\n iconName: 'mailchimp',\n icon: [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"]\n};\nvar faMandalorian = {\n prefix: 'fab',\n iconName: 'mandalorian',\n icon: [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"]\n};\nvar faMarkdown = {\n prefix: 'fab',\n iconName: 'markdown',\n icon: [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"]\n};\nvar faMastodon = {\n prefix: 'fab',\n iconName: 'mastodon',\n icon: [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"]\n};\nvar faMaxcdn = {\n prefix: 'fab',\n iconName: 'maxcdn',\n icon: [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"]\n};\nvar faMdb = {\n prefix: 'fab',\n iconName: 'mdb',\n icon: [576, 512, [], \"f8ca\", \"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"]\n};\nvar faMedapps = {\n prefix: 'fab',\n iconName: 'medapps',\n icon: [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"]\n};\nvar faMedium = {\n prefix: 'fab',\n iconName: 'medium',\n icon: [448, 512, [], \"f23a\", \"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"]\n};\nvar faMediumM = {\n prefix: 'fab',\n iconName: 'medium-m',\n icon: [512, 512, [], \"f3c7\", \"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"]\n};\nvar faMedrt = {\n prefix: 'fab',\n iconName: 'medrt',\n icon: [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"]\n};\nvar faMeetup = {\n prefix: 'fab',\n iconName: 'meetup',\n icon: [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"]\n};\nvar faMegaport = {\n prefix: 'fab',\n iconName: 'megaport',\n icon: [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"]\n};\nvar faMendeley = {\n prefix: 'fab',\n iconName: 'mendeley',\n icon: [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"]\n};\nvar faMicroblog = {\n prefix: 'fab',\n iconName: 'microblog',\n icon: [448, 512, [], \"e01a\", \"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"]\n};\nvar faMicrosoft = {\n prefix: 'fab',\n iconName: 'microsoft',\n icon: [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"]\n};\nvar faMix = {\n prefix: 'fab',\n iconName: 'mix',\n icon: [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"]\n};\nvar faMixcloud = {\n prefix: 'fab',\n iconName: 'mixcloud',\n icon: [640, 512, [], \"f289\", \"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"]\n};\nvar faMixer = {\n prefix: 'fab',\n iconName: 'mixer',\n icon: [512, 512, [], \"e056\", \"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"]\n};\nvar faMizuni = {\n prefix: 'fab',\n iconName: 'mizuni',\n icon: [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"]\n};\nvar faModx = {\n prefix: 'fab',\n iconName: 'modx',\n icon: [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"]\n};\nvar faMonero = {\n prefix: 'fab',\n iconName: 'monero',\n icon: [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"]\n};\nvar faNapster = {\n prefix: 'fab',\n iconName: 'napster',\n icon: [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"]\n};\nvar faNeos = {\n prefix: 'fab',\n iconName: 'neos',\n icon: [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"]\n};\nvar faNimblr = {\n prefix: 'fab',\n iconName: 'nimblr',\n icon: [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"]\n};\nvar faNode = {\n prefix: 'fab',\n iconName: 'node',\n icon: [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"]\n};\nvar faNodeJs = {\n prefix: 'fab',\n iconName: 'node-js',\n icon: [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"]\n};\nvar faNpm = {\n prefix: 'fab',\n iconName: 'npm',\n icon: [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"]\n};\nvar faNs8 = {\n prefix: 'fab',\n iconName: 'ns8',\n icon: [640, 512, [], \"f3d5\", \"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"]\n};\nvar faNutritionix = {\n prefix: 'fab',\n iconName: 'nutritionix',\n icon: [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"]\n};\nvar faOctopusDeploy = {\n prefix: 'fab',\n iconName: 'octopus-deploy',\n icon: [512, 512, [], \"e082\", \"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"]\n};\nvar faOdnoklassniki = {\n prefix: 'fab',\n iconName: 'odnoklassniki',\n icon: [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"]\n};\nvar faOdnoklassnikiSquare = {\n prefix: 'fab',\n iconName: 'odnoklassniki-square',\n icon: [448, 512, [], \"f264\", \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"]\n};\nvar faOldRepublic = {\n prefix: 'fab',\n iconName: 'old-republic',\n icon: [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"]\n};\nvar faOpencart = {\n prefix: 'fab',\n iconName: 'opencart',\n icon: [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"]\n};\nvar faOpenid = {\n prefix: 'fab',\n iconName: 'openid',\n icon: [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"]\n};\nvar faOpera = {\n prefix: 'fab',\n iconName: 'opera',\n icon: [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"]\n};\nvar faOptinMonster = {\n prefix: 'fab',\n iconName: 'optin-monster',\n icon: [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"]\n};\nvar faOrcid = {\n prefix: 'fab',\n iconName: 'orcid',\n icon: [512, 512, [], \"f8d2\", \"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"]\n};\nvar faOsi = {\n prefix: 'fab',\n iconName: 'osi',\n icon: [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"]\n};\nvar faPage4 = {\n prefix: 'fab',\n iconName: 'page4',\n icon: [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"]\n};\nvar faPagelines = {\n prefix: 'fab',\n iconName: 'pagelines',\n icon: [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"]\n};\nvar faPalfed = {\n prefix: 'fab',\n iconName: 'palfed',\n icon: [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"]\n};\nvar faPatreon = {\n prefix: 'fab',\n iconName: 'patreon',\n icon: [512, 512, [], \"f3d9\", \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"]\n};\nvar faPaypal = {\n prefix: 'fab',\n iconName: 'paypal',\n icon: [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"]\n};\nvar faPennyArcade = {\n prefix: 'fab',\n iconName: 'penny-arcade',\n icon: [640, 512, [], \"f704\", \"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"]\n};\nvar faPerbyte = {\n prefix: 'fab',\n iconName: 'perbyte',\n icon: [448, 512, [], \"e083\", \"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"]\n};\nvar faPeriscope = {\n prefix: 'fab',\n iconName: 'periscope',\n icon: [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"]\n};\nvar faPhabricator = {\n prefix: 'fab',\n iconName: 'phabricator',\n icon: [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"]\n};\nvar faPhoenixFramework = {\n prefix: 'fab',\n iconName: 'phoenix-framework',\n icon: [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"]\n};\nvar faPhoenixSquadron = {\n prefix: 'fab',\n iconName: 'phoenix-squadron',\n icon: [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"]\n};\nvar faPhp = {\n prefix: 'fab',\n iconName: 'php',\n icon: [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"]\n};\nvar faPiedPiper = {\n prefix: 'fab',\n iconName: 'pied-piper',\n icon: [480, 512, [], \"f2ae\", \"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"]\n};\nvar faPiedPiperAlt = {\n prefix: 'fab',\n iconName: 'pied-piper-alt',\n icon: [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"]\n};\nvar faPiedPiperHat = {\n prefix: 'fab',\n iconName: 'pied-piper-hat',\n icon: [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"]\n};\nvar faPiedPiperPp = {\n prefix: 'fab',\n iconName: 'pied-piper-pp',\n icon: [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"]\n};\nvar faPiedPiperSquare = {\n prefix: 'fab',\n iconName: 'pied-piper-square',\n icon: [448, 512, [], \"e01e\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"]\n};\nvar faPinterest = {\n prefix: 'fab',\n iconName: 'pinterest',\n icon: [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"]\n};\nvar faPinterestP = {\n prefix: 'fab',\n iconName: 'pinterest-p',\n icon: [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"]\n};\nvar faPinterestSquare = {\n prefix: 'fab',\n iconName: 'pinterest-square',\n icon: [448, 512, [], \"f0d3\", \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"]\n};\nvar faPlaystation = {\n prefix: 'fab',\n iconName: 'playstation',\n icon: [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"]\n};\nvar faProductHunt = {\n prefix: 'fab',\n iconName: 'product-hunt',\n icon: [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"]\n};\nvar faPushed = {\n prefix: 'fab',\n iconName: 'pushed',\n icon: [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"]\n};\nvar faPython = {\n prefix: 'fab',\n iconName: 'python',\n icon: [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"]\n};\nvar faQq = {\n prefix: 'fab',\n iconName: 'qq',\n icon: [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"]\n};\nvar faQuinscape = {\n prefix: 'fab',\n iconName: 'quinscape',\n icon: [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"]\n};\nvar faQuora = {\n prefix: 'fab',\n iconName: 'quora',\n icon: [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"]\n};\nvar faRProject = {\n prefix: 'fab',\n iconName: 'r-project',\n icon: [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"]\n};\nvar faRaspberryPi = {\n prefix: 'fab',\n iconName: 'raspberry-pi',\n icon: [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"]\n};\nvar faRavelry = {\n prefix: 'fab',\n iconName: 'ravelry',\n icon: [512, 512, [], \"f2d9\", \"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"]\n};\nvar faReact = {\n prefix: 'fab',\n iconName: 'react',\n icon: [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"]\n};\nvar faReacteurope = {\n prefix: 'fab',\n iconName: 'reacteurope',\n icon: [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"]\n};\nvar faReadme = {\n prefix: 'fab',\n iconName: 'readme',\n icon: [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"]\n};\nvar faRebel = {\n prefix: 'fab',\n iconName: 'rebel',\n icon: [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"]\n};\nvar faRedRiver = {\n prefix: 'fab',\n iconName: 'red-river',\n icon: [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"]\n};\nvar faReddit = {\n prefix: 'fab',\n iconName: 'reddit',\n icon: [512, 512, [], \"f1a1\", \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"]\n};\nvar faRedditAlien = {\n prefix: 'fab',\n iconName: 'reddit-alien',\n icon: [512, 512, [], \"f281\", \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"]\n};\nvar faRedditSquare = {\n prefix: 'fab',\n iconName: 'reddit-square',\n icon: [448, 512, [], \"f1a2\", \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"]\n};\nvar faRedhat = {\n prefix: 'fab',\n iconName: 'redhat',\n icon: [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"]\n};\nvar faRenren = {\n prefix: 'fab',\n iconName: 'renren',\n icon: [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"]\n};\nvar faReplyd = {\n prefix: 'fab',\n iconName: 'replyd',\n icon: [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"]\n};\nvar faResearchgate = {\n prefix: 'fab',\n iconName: 'researchgate',\n icon: [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"]\n};\nvar faResolving = {\n prefix: 'fab',\n iconName: 'resolving',\n icon: [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"]\n};\nvar faRev = {\n prefix: 'fab',\n iconName: 'rev',\n icon: [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"]\n};\nvar faRocketchat = {\n prefix: 'fab',\n iconName: 'rocketchat',\n icon: [576, 512, [], \"f3e8\", \"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"]\n};\nvar faRockrms = {\n prefix: 'fab',\n iconName: 'rockrms',\n icon: [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"]\n};\nvar faRust = {\n prefix: 'fab',\n iconName: 'rust',\n icon: [512, 512, [], \"e07a\", \"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"]\n};\nvar faSafari = {\n prefix: 'fab',\n iconName: 'safari',\n icon: [512, 512, [], \"f267\", \"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"]\n};\nvar faSalesforce = {\n prefix: 'fab',\n iconName: 'salesforce',\n icon: [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"]\n};\nvar faSass = {\n prefix: 'fab',\n iconName: 'sass',\n icon: [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"]\n};\nvar faSchlix = {\n prefix: 'fab',\n iconName: 'schlix',\n icon: [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"]\n};\nvar faScribd = {\n prefix: 'fab',\n iconName: 'scribd',\n icon: [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"]\n};\nvar faSearchengin = {\n prefix: 'fab',\n iconName: 'searchengin',\n icon: [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"]\n};\nvar faSellcast = {\n prefix: 'fab',\n iconName: 'sellcast',\n icon: [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"]\n};\nvar faSellsy = {\n prefix: 'fab',\n iconName: 'sellsy',\n icon: [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"]\n};\nvar faServicestack = {\n prefix: 'fab',\n iconName: 'servicestack',\n icon: [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"]\n};\nvar faShirtsinbulk = {\n prefix: 'fab',\n iconName: 'shirtsinbulk',\n icon: [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"]\n};\nvar faShopify = {\n prefix: 'fab',\n iconName: 'shopify',\n icon: [448, 512, [], \"e057\", \"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"]\n};\nvar faShopware = {\n prefix: 'fab',\n iconName: 'shopware',\n icon: [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"]\n};\nvar faSimplybuilt = {\n prefix: 'fab',\n iconName: 'simplybuilt',\n icon: [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"]\n};\nvar faSistrix = {\n prefix: 'fab',\n iconName: 'sistrix',\n icon: [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"]\n};\nvar faSith = {\n prefix: 'fab',\n iconName: 'sith',\n icon: [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"]\n};\nvar faSketch = {\n prefix: 'fab',\n iconName: 'sketch',\n icon: [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"]\n};\nvar faSkyatlas = {\n prefix: 'fab',\n iconName: 'skyatlas',\n icon: [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"]\n};\nvar faSkype = {\n prefix: 'fab',\n iconName: 'skype',\n icon: [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"]\n};\nvar faSlack = {\n prefix: 'fab',\n iconName: 'slack',\n icon: [448, 512, [], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"]\n};\nvar faSlackHash = {\n prefix: 'fab',\n iconName: 'slack-hash',\n icon: [448, 512, [], \"f3ef\", \"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"]\n};\nvar faSlideshare = {\n prefix: 'fab',\n iconName: 'slideshare',\n icon: [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"]\n};\nvar faSnapchat = {\n prefix: 'fab',\n iconName: 'snapchat',\n icon: [496, 512, [], \"f2ab\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"]\n};\nvar faSnapchatGhost = {\n prefix: 'fab',\n iconName: 'snapchat-ghost',\n icon: [512, 512, [], \"f2ac\", \"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"]\n};\nvar faSnapchatSquare = {\n prefix: 'fab',\n iconName: 'snapchat-square',\n icon: [448, 512, [], \"f2ad\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"]\n};\nvar faSoundcloud = {\n prefix: 'fab',\n iconName: 'soundcloud',\n icon: [640, 512, [], \"f1be\", \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"]\n};\nvar faSourcetree = {\n prefix: 'fab',\n iconName: 'sourcetree',\n icon: [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"]\n};\nvar faSpeakap = {\n prefix: 'fab',\n iconName: 'speakap',\n icon: [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"]\n};\nvar faSpeakerDeck = {\n prefix: 'fab',\n iconName: 'speaker-deck',\n icon: [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"]\n};\nvar faSpotify = {\n prefix: 'fab',\n iconName: 'spotify',\n icon: [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"]\n};\nvar faSquarespace = {\n prefix: 'fab',\n iconName: 'squarespace',\n icon: [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"]\n};\nvar faStackExchange = {\n prefix: 'fab',\n iconName: 'stack-exchange',\n icon: [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"]\n};\nvar faStackOverflow = {\n prefix: 'fab',\n iconName: 'stack-overflow',\n icon: [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"]\n};\nvar faStackpath = {\n prefix: 'fab',\n iconName: 'stackpath',\n icon: [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"]\n};\nvar faStaylinked = {\n prefix: 'fab',\n iconName: 'staylinked',\n icon: [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"]\n};\nvar faSteam = {\n prefix: 'fab',\n iconName: 'steam',\n icon: [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"]\n};\nvar faSteamSquare = {\n prefix: 'fab',\n iconName: 'steam-square',\n icon: [448, 512, [], \"f1b7\", \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"]\n};\nvar faSteamSymbol = {\n prefix: 'fab',\n iconName: 'steam-symbol',\n icon: [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"]\n};\nvar faStickerMule = {\n prefix: 'fab',\n iconName: 'sticker-mule',\n icon: [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"]\n};\nvar faStrava = {\n prefix: 'fab',\n iconName: 'strava',\n icon: [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"]\n};\nvar faStripe = {\n prefix: 'fab',\n iconName: 'stripe',\n icon: [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"]\n};\nvar faStripeS = {\n prefix: 'fab',\n iconName: 'stripe-s',\n icon: [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"]\n};\nvar faStudiovinari = {\n prefix: 'fab',\n iconName: 'studiovinari',\n icon: [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"]\n};\nvar faStumbleupon = {\n prefix: 'fab',\n iconName: 'stumbleupon',\n icon: [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"]\n};\nvar faStumbleuponCircle = {\n prefix: 'fab',\n iconName: 'stumbleupon-circle',\n icon: [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"]\n};\nvar faSuperpowers = {\n prefix: 'fab',\n iconName: 'superpowers',\n icon: [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"]\n};\nvar faSupple = {\n prefix: 'fab',\n iconName: 'supple',\n icon: [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"]\n};\nvar faSuse = {\n prefix: 'fab',\n iconName: 'suse',\n icon: [640, 512, [], \"f7d6\", \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"]\n};\nvar faSwift = {\n prefix: 'fab',\n iconName: 'swift',\n icon: [448, 512, [], \"f8e1\", \"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"]\n};\nvar faSymfony = {\n prefix: 'fab',\n iconName: 'symfony',\n icon: [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"]\n};\nvar faTeamspeak = {\n prefix: 'fab',\n iconName: 'teamspeak',\n icon: [512, 512, [], \"f4f9\", \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"]\n};\nvar faTelegram = {\n prefix: 'fab',\n iconName: 'telegram',\n icon: [496, 512, [], \"f2c6\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"]\n};\nvar faTelegramPlane = {\n prefix: 'fab',\n iconName: 'telegram-plane',\n icon: [448, 512, [], \"f3fe\", \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"]\n};\nvar faTencentWeibo = {\n prefix: 'fab',\n iconName: 'tencent-weibo',\n icon: [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"]\n};\nvar faTheRedYeti = {\n prefix: 'fab',\n iconName: 'the-red-yeti',\n icon: [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"]\n};\nvar faThemeco = {\n prefix: 'fab',\n iconName: 'themeco',\n icon: [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"]\n};\nvar faThemeisle = {\n prefix: 'fab',\n iconName: 'themeisle',\n icon: [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"]\n};\nvar faThinkPeaks = {\n prefix: 'fab',\n iconName: 'think-peaks',\n icon: [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"]\n};\nvar faTiktok = {\n prefix: 'fab',\n iconName: 'tiktok',\n icon: [448, 512, [], \"e07b\", \"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"]\n};\nvar faTradeFederation = {\n prefix: 'fab',\n iconName: 'trade-federation',\n icon: [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"]\n};\nvar faTrello = {\n prefix: 'fab',\n iconName: 'trello',\n icon: [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"]\n};\nvar faTripadvisor = {\n prefix: 'fab',\n iconName: 'tripadvisor',\n icon: [576, 512, [], \"f262\", \"M528.91,178.82,576,127.58H471.66a326.11,326.11,0,0,0-367,0H0l47.09,51.24A143.911,143.911,0,0,0,241.86,390.73L288,440.93l46.11-50.17A143.94,143.94,0,0,0,575.88,285.18h-.03A143.56,143.56,0,0,0,528.91,178.82ZM144.06,382.57a97.39,97.39,0,1,1,97.39-97.39A97.39,97.39,0,0,1,144.06,382.57ZM288,282.37c0-64.09-46.62-119.08-108.09-142.59a281,281,0,0,1,216.17,0C334.61,163.3,288,218.29,288,282.37Zm143.88,100.2h-.01a97.405,97.405,0,1,1,.01,0ZM144.06,234.12h-.01a51.06,51.06,0,1,0,51.06,51.06v-.11A51,51,0,0,0,144.06,234.12Zm287.82,0a51.06,51.06,0,1,0,51.06,51.06A51.06,51.06,0,0,0,431.88,234.12Z\"]\n};\nvar faTumblr = {\n prefix: 'fab',\n iconName: 'tumblr',\n icon: [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"]\n};\nvar faTumblrSquare = {\n prefix: 'fab',\n iconName: 'tumblr-square',\n icon: [448, 512, [], \"f174\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"]\n};\nvar faTwitch = {\n prefix: 'fab',\n iconName: 'twitch',\n icon: [512, 512, [], \"f1e8\", \"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"]\n};\nvar faTwitter = {\n prefix: 'fab',\n iconName: 'twitter',\n icon: [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"]\n};\nvar faTwitterSquare = {\n prefix: 'fab',\n iconName: 'twitter-square',\n icon: [448, 512, [], \"f081\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"]\n};\nvar faTypo3 = {\n prefix: 'fab',\n iconName: 'typo3',\n icon: [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"]\n};\nvar faUber = {\n prefix: 'fab',\n iconName: 'uber',\n icon: [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"]\n};\nvar faUbuntu = {\n prefix: 'fab',\n iconName: 'ubuntu',\n icon: [496, 512, [], \"f7df\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"]\n};\nvar faUikit = {\n prefix: 'fab',\n iconName: 'uikit',\n icon: [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"]\n};\nvar faUmbraco = {\n prefix: 'fab',\n iconName: 'umbraco',\n icon: [510, 512, [], \"f8e8\", \"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"]\n};\nvar faUncharted = {\n prefix: 'fab',\n iconName: 'uncharted',\n icon: [448, 512, [], \"e084\", \"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"]\n};\nvar faUniregistry = {\n prefix: 'fab',\n iconName: 'uniregistry',\n icon: [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"]\n};\nvar faUnity = {\n prefix: 'fab',\n iconName: 'unity',\n icon: [576, 512, [], \"e049\", \"M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z\"]\n};\nvar faUnsplash = {\n prefix: 'fab',\n iconName: 'unsplash',\n icon: [448, 512, [], \"e07c\", \"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"]\n};\nvar faUntappd = {\n prefix: 'fab',\n iconName: 'untappd',\n icon: [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"]\n};\nvar faUps = {\n prefix: 'fab',\n iconName: 'ups',\n icon: [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"]\n};\nvar faUsb = {\n prefix: 'fab',\n iconName: 'usb',\n icon: [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"]\n};\nvar faUsps = {\n prefix: 'fab',\n iconName: 'usps',\n icon: [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"]\n};\nvar faUssunnah = {\n prefix: 'fab',\n iconName: 'ussunnah',\n icon: [512, 512, [], \"f407\", \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"]\n};\nvar faVaadin = {\n prefix: 'fab',\n iconName: 'vaadin',\n icon: [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"]\n};\nvar faViacoin = {\n prefix: 'fab',\n iconName: 'viacoin',\n icon: [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"]\n};\nvar faViadeo = {\n prefix: 'fab',\n iconName: 'viadeo',\n icon: [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"]\n};\nvar faViadeoSquare = {\n prefix: 'fab',\n iconName: 'viadeo-square',\n icon: [448, 512, [], \"f2aa\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"]\n};\nvar faViber = {\n prefix: 'fab',\n iconName: 'viber',\n icon: [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"]\n};\nvar faVimeo = {\n prefix: 'fab',\n iconName: 'vimeo',\n icon: [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"]\n};\nvar faVimeoSquare = {\n prefix: 'fab',\n iconName: 'vimeo-square',\n icon: [448, 512, [], \"f194\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"]\n};\nvar faVimeoV = {\n prefix: 'fab',\n iconName: 'vimeo-v',\n icon: [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"]\n};\nvar faVine = {\n prefix: 'fab',\n iconName: 'vine',\n icon: [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"]\n};\nvar faVk = {\n prefix: 'fab',\n iconName: 'vk',\n icon: [576, 512, [], \"f189\", \"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"]\n};\nvar faVnv = {\n prefix: 'fab',\n iconName: 'vnv',\n icon: [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"]\n};\nvar faVuejs = {\n prefix: 'fab',\n iconName: 'vuejs',\n icon: [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"]\n};\nvar faWatchmanMonitoring = {\n prefix: 'fab',\n iconName: 'watchman-monitoring',\n icon: [512, 512, [], \"e087\", \"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"]\n};\nvar faWaze = {\n prefix: 'fab',\n iconName: 'waze',\n icon: [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"]\n};\nvar faWeebly = {\n prefix: 'fab',\n iconName: 'weebly',\n icon: [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"]\n};\nvar faWeibo = {\n prefix: 'fab',\n iconName: 'weibo',\n icon: [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"]\n};\nvar faWeixin = {\n prefix: 'fab',\n iconName: 'weixin',\n icon: [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"]\n};\nvar faWhatsapp = {\n prefix: 'fab',\n iconName: 'whatsapp',\n icon: [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"]\n};\nvar faWhatsappSquare = {\n prefix: 'fab',\n iconName: 'whatsapp-square',\n icon: [448, 512, [], \"f40c\", \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"]\n};\nvar faWhmcs = {\n prefix: 'fab',\n iconName: 'whmcs',\n icon: [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"]\n};\nvar faWikipediaW = {\n prefix: 'fab',\n iconName: 'wikipedia-w',\n icon: [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"]\n};\nvar faWindows = {\n prefix: 'fab',\n iconName: 'windows',\n icon: [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"]\n};\nvar faWix = {\n prefix: 'fab',\n iconName: 'wix',\n icon: [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"]\n};\nvar faWizardsOfTheCoast = {\n prefix: 'fab',\n iconName: 'wizards-of-the-coast',\n icon: [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"]\n};\nvar faWodu = {\n prefix: 'fab',\n iconName: 'wodu',\n icon: [640, 512, [], \"e088\", \"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"]\n};\nvar faWolfPackBattalion = {\n prefix: 'fab',\n iconName: 'wolf-pack-battalion',\n icon: [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"]\n};\nvar faWordpress = {\n prefix: 'fab',\n iconName: 'wordpress',\n icon: [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"]\n};\nvar faWordpressSimple = {\n prefix: 'fab',\n iconName: 'wordpress-simple',\n icon: [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"]\n};\nvar faWpbeginner = {\n prefix: 'fab',\n iconName: 'wpbeginner',\n icon: [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"]\n};\nvar faWpexplorer = {\n prefix: 'fab',\n iconName: 'wpexplorer',\n icon: [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"]\n};\nvar faWpforms = {\n prefix: 'fab',\n iconName: 'wpforms',\n icon: [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"]\n};\nvar faWpressr = {\n prefix: 'fab',\n iconName: 'wpressr',\n icon: [496, 512, [], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"]\n};\nvar faXbox = {\n prefix: 'fab',\n iconName: 'xbox',\n icon: [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"]\n};\nvar faXing = {\n prefix: 'fab',\n iconName: 'xing',\n icon: [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"]\n};\nvar faXingSquare = {\n prefix: 'fab',\n iconName: 'xing-square',\n icon: [448, 512, [], \"f169\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"]\n};\nvar faYCombinator = {\n prefix: 'fab',\n iconName: 'y-combinator',\n icon: [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"]\n};\nvar faYahoo = {\n prefix: 'fab',\n iconName: 'yahoo',\n icon: [512, 512, [], \"f19e\", \"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"]\n};\nvar faYammer = {\n prefix: 'fab',\n iconName: 'yammer',\n icon: [512, 512, [], \"f840\", \"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"]\n};\nvar faYandex = {\n prefix: 'fab',\n iconName: 'yandex',\n icon: [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"]\n};\nvar faYandexInternational = {\n prefix: 'fab',\n iconName: 'yandex-international',\n icon: [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"]\n};\nvar faYarn = {\n prefix: 'fab',\n iconName: 'yarn',\n icon: [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"]\n};\nvar faYelp = {\n prefix: 'fab',\n iconName: 'yelp',\n icon: [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"]\n};\nvar faYoast = {\n prefix: 'fab',\n iconName: 'yoast',\n icon: [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"]\n};\nvar faYoutube = {\n prefix: 'fab',\n iconName: 'youtube',\n icon: [576, 512, [], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"]\n};\nvar faYoutubeSquare = {\n prefix: 'fab',\n iconName: 'youtube-square',\n icon: [448, 512, [], \"f431\", \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"]\n};\nvar faZhihu = {\n prefix: 'fab',\n iconName: 'zhihu',\n icon: [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"]\n};\nvar _iconsCache = {\n fa500px: fa500px,\n faAccessibleIcon: faAccessibleIcon,\n faAccusoft: faAccusoft,\n faAcquisitionsIncorporated: faAcquisitionsIncorporated,\n faAdn: faAdn,\n faAdversal: faAdversal,\n faAffiliatetheme: faAffiliatetheme,\n faAirbnb: faAirbnb,\n faAlgolia: faAlgolia,\n faAlipay: faAlipay,\n faAmazon: faAmazon,\n faAmazonPay: faAmazonPay,\n faAmilia: faAmilia,\n faAndroid: faAndroid,\n faAngellist: faAngellist,\n faAngrycreative: faAngrycreative,\n faAngular: faAngular,\n faAppStore: faAppStore,\n faAppStoreIos: faAppStoreIos,\n faApper: faApper,\n faApple: faApple,\n faApplePay: faApplePay,\n faArtstation: faArtstation,\n faAsymmetrik: faAsymmetrik,\n faAtlassian: faAtlassian,\n faAudible: faAudible,\n faAutoprefixer: faAutoprefixer,\n faAvianex: faAvianex,\n faAviato: faAviato,\n faAws: faAws,\n faBandcamp: faBandcamp,\n faBattleNet: faBattleNet,\n faBehance: faBehance,\n faBehanceSquare: faBehanceSquare,\n faBimobject: faBimobject,\n faBitbucket: faBitbucket,\n faBitcoin: faBitcoin,\n faBity: faBity,\n faBlackTie: faBlackTie,\n faBlackberry: faBlackberry,\n faBlogger: faBlogger,\n faBloggerB: faBloggerB,\n faBluetooth: faBluetooth,\n faBluetoothB: faBluetoothB,\n faBootstrap: faBootstrap,\n faBtc: faBtc,\n faBuffer: faBuffer,\n faBuromobelexperte: faBuromobelexperte,\n faBuyNLarge: faBuyNLarge,\n faBuysellads: faBuysellads,\n faCanadianMapleLeaf: faCanadianMapleLeaf,\n faCcAmazonPay: faCcAmazonPay,\n faCcAmex: faCcAmex,\n faCcApplePay: faCcApplePay,\n faCcDinersClub: faCcDinersClub,\n faCcDiscover: faCcDiscover,\n faCcJcb: faCcJcb,\n faCcMastercard: faCcMastercard,\n faCcPaypal: faCcPaypal,\n faCcStripe: faCcStripe,\n faCcVisa: faCcVisa,\n faCentercode: faCentercode,\n faCentos: faCentos,\n faChrome: faChrome,\n faChromecast: faChromecast,\n faCloudflare: faCloudflare,\n faCloudscale: faCloudscale,\n faCloudsmith: faCloudsmith,\n faCloudversify: faCloudversify,\n faCodepen: faCodepen,\n faCodiepie: faCodiepie,\n faConfluence: faConfluence,\n faConnectdevelop: faConnectdevelop,\n faContao: faContao,\n faCottonBureau: faCottonBureau,\n faCpanel: faCpanel,\n faCreativeCommons: faCreativeCommons,\n faCreativeCommonsBy: faCreativeCommonsBy,\n faCreativeCommonsNc: faCreativeCommonsNc,\n faCreativeCommonsNcEu: faCreativeCommonsNcEu,\n faCreativeCommonsNcJp: faCreativeCommonsNcJp,\n faCreativeCommonsNd: faCreativeCommonsNd,\n faCreativeCommonsPd: faCreativeCommonsPd,\n faCreativeCommonsPdAlt: faCreativeCommonsPdAlt,\n faCreativeCommonsRemix: faCreativeCommonsRemix,\n faCreativeCommonsSa: faCreativeCommonsSa,\n faCreativeCommonsSampling: faCreativeCommonsSampling,\n faCreativeCommonsSamplingPlus: faCreativeCommonsSamplingPlus,\n faCreativeCommonsShare: faCreativeCommonsShare,\n faCreativeCommonsZero: faCreativeCommonsZero,\n faCriticalRole: faCriticalRole,\n faCss3: faCss3,\n faCss3Alt: faCss3Alt,\n faCuttlefish: faCuttlefish,\n faDAndD: faDAndD,\n faDAndDBeyond: faDAndDBeyond,\n faDailymotion: faDailymotion,\n faDashcube: faDashcube,\n faDeezer: faDeezer,\n faDelicious: faDelicious,\n faDeploydog: faDeploydog,\n faDeskpro: faDeskpro,\n faDev: faDev,\n faDeviantart: faDeviantart,\n faDhl: faDhl,\n faDiaspora: faDiaspora,\n faDigg: faDigg,\n faDigitalOcean: faDigitalOcean,\n faDiscord: faDiscord,\n faDiscourse: faDiscourse,\n faDochub: faDochub,\n faDocker: faDocker,\n faDraft2digital: faDraft2digital,\n faDribbble: faDribbble,\n faDribbbleSquare: faDribbbleSquare,\n faDropbox: faDropbox,\n faDrupal: faDrupal,\n faDyalog: faDyalog,\n faEarlybirds: faEarlybirds,\n faEbay: faEbay,\n faEdge: faEdge,\n faEdgeLegacy: faEdgeLegacy,\n faElementor: faElementor,\n faEllo: faEllo,\n faEmber: faEmber,\n faEmpire: faEmpire,\n faEnvira: faEnvira,\n faErlang: faErlang,\n faEthereum: faEthereum,\n faEtsy: faEtsy,\n faEvernote: faEvernote,\n faExpeditedssl: faExpeditedssl,\n faFacebook: faFacebook,\n faFacebookF: faFacebookF,\n faFacebookMessenger: faFacebookMessenger,\n faFacebookSquare: faFacebookSquare,\n faFantasyFlightGames: faFantasyFlightGames,\n faFedex: faFedex,\n faFedora: faFedora,\n faFigma: faFigma,\n faFirefox: faFirefox,\n faFirefoxBrowser: faFirefoxBrowser,\n faFirstOrder: faFirstOrder,\n faFirstOrderAlt: faFirstOrderAlt,\n faFirstdraft: faFirstdraft,\n faFlickr: faFlickr,\n faFlipboard: faFlipboard,\n faFly: faFly,\n faFontAwesome: faFontAwesome,\n faFontAwesomeAlt: faFontAwesomeAlt,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFonticons: faFonticons,\n faFonticonsFi: faFonticonsFi,\n faFortAwesome: faFortAwesome,\n faFortAwesomeAlt: faFortAwesomeAlt,\n faForumbee: faForumbee,\n faFoursquare: faFoursquare,\n faFreeCodeCamp: faFreeCodeCamp,\n faFreebsd: faFreebsd,\n faFulcrum: faFulcrum,\n faGalacticRepublic: faGalacticRepublic,\n faGalacticSenate: faGalacticSenate,\n faGetPocket: faGetPocket,\n faGg: faGg,\n faGgCircle: faGgCircle,\n faGit: faGit,\n faGitAlt: faGitAlt,\n faGitSquare: faGitSquare,\n faGithub: faGithub,\n faGithubAlt: faGithubAlt,\n faGithubSquare: faGithubSquare,\n faGitkraken: faGitkraken,\n faGitlab: faGitlab,\n faGitter: faGitter,\n faGlide: faGlide,\n faGlideG: faGlideG,\n faGofore: faGofore,\n faGoodreads: faGoodreads,\n faGoodreadsG: faGoodreadsG,\n faGoogle: faGoogle,\n faGoogleDrive: faGoogleDrive,\n faGooglePay: faGooglePay,\n faGooglePlay: faGooglePlay,\n faGooglePlus: faGooglePlus,\n faGooglePlusG: faGooglePlusG,\n faGooglePlusSquare: faGooglePlusSquare,\n faGoogleWallet: faGoogleWallet,\n faGratipay: faGratipay,\n faGrav: faGrav,\n faGripfire: faGripfire,\n faGrunt: faGrunt,\n faGuilded: faGuilded,\n faGulp: faGulp,\n faHackerNews: faHackerNews,\n faHackerNewsSquare: faHackerNewsSquare,\n faHackerrank: faHackerrank,\n faHips: faHips,\n faHireAHelper: faHireAHelper,\n faHive: faHive,\n faHooli: faHooli,\n faHornbill: faHornbill,\n faHotjar: faHotjar,\n faHouzz: faHouzz,\n faHtml5: faHtml5,\n faHubspot: faHubspot,\n faIdeal: faIdeal,\n faImdb: faImdb,\n faInnosoft: faInnosoft,\n faInstagram: faInstagram,\n faInstagramSquare: faInstagramSquare,\n faInstalod: faInstalod,\n faIntercom: faIntercom,\n faInternetExplorer: faInternetExplorer,\n faInvision: faInvision,\n faIoxhost: faIoxhost,\n faItchIo: faItchIo,\n faItunes: faItunes,\n faItunesNote: faItunesNote,\n faJava: faJava,\n faJediOrder: faJediOrder,\n faJenkins: faJenkins,\n faJira: faJira,\n faJoget: faJoget,\n faJoomla: faJoomla,\n faJs: faJs,\n faJsSquare: faJsSquare,\n faJsfiddle: faJsfiddle,\n faKaggle: faKaggle,\n faKeybase: faKeybase,\n faKeycdn: faKeycdn,\n faKickstarter: faKickstarter,\n faKickstarterK: faKickstarterK,\n faKorvue: faKorvue,\n faLaravel: faLaravel,\n faLastfm: faLastfm,\n faLastfmSquare: faLastfmSquare,\n faLeanpub: faLeanpub,\n faLess: faLess,\n faLine: faLine,\n faLinkedin: faLinkedin,\n faLinkedinIn: faLinkedinIn,\n faLinode: faLinode,\n faLinux: faLinux,\n faLyft: faLyft,\n faMagento: faMagento,\n faMailchimp: faMailchimp,\n faMandalorian: faMandalorian,\n faMarkdown: faMarkdown,\n faMastodon: faMastodon,\n faMaxcdn: faMaxcdn,\n faMdb: faMdb,\n faMedapps: faMedapps,\n faMedium: faMedium,\n faMediumM: faMediumM,\n faMedrt: faMedrt,\n faMeetup: faMeetup,\n faMegaport: faMegaport,\n faMendeley: faMendeley,\n faMicroblog: faMicroblog,\n faMicrosoft: faMicrosoft,\n faMix: faMix,\n faMixcloud: faMixcloud,\n faMixer: faMixer,\n faMizuni: faMizuni,\n faModx: faModx,\n faMonero: faMonero,\n faNapster: faNapster,\n faNeos: faNeos,\n faNimblr: faNimblr,\n faNode: faNode,\n faNodeJs: faNodeJs,\n faNpm: faNpm,\n faNs8: faNs8,\n faNutritionix: faNutritionix,\n faOctopusDeploy: faOctopusDeploy,\n faOdnoklassniki: faOdnoklassniki,\n faOdnoklassnikiSquare: faOdnoklassnikiSquare,\n faOldRepublic: faOldRepublic,\n faOpencart: faOpencart,\n faOpenid: faOpenid,\n faOpera: faOpera,\n faOptinMonster: faOptinMonster,\n faOrcid: faOrcid,\n faOsi: faOsi,\n faPage4: faPage4,\n faPagelines: faPagelines,\n faPalfed: faPalfed,\n faPatreon: faPatreon,\n faPaypal: faPaypal,\n faPennyArcade: faPennyArcade,\n faPerbyte: faPerbyte,\n faPeriscope: faPeriscope,\n faPhabricator: faPhabricator,\n faPhoenixFramework: faPhoenixFramework,\n faPhoenixSquadron: faPhoenixSquadron,\n faPhp: faPhp,\n faPiedPiper: faPiedPiper,\n faPiedPiperAlt: faPiedPiperAlt,\n faPiedPiperHat: faPiedPiperHat,\n faPiedPiperPp: faPiedPiperPp,\n faPiedPiperSquare: faPiedPiperSquare,\n faPinterest: faPinterest,\n faPinterestP: faPinterestP,\n faPinterestSquare: faPinterestSquare,\n faPlaystation: faPlaystation,\n faProductHunt: faProductHunt,\n faPushed: faPushed,\n faPython: faPython,\n faQq: faQq,\n faQuinscape: faQuinscape,\n faQuora: faQuora,\n faRProject: faRProject,\n faRaspberryPi: faRaspberryPi,\n faRavelry: faRavelry,\n faReact: faReact,\n faReacteurope: faReacteurope,\n faReadme: faReadme,\n faRebel: faRebel,\n faRedRiver: faRedRiver,\n faReddit: faReddit,\n faRedditAlien: faRedditAlien,\n faRedditSquare: faRedditSquare,\n faRedhat: faRedhat,\n faRenren: faRenren,\n faReplyd: faReplyd,\n faResearchgate: faResearchgate,\n faResolving: faResolving,\n faRev: faRev,\n faRocketchat: faRocketchat,\n faRockrms: faRockrms,\n faRust: faRust,\n faSafari: faSafari,\n faSalesforce: faSalesforce,\n faSass: faSass,\n faSchlix: faSchlix,\n faScribd: faScribd,\n faSearchengin: faSearchengin,\n faSellcast: faSellcast,\n faSellsy: faSellsy,\n faServicestack: faServicestack,\n faShirtsinbulk: faShirtsinbulk,\n faShopify: faShopify,\n faShopware: faShopware,\n faSimplybuilt: faSimplybuilt,\n faSistrix: faSistrix,\n faSith: faSith,\n faSketch: faSketch,\n faSkyatlas: faSkyatlas,\n faSkype: faSkype,\n faSlack: faSlack,\n faSlackHash: faSlackHash,\n faSlideshare: faSlideshare,\n faSnapchat: faSnapchat,\n faSnapchatGhost: faSnapchatGhost,\n faSnapchatSquare: faSnapchatSquare,\n faSoundcloud: faSoundcloud,\n faSourcetree: faSourcetree,\n faSpeakap: faSpeakap,\n faSpeakerDeck: faSpeakerDeck,\n faSpotify: faSpotify,\n faSquarespace: faSquarespace,\n faStackExchange: faStackExchange,\n faStackOverflow: faStackOverflow,\n faStackpath: faStackpath,\n faStaylinked: faStaylinked,\n faSteam: faSteam,\n faSteamSquare: faSteamSquare,\n faSteamSymbol: faSteamSymbol,\n faStickerMule: faStickerMule,\n faStrava: faStrava,\n faStripe: faStripe,\n faStripeS: faStripeS,\n faStudiovinari: faStudiovinari,\n faStumbleupon: faStumbleupon,\n faStumbleuponCircle: faStumbleuponCircle,\n faSuperpowers: faSuperpowers,\n faSupple: faSupple,\n faSuse: faSuse,\n faSwift: faSwift,\n faSymfony: faSymfony,\n faTeamspeak: faTeamspeak,\n faTelegram: faTelegram,\n faTelegramPlane: faTelegramPlane,\n faTencentWeibo: faTencentWeibo,\n faTheRedYeti: faTheRedYeti,\n faThemeco: faThemeco,\n faThemeisle: faThemeisle,\n faThinkPeaks: faThinkPeaks,\n faTiktok: faTiktok,\n faTradeFederation: faTradeFederation,\n faTrello: faTrello,\n faTripadvisor: faTripadvisor,\n faTumblr: faTumblr,\n faTumblrSquare: faTumblrSquare,\n faTwitch: faTwitch,\n faTwitter: faTwitter,\n faTwitterSquare: faTwitterSquare,\n faTypo3: faTypo3,\n faUber: faUber,\n faUbuntu: faUbuntu,\n faUikit: faUikit,\n faUmbraco: faUmbraco,\n faUncharted: faUncharted,\n faUniregistry: faUniregistry,\n faUnity: faUnity,\n faUnsplash: faUnsplash,\n faUntappd: faUntappd,\n faUps: faUps,\n faUsb: faUsb,\n faUsps: faUsps,\n faUssunnah: faUssunnah,\n faVaadin: faVaadin,\n faViacoin: faViacoin,\n faViadeo: faViadeo,\n faViadeoSquare: faViadeoSquare,\n faViber: faViber,\n faVimeo: faVimeo,\n faVimeoSquare: faVimeoSquare,\n faVimeoV: faVimeoV,\n faVine: faVine,\n faVk: faVk,\n faVnv: faVnv,\n faVuejs: faVuejs,\n faWatchmanMonitoring: faWatchmanMonitoring,\n faWaze: faWaze,\n faWeebly: faWeebly,\n faWeibo: faWeibo,\n faWeixin: faWeixin,\n faWhatsapp: faWhatsapp,\n faWhatsappSquare: faWhatsappSquare,\n faWhmcs: faWhmcs,\n faWikipediaW: faWikipediaW,\n faWindows: faWindows,\n faWix: faWix,\n faWizardsOfTheCoast: faWizardsOfTheCoast,\n faWodu: faWodu,\n faWolfPackBattalion: faWolfPackBattalion,\n faWordpress: faWordpress,\n faWordpressSimple: faWordpressSimple,\n faWpbeginner: faWpbeginner,\n faWpexplorer: faWpexplorer,\n faWpforms: faWpforms,\n faWpressr: faWpressr,\n faXbox: faXbox,\n faXing: faXing,\n faXingSquare: faXingSquare,\n faYCombinator: faYCombinator,\n faYahoo: faYahoo,\n faYammer: faYammer,\n faYandex: faYandex,\n faYandexInternational: faYandexInternational,\n faYarn: faYarn,\n faYelp: faYelp,\n faYoast: faYoast,\n faYoutube: faYoutube,\n faYoutubeSquare: faYoutubeSquare,\n faZhihu: faZhihu\n};\n\nexport { _iconsCache as fab, prefix, fa500px, faAccessibleIcon, faAccusoft, faAcquisitionsIncorporated, faAdn, faAdversal, faAffiliatetheme, faAirbnb, faAlgolia, faAlipay, faAmazon, faAmazonPay, faAmilia, faAndroid, faAngellist, faAngrycreative, faAngular, faAppStore, faAppStoreIos, faApper, faApple, faApplePay, faArtstation, faAsymmetrik, faAtlassian, faAudible, faAutoprefixer, faAvianex, faAviato, faAws, faBandcamp, faBattleNet, faBehance, faBehanceSquare, faBimobject, faBitbucket, faBitcoin, faBity, faBlackTie, faBlackberry, faBlogger, faBloggerB, faBluetooth, faBluetoothB, faBootstrap, faBtc, faBuffer, faBuromobelexperte, faBuyNLarge, faBuysellads, faCanadianMapleLeaf, faCcAmazonPay, faCcAmex, faCcApplePay, faCcDinersClub, faCcDiscover, faCcJcb, faCcMastercard, faCcPaypal, faCcStripe, faCcVisa, faCentercode, faCentos, faChrome, faChromecast, faCloudflare, faCloudscale, faCloudsmith, faCloudversify, faCodepen, faCodiepie, faConfluence, faConnectdevelop, faContao, faCottonBureau, faCpanel, faCreativeCommons, faCreativeCommonsBy, faCreativeCommonsNc, faCreativeCommonsNcEu, faCreativeCommonsNcJp, faCreativeCommonsNd, faCreativeCommonsPd, faCreativeCommonsPdAlt, faCreativeCommonsRemix, faCreativeCommonsSa, faCreativeCommonsSampling, faCreativeCommonsSamplingPlus, faCreativeCommonsShare, faCreativeCommonsZero, faCriticalRole, faCss3, faCss3Alt, faCuttlefish, faDAndD, faDAndDBeyond, faDailymotion, faDashcube, faDeezer, faDelicious, faDeploydog, faDeskpro, faDev, faDeviantart, faDhl, faDiaspora, faDigg, faDigitalOcean, faDiscord, faDiscourse, faDochub, faDocker, faDraft2digital, faDribbble, faDribbbleSquare, faDropbox, faDrupal, faDyalog, faEarlybirds, faEbay, faEdge, faEdgeLegacy, faElementor, faEllo, faEmber, faEmpire, faEnvira, faErlang, faEthereum, faEtsy, faEvernote, faExpeditedssl, faFacebook, faFacebookF, faFacebookMessenger, faFacebookSquare, faFantasyFlightGames, faFedex, faFedora, faFigma, faFirefox, faFirefoxBrowser, faFirstOrder, faFirstOrderAlt, faFirstdraft, faFlickr, faFlipboard, faFly, faFontAwesome, faFontAwesomeAlt, faFontAwesomeFlag, faFontAwesomeLogoFull, faFonticons, faFonticonsFi, faFortAwesome, faFortAwesomeAlt, faForumbee, faFoursquare, faFreeCodeCamp, faFreebsd, faFulcrum, faGalacticRepublic, faGalacticSenate, faGetPocket, faGg, faGgCircle, faGit, faGitAlt, faGitSquare, faGithub, faGithubAlt, faGithubSquare, faGitkraken, faGitlab, faGitter, faGlide, faGlideG, faGofore, faGoodreads, faGoodreadsG, faGoogle, faGoogleDrive, faGooglePay, faGooglePlay, faGooglePlus, faGooglePlusG, faGooglePlusSquare, faGoogleWallet, faGratipay, faGrav, faGripfire, faGrunt, faGuilded, faGulp, faHackerNews, faHackerNewsSquare, faHackerrank, faHips, faHireAHelper, faHive, faHooli, faHornbill, faHotjar, faHouzz, faHtml5, faHubspot, faIdeal, faImdb, faInnosoft, faInstagram, faInstagramSquare, faInstalod, faIntercom, faInternetExplorer, faInvision, faIoxhost, faItchIo, faItunes, faItunesNote, faJava, faJediOrder, faJenkins, faJira, faJoget, faJoomla, faJs, faJsSquare, faJsfiddle, faKaggle, faKeybase, faKeycdn, faKickstarter, faKickstarterK, faKorvue, faLaravel, faLastfm, faLastfmSquare, faLeanpub, faLess, faLine, faLinkedin, faLinkedinIn, faLinode, faLinux, faLyft, faMagento, faMailchimp, faMandalorian, faMarkdown, faMastodon, faMaxcdn, faMdb, faMedapps, faMedium, faMediumM, faMedrt, faMeetup, faMegaport, faMendeley, faMicroblog, faMicrosoft, faMix, faMixcloud, faMixer, faMizuni, faModx, faMonero, faNapster, faNeos, faNimblr, faNode, faNodeJs, faNpm, faNs8, faNutritionix, faOctopusDeploy, faOdnoklassniki, faOdnoklassnikiSquare, faOldRepublic, faOpencart, faOpenid, faOpera, faOptinMonster, faOrcid, faOsi, faPage4, faPagelines, faPalfed, faPatreon, faPaypal, faPennyArcade, faPerbyte, faPeriscope, faPhabricator, faPhoenixFramework, faPhoenixSquadron, faPhp, faPiedPiper, faPiedPiperAlt, faPiedPiperHat, faPiedPiperPp, faPiedPiperSquare, faPinterest, faPinterestP, faPinterestSquare, faPlaystation, faProductHunt, faPushed, faPython, faQq, faQuinscape, faQuora, faRProject, faRaspberryPi, faRavelry, faReact, faReacteurope, faReadme, faRebel, faRedRiver, faReddit, faRedditAlien, faRedditSquare, faRedhat, faRenren, faReplyd, faResearchgate, faResolving, faRev, faRocketchat, faRockrms, faRust, faSafari, faSalesforce, faSass, faSchlix, faScribd, faSearchengin, faSellcast, faSellsy, faServicestack, faShirtsinbulk, faShopify, faShopware, faSimplybuilt, faSistrix, faSith, faSketch, faSkyatlas, faSkype, faSlack, faSlackHash, faSlideshare, faSnapchat, faSnapchatGhost, faSnapchatSquare, faSoundcloud, faSourcetree, faSpeakap, faSpeakerDeck, faSpotify, faSquarespace, faStackExchange, faStackOverflow, faStackpath, faStaylinked, faSteam, faSteamSquare, faSteamSymbol, faStickerMule, faStrava, faStripe, faStripeS, faStudiovinari, faStumbleupon, faStumbleuponCircle, faSuperpowers, faSupple, faSuse, faSwift, faSymfony, faTeamspeak, faTelegram, faTelegramPlane, faTencentWeibo, faTheRedYeti, faThemeco, faThemeisle, faThinkPeaks, faTiktok, faTradeFederation, faTrello, faTripadvisor, faTumblr, faTumblrSquare, faTwitch, faTwitter, faTwitterSquare, faTypo3, faUber, faUbuntu, faUikit, faUmbraco, faUncharted, faUniregistry, faUnity, faUnsplash, faUntappd, faUps, faUsb, faUsps, faUssunnah, faVaadin, faViacoin, faViadeo, faViadeoSquare, faViber, faVimeo, faVimeoSquare, faVimeoV, faVine, faVk, faVnv, faVuejs, faWatchmanMonitoring, faWaze, faWeebly, faWeibo, faWeixin, faWhatsapp, faWhatsappSquare, faWhmcs, faWikipediaW, faWindows, faWix, faWizardsOfTheCoast, faWodu, faWolfPackBattalion, faWordpress, faWordpressSimple, faWpbeginner, faWpexplorer, faWpforms, faWpressr, faXbox, faXing, faXingSquare, faYCombinator, faYahoo, faYammer, faYandex, faYandexInternational, faYarn, faYelp, faYoast, faYoutube, faYoutubeSquare, faZhihu };\n","'use strict'\n\nvar sizeChunks = require('./size-chunks.js')\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1]\n if (!tail || tail[1].type !== type) return 0\n return sizeChunks(tail[2].sliceStream(tail[1]))\n}\n\nmodule.exports = prefixSize\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATHML: 'http://www.w3.org/1998/Math/MathML',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n TYPE: 'type',\n ACTION: 'action',\n ENCODING: 'encoding',\n PROMPT: 'prompt',\n NAME: 'name',\n COLOR: 'color',\n FACE: 'face',\n SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n NO_QUIRKS: 'no-quirks',\n QUIRKS: 'quirks',\n LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n A: 'a',\n ADDRESS: 'address',\n ANNOTATION_XML: 'annotation-xml',\n APPLET: 'applet',\n AREA: 'area',\n ARTICLE: 'article',\n ASIDE: 'aside',\n\n B: 'b',\n BASE: 'base',\n BASEFONT: 'basefont',\n BGSOUND: 'bgsound',\n BIG: 'big',\n BLOCKQUOTE: 'blockquote',\n BODY: 'body',\n BR: 'br',\n BUTTON: 'button',\n\n CAPTION: 'caption',\n CENTER: 'center',\n CODE: 'code',\n COL: 'col',\n COLGROUP: 'colgroup',\n\n DD: 'dd',\n DESC: 'desc',\n DETAILS: 'details',\n DIALOG: 'dialog',\n DIR: 'dir',\n DIV: 'div',\n DL: 'dl',\n DT: 'dt',\n\n EM: 'em',\n EMBED: 'embed',\n\n FIELDSET: 'fieldset',\n FIGCAPTION: 'figcaption',\n FIGURE: 'figure',\n FONT: 'font',\n FOOTER: 'footer',\n FOREIGN_OBJECT: 'foreignObject',\n FORM: 'form',\n FRAME: 'frame',\n FRAMESET: 'frameset',\n\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n HEAD: 'head',\n HEADER: 'header',\n HGROUP: 'hgroup',\n HR: 'hr',\n HTML: 'html',\n\n I: 'i',\n IMG: 'img',\n IMAGE: 'image',\n INPUT: 'input',\n IFRAME: 'iframe',\n\n KEYGEN: 'keygen',\n\n LABEL: 'label',\n LI: 'li',\n LINK: 'link',\n LISTING: 'listing',\n\n MAIN: 'main',\n MALIGNMARK: 'malignmark',\n MARQUEE: 'marquee',\n MATH: 'math',\n MENU: 'menu',\n META: 'meta',\n MGLYPH: 'mglyph',\n MI: 'mi',\n MO: 'mo',\n MN: 'mn',\n MS: 'ms',\n MTEXT: 'mtext',\n\n NAV: 'nav',\n NOBR: 'nobr',\n NOFRAMES: 'noframes',\n NOEMBED: 'noembed',\n NOSCRIPT: 'noscript',\n\n OBJECT: 'object',\n OL: 'ol',\n OPTGROUP: 'optgroup',\n OPTION: 'option',\n\n P: 'p',\n PARAM: 'param',\n PLAINTEXT: 'plaintext',\n PRE: 'pre',\n\n RB: 'rb',\n RP: 'rp',\n RT: 'rt',\n RTC: 'rtc',\n RUBY: 'ruby',\n\n S: 's',\n SCRIPT: 'script',\n SECTION: 'section',\n SELECT: 'select',\n SOURCE: 'source',\n SMALL: 'small',\n SPAN: 'span',\n STRIKE: 'strike',\n STRONG: 'strong',\n STYLE: 'style',\n SUB: 'sub',\n SUMMARY: 'summary',\n SUP: 'sup',\n\n TABLE: 'table',\n TBODY: 'tbody',\n TEMPLATE: 'template',\n TEXTAREA: 'textarea',\n TFOOT: 'tfoot',\n TD: 'td',\n TH: 'th',\n THEAD: 'thead',\n TITLE: 'title',\n TR: 'tr',\n TRACK: 'track',\n TT: 'tt',\n\n U: 'u',\n UL: 'ul',\n\n SVG: 'svg',\n\n VAR: 'var',\n\n WBR: 'wbr',\n\n XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n [NS.HTML]: {\n [$.ADDRESS]: true,\n [$.APPLET]: true,\n [$.AREA]: true,\n [$.ARTICLE]: true,\n [$.ASIDE]: true,\n [$.BASE]: true,\n [$.BASEFONT]: true,\n [$.BGSOUND]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.BUTTON]: true,\n [$.CAPTION]: true,\n [$.CENTER]: true,\n [$.COL]: true,\n [$.COLGROUP]: true,\n [$.DD]: true,\n [$.DETAILS]: true,\n [$.DIR]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EMBED]: true,\n [$.FIELDSET]: true,\n [$.FIGCAPTION]: true,\n [$.FIGURE]: true,\n [$.FOOTER]: true,\n [$.FORM]: true,\n [$.FRAME]: true,\n [$.FRAMESET]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HEADER]: true,\n [$.HGROUP]: true,\n [$.HR]: true,\n [$.HTML]: true,\n [$.IFRAME]: true,\n [$.IMG]: true,\n [$.INPUT]: true,\n [$.LI]: true,\n [$.LINK]: true,\n [$.LISTING]: true,\n [$.MAIN]: true,\n [$.MARQUEE]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NAV]: true,\n [$.NOEMBED]: true,\n [$.NOFRAMES]: true,\n [$.NOSCRIPT]: true,\n [$.OBJECT]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PARAM]: true,\n [$.PLAINTEXT]: true,\n [$.PRE]: true,\n [$.SCRIPT]: true,\n [$.SECTION]: true,\n [$.SELECT]: true,\n [$.SOURCE]: true,\n [$.STYLE]: true,\n [$.SUMMARY]: true,\n [$.TABLE]: true,\n [$.TBODY]: true,\n [$.TD]: true,\n [$.TEMPLATE]: true,\n [$.TEXTAREA]: true,\n [$.TFOOT]: true,\n [$.TH]: true,\n [$.THEAD]: true,\n [$.TITLE]: true,\n [$.TR]: true,\n [$.TRACK]: true,\n [$.UL]: true,\n [$.WBR]: true,\n [$.XMP]: true\n },\n [NS.MATHML]: {\n [$.MI]: true,\n [$.MO]: true,\n [$.MN]: true,\n [$.MS]: true,\n [$.MTEXT]: true,\n [$.ANNOTATION_XML]: true\n },\n [NS.SVG]: {\n [$.TITLE]: true,\n [$.FOREIGN_OBJECT]: true,\n [$.DESC]: true\n }\n};\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict'\n\nvar assign = Object.assign\n\nmodule.exports = assign\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\nmodule.exports = asciiAlphanumeric\n","'use strict'\n\nmodule.exports = visit\n\nvar visitParents = require('unist-util-visit-parents')\n\nvar CONTINUE = visitParents.CONTINUE\nvar SKIP = visitParents.SKIP\nvar EXIT = visitParents.EXIT\n\nvisit.CONTINUE = CONTINUE\nvisit.SKIP = SKIP\nvisit.EXIT = EXIT\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n var index = parent ? parent.children.indexOf(node) : null\n return visitor(node, index, parent)\n }\n}\n","'use strict'\n\nmodule.exports = wrap\n\nvar u = require('unist-builder')\n\n// Wrap `nodes` with line feeds between each entry.\n// Optionally adds line feeds at the start and end.\nfunction wrap(nodes, loose) {\n var result = []\n var index = -1\n var length = nodes.length\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < length) {\n if (index) {\n result.push(u('text', '\\n'))\n }\n\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n }\n\n // cover common, quick use cases\n if (num === 1) return str;\n if (num === 2) return str + str;\n\n var max = str.length * num;\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","/*!\n * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example <script data-search-pseudo-elements src=\"...\"></script>\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.3\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" Font Awesome fontawesome.com -->\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n return c === document ? t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetTop : t.offsetTop - c.offsetTop;\n }\n};\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict'\n\nvar fromCharCode = String.fromCharCode\n\nmodule.exports = fromCharCode\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n}\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = partialBlankLine\n","'use strict'\n\nfunction resolveAll(constructs, events, context) {\n var called = []\n var index = -1\n var resolve\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n\nmodule.exports = resolveAll\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/)\n\nmodule.exports = asciiAlpha\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n if (cp <= 0xffff) {\n return String.fromCharCode(cp);\n }\n\n cp -= 0x10000;\n return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n const branchCount = neTree[++nodeIx];\n let lo = ++nodeIx;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midCp = neTree[mid];\n\n if (midCp < cp) {\n lo = mid + 1;\n } else if (midCp > cp) {\n hi = mid - 1;\n } else {\n return neTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n constructor() {\n this.preprocessor = new Preprocessor();\n\n this.tokenQueue = [];\n\n this.allowCDATA = false;\n\n this.state = DATA_STATE;\n this.returnState = '';\n\n this.charRefCode = -1;\n this.tempBuff = [];\n this.lastStartTagName = '';\n\n this.consumedAfterSnapshot = -1;\n this.active = false;\n\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = null;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _errOnNextCodePoint(err) {\n this._consume();\n this._err(err);\n this._unconsume();\n }\n\n //API\n getNextToken() {\n while (!this.tokenQueue.length && this.active) {\n this.consumedAfterSnapshot = 0;\n\n const cp = this._consume();\n\n if (!this._ensureHibernation()) {\n this[this.state](cp);\n }\n }\n\n return this.tokenQueue.shift();\n }\n\n write(chunk, isLastChunk) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n }\n\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n this.preprocessor.retreat();\n }\n\n this.active = false;\n this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n return true;\n }\n\n return false;\n }\n\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n\n _unconsume() {\n this.consumedAfterSnapshot--;\n this.preprocessor.retreat();\n }\n\n _reconsumeInState(state) {\n this.state = state;\n this._unconsume();\n }\n\n _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n let consumedCount = 0;\n let isMatch = true;\n const patternLength = pattern.length;\n let patternPos = 0;\n let cp = startCp;\n let patternCp = void 0;\n\n for (; patternPos < patternLength; patternPos++) {\n if (patternPos > 0) {\n cp = this._consume();\n consumedCount++;\n }\n\n if (cp === $.EOF) {\n isMatch = false;\n break;\n }\n\n patternCp = pattern[patternPos];\n\n if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n isMatch = false;\n break;\n }\n }\n\n if (!isMatch) {\n while (consumedCount--) {\n this._unconsume();\n }\n }\n\n return isMatch;\n }\n\n //Temp buffer\n _isTempBufferEqualToScriptString() {\n if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n return false;\n }\n\n for (let i = 0; i < this.tempBuff.length; i++) {\n if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: Tokenizer.START_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n ackSelfClosing: false,\n attrs: []\n };\n }\n\n _createEndTagToken() {\n this.currentToken = {\n type: Tokenizer.END_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n attrs: []\n };\n }\n\n _createCommentToken() {\n this.currentToken = {\n type: Tokenizer.COMMENT_TOKEN,\n data: ''\n };\n }\n\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: Tokenizer.DOCTYPE_TOKEN,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null\n };\n }\n\n _createCharacterToken(type, ch) {\n this.currentCharacterToken = {\n type: type,\n chars: ch\n };\n }\n\n _createEOFToken() {\n this.currentToken = { type: Tokenizer.EOF_TOKEN };\n }\n\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: ''\n };\n }\n\n _leaveAttrName(toState) {\n if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n this.currentToken.attrs.push(this.currentAttr);\n } else {\n this._err(ERR.duplicateAttribute);\n }\n\n this.state = toState;\n }\n\n _leaveAttrValue(toState) {\n this.state = toState;\n }\n\n //Token emission\n _emitCurrentToken() {\n this._emitCurrentCharacterToken();\n\n const ct = this.currentToken;\n\n this.currentToken = null;\n\n //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n if (ct.type === Tokenizer.START_TAG_TOKEN) {\n this.lastStartTagName = ct.tagName;\n } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n }\n\n this.tokenQueue.push(ct);\n }\n\n _emitCurrentCharacterToken() {\n if (this.currentCharacterToken) {\n this.tokenQueue.push(this.currentCharacterToken);\n this.currentCharacterToken = null;\n }\n }\n\n _emitEOFToken() {\n this._createEOFToken();\n this._emitCurrentToken();\n }\n\n //Characters emission\n\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n this._emitCurrentCharacterToken();\n }\n\n if (this.currentCharacterToken) {\n this.currentCharacterToken.chars += ch;\n } else {\n this._createCharacterToken(type, ch);\n }\n }\n\n _emitCodePoint(cp) {\n let type = Tokenizer.CHARACTER_TOKEN;\n\n if (isWhitespace(cp)) {\n type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n } else if (cp === $.NULL) {\n type = Tokenizer.NULL_CHARACTER_TOKEN;\n }\n\n this._appendCharToCurrentCharacterToken(type, toChar(cp));\n }\n\n _emitSeveralCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n this._emitCodePoint(codePoints[i]);\n }\n }\n\n //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n //So we can avoid additional checks here.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n }\n\n // Character reference helpers\n _matchNamedCharacterReference(startCp) {\n let result = null;\n let excess = 1;\n let i = findNamedEntityTreeBranch(0, startCp);\n\n this.tempBuff.push(startCp);\n\n while (i > -1) {\n const current = neTree[i];\n const inNode = current < MAX_BRANCH_MARKER_VALUE;\n const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n if (nodeWithData) {\n //NOTE: we use greedy search, so we continue lookup at this point\n result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n excess = 0;\n }\n\n const cp = this._consume();\n\n this.tempBuff.push(cp);\n excess++;\n\n if (cp === $.EOF) {\n break;\n }\n\n if (inNode) {\n i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n } else {\n i = cp === current ? ++i : -1;\n }\n }\n\n while (excess--) {\n this.tempBuff.pop();\n this._unconsume();\n }\n\n return result;\n }\n\n _isCharacterReferenceInAttribute() {\n return (\n this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n );\n }\n\n _isCharacterReferenceAttributeQuirk(withSemicolon) {\n if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n const nextCp = this._consume();\n\n this._unconsume();\n\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n }\n\n return false;\n }\n\n _flushCodePointsConsumedAsCharacterReference() {\n if (this._isCharacterReferenceInAttribute()) {\n for (let i = 0; i < this.tempBuff.length; i++) {\n this.currentAttr.value += toChar(this.tempBuff[i]);\n }\n } else {\n this._emitSeveralCodePoints(this.tempBuff);\n }\n\n this.tempBuff = [];\n }\n\n // State machine\n\n // Data state\n //------------------------------------------------------------------\n [DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = TAG_OPEN_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = DATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RCDATA state\n //------------------------------------------------------------------\n [RCDATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.AMPERSAND) {\n this.returnState = RCDATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = RCDATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RAWTEXT state\n //------------------------------------------------------------------\n [RAWTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data state\n //------------------------------------------------------------------\n [SCRIPT_DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // PLAINTEXT state\n //------------------------------------------------------------------\n [PLAINTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Tag open state\n //------------------------------------------------------------------\n [TAG_OPEN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.state = MARKUP_DECLARATION_OPEN_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.QUESTION_MARK) {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this._reconsumeInState(DATA_STATE);\n }\n }\n\n // End tag open state\n //------------------------------------------------------------------\n [END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingEndTagName);\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Tag name state\n //------------------------------------------------------------------\n [TAG_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentToken.tagName += toChar(cp);\n }\n }\n\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RCDATA_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag open state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag name state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RAWTEXT_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // Script data less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n this._emitChars('<!');\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this.tempBuff = [];\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n : SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n this._emitChars('/');\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Script data double escape end state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_ESCAPED_STATE\n : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Before attribute name state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.EQUALS_SIGN) {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = ATTRIBUTE_NAME_STATE;\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Attribute name state\n //------------------------------------------------------------------\n [ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n this._unconsume();\n } else if (cp === $.EQUALS_SIGN) {\n this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n } else if (isAsciiUpper(cp)) {\n this.currentAttr.name += toAsciiLowerChar(cp);\n } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += toChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentAttr.name += toChar(cp);\n }\n }\n\n // After attribute name state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.EQUALS_SIGN) {\n this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Before attribute value state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingAttributeValue);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n }\n }\n\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (\n cp === $.QUOTATION_MARK ||\n cp === $.APOSTROPHE ||\n cp === $.LESS_THAN_SIGN ||\n cp === $.EQUALS_SIGN ||\n cp === $.GRAVE_ACCENT\n ) {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += toChar(cp);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.SOLIDUS) {\n this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Self-closing start tag state\n //------------------------------------------------------------------\n [SELF_CLOSING_START_TAG_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.currentToken.selfClosing = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedSolidusInTag);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Bogus comment state\n //------------------------------------------------------------------\n [BOGUS_COMMENT_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Markup declaration open state\n //------------------------------------------------------------------\n [MARKUP_DECLARATION_OPEN_STATE](cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n this._createCommentToken();\n this.state = COMMENT_START_STATE;\n } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n this.state = DOCTYPE_STATE;\n } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n if (this.allowCDATA) {\n this.state = CDATA_SECTION_STATE;\n } else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken();\n this.currentToken.data = '[CDATA[';\n this.state = BOGUS_COMMENT_STATE;\n }\n }\n\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Comment start state\n //------------------------------------------------------------------\n [COMMENT_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_START_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment start dash state\n //------------------------------------------------------------------\n [COMMENT_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment state\n //------------------------------------------------------------------\n [COMMENT_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '<';\n this.state = COMMENT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Comment less-than sign state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.currentToken.data += '!';\n this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '!';\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_END_DASH_STATE);\n }\n }\n\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n\n this._reconsumeInState(COMMENT_END_STATE);\n }\n\n // Comment end dash state\n //------------------------------------------------------------------\n [COMMENT_END_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end state\n //------------------------------------------------------------------\n [COMMENT_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = COMMENT_END_BANG_STATE;\n } else if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '-';\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end bang state\n //------------------------------------------------------------------\n [COMMENT_END_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '--!';\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.incorrectlyClosedComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--!';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // DOCTYPE state\n //------------------------------------------------------------------\n [DOCTYPE_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n }\n }\n\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(toAsciiLowerChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._createDoctypeToken(toChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n }\n }\n\n // DOCTYPE name state\n //------------------------------------------------------------------\n [DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = AFTER_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.name += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.name += toChar(cp);\n }\n }\n\n // After DOCTYPE name state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n [BOGUS_DOCTYPE_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n }\n }\n\n // CDATA section state\n //------------------------------------------------------------------\n [CDATA_SECTION_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_BRACKET_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // CDATA section bracket state\n //------------------------------------------------------------------\n [CDATA_SECTION_BRACKET_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_END_STATE;\n } else {\n this._emitChars(']');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // CDATA section end state\n //------------------------------------------------------------------\n [CDATA_SECTION_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n this._emitChars(']');\n } else {\n this._emitChars(']]');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // Character reference state\n //------------------------------------------------------------------\n [CHARACTER_REFERENCE_STATE](cp) {\n this.tempBuff = [$.AMPERSAND];\n\n if (cp === $.NUMBER_SIGN) {\n this.tempBuff.push(cp);\n this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n } else if (isAsciiAlphaNumeric(cp)) {\n this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Named character reference state\n //------------------------------------------------------------------\n [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n\n //NOTE: matching can be abrupted by hibernation. In that case match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n this.tempBuff = [$.AMPERSAND];\n } else if (matchResult) {\n const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n if (!withSemicolon) {\n this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n }\n\n this.tempBuff = matchResult;\n }\n\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = this.returnState;\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = AMBIGUOUS_AMPERSAND_STATE;\n }\n }\n\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n [AMBIGUOUS_AMPERSAND_STATE](cp) {\n if (isAsciiAlphaNumeric(cp)) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += toChar(cp);\n } else {\n this._emitCodePoint(cp);\n }\n } else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Numeric character reference state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n this.charRefCode = 0;\n\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.tempBuff.push(cp);\n this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n } else {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n }\n }\n\n // Hexademical character reference start state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiHexDigit(cp)) {\n this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Decimal character reference start state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Hexademical character reference state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n } else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n } else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Decimal character reference state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Numeric character reference end state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (this.charRefCode > 0x10ffff) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n if (replacement) {\n this.charRefCode = replacement;\n }\n }\n\n this.tempBuff = [this.charRefCode];\n\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n DATA: DATA_STATE,\n RCDATA: RCDATA_STATE,\n RAWTEXT: RAWTEXT_STATE,\n SCRIPT_DATA: SCRIPT_DATA_STATE,\n PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n\n return null;\n};\n\nmodule.exports = Tokenizer;\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\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 /#.*/,\n {\n pattern: /^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n }\n ],\n 'class-name': {\n pattern: /(\\b(?:class)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/\n })\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.ruby\n }\n }\n delete Prism.languages.ruby.function\n Prism.languages.insertBefore('ruby', 'keyword', {\n regex: [\n {\n pattern: RegExp(\n /%r/.source +\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/.source, // Here we need to specifically allow interpolation\n /\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S])*>/.source\n ].join('|') +\n ')' +\n /[egimnosux]{0,6}/.source\n ),\n greedy: true,\n inside: {\n interpolation: interpolation\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 }\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: {\n pattern: /(^|[^:]):[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n lookbehind: true\n },\n 'method-definition': {\n pattern: /(\\bdef\\s+)[\\w.]+/,\n lookbehind: true,\n inside: {\n function: /\\w+$/,\n rest: Prism.languages.ruby\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'number', {\n builtin:\n /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\\b/,\n constant: /\\b[A-Z]\\w*(?:[?!]|\\b)/\n })\n Prism.languages.ruby.string = [\n {\n pattern: RegExp(\n /%[qQiIwWxs]?/.source +\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/.source, // Here we need to specifically allow interpolation\n /\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S])*>/.source\n ].join('|') +\n ')'\n ),\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n },\n {\n pattern:\n /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation\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*|[a-z_]\\w*$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<[-~]?/\n }\n },\n interpolation: interpolation\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*'|[a-z_]\\w*$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<[-~]?'|'$/\n }\n }\n }\n }\n ]\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern:\n /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:param|arg|arguments)\\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 * 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 * 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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction 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|(?=\\{))/i,\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(?:bool|boolean|int|integer|float|string|object|array)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /([(,?]\\s*)\\b(?:bool|int|float|string|object|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*[\\w|]\\|\\s*)(?:null|false)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|self|static|callable|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?[\\w|]\\|\\s*)(?:null|false)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:bool|int|float|string|object|void|array(?!\\s*\\()|mixed|iterable|(?:null|false)(?=\\s*\\|))\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:null|false)\\b/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 }, // `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(?:__halt_compiler|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|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\\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])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/gi\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","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#F0F0F0\",\n \"color\": \"#444\"\n },\n \"hljs-subst\": {\n \"color\": \"#444\"\n },\n \"hljs-comment\": {\n \"color\": \"#888888\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#880000\"\n },\n \"hljs-string\": {\n \"color\": \"#880000\"\n },\n \"hljs-number\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#880000\"\n },\n \"hljs-quote\": {\n \"color\": \"#880000\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#880000\"\n },\n \"hljs-deletion\": {\n \"color\": \"#880000\"\n },\n \"hljs-title\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-symbol\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-link\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-literal\": {\n \"color\": \"#78A960\"\n },\n \"hljs-built_in\": {\n \"color\": \"#397300\"\n },\n \"hljs-bullet\": {\n \"color\": \"#397300\"\n },\n \"hljs-code\": {\n \"color\": \"#397300\"\n },\n \"hljs-addition\": {\n \"color\": \"#397300\"\n },\n \"hljs-meta\": {\n \"color\": \"#1f7199\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\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","'use strict'\n\nvar high = require('highlight.js/lib/core')\nvar fault = require('fault')\n\nexports.highlight = highlight\nexports.highlightAuto = highlightAuto\nexports.registerLanguage = registerLanguage\nexports.listLanguages = listLanguages\nexports.registerAlias = registerAlias\n\nEmitter.prototype.addText = text\nEmitter.prototype.addKeyword = addKeyword\nEmitter.prototype.addSublanguage = addSublanguage\nEmitter.prototype.openNode = open\nEmitter.prototype.closeNode = close\nEmitter.prototype.closeAllNodes = noop\nEmitter.prototype.finalize = noop\nEmitter.prototype.toHTML = toHtmlNoop\n\nvar defaultPrefix = 'hljs-'\n\n// Highlighting `value` in the language `name`.\nfunction highlight(name, value, options) {\n var before = high.configure({})\n var settings = options || {}\n var prefix = settings.prefix\n var result\n\n if (typeof name !== 'string') {\n throw fault('Expected `string` for name, got `%s`', name)\n }\n\n if (!high.getLanguage(name)) {\n throw fault('Unknown language: `%s` is not registered', name)\n }\n\n if (typeof value !== 'string') {\n throw fault('Expected `string` for value, got `%s`', value)\n }\n\n if (prefix === null || prefix === undefined) {\n prefix = defaultPrefix\n }\n\n high.configure({__emitter: Emitter, classPrefix: prefix})\n\n result = high.highlight(value, {language: name, ignoreIllegals: true})\n\n high.configure(before || {})\n\n /* istanbul ignore if - Highlight.js seems to use this (currently) for broken\n * grammars, so let’s keep it in there just to be sure. */\n if (result.errorRaised) {\n throw result.errorRaised\n }\n\n return {\n relevance: result.relevance,\n language: result.language,\n value: result.emitter.rootNode.children\n }\n}\n\nfunction highlightAuto(value, options) {\n var settings = options || {}\n var subset = settings.subset || high.listLanguages()\n var prefix = settings.prefix\n var length = subset.length\n var index = -1\n var result\n var secondBest\n var current\n var name\n\n if (prefix === null || prefix === undefined) {\n prefix = defaultPrefix\n }\n\n if (typeof value !== 'string') {\n throw fault('Expected `string` for value, got `%s`', value)\n }\n\n secondBest = {relevance: 0, language: null, value: []}\n result = {relevance: 0, language: null, value: []}\n\n while (++index < length) {\n name = subset[index]\n\n if (!high.getLanguage(name)) {\n continue\n }\n\n current = highlight(name, value, options)\n current.language = name\n\n if (current.relevance > secondBest.relevance) {\n secondBest = current\n }\n\n if (current.relevance > result.relevance) {\n secondBest = result\n result = current\n }\n }\n\n if (secondBest.language) {\n result.secondBest = secondBest\n }\n\n return result\n}\n\n// Register a language.\nfunction registerLanguage(name, syntax) {\n high.registerLanguage(name, syntax)\n}\n\n// Get a list of all registered languages.\nfunction listLanguages() {\n return high.listLanguages()\n}\n\n// Register more aliases for an already registered language.\nfunction registerAlias(name, alias) {\n var map = name\n var key\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n high.registerAliases(map[key], {languageName: key})\n }\n}\n\nfunction Emitter(options) {\n this.options = options\n this.rootNode = {children: []}\n this.stack = [this.rootNode]\n}\n\nfunction addKeyword(value, name) {\n this.openNode(name)\n this.addText(value)\n this.closeNode()\n}\n\nfunction addSublanguage(other, name) {\n var stack = this.stack\n var current = stack[stack.length - 1]\n var results = other.rootNode.children\n var node = name\n ? {\n type: 'element',\n tagName: 'span',\n properties: {className: [name]},\n children: results\n }\n : results\n\n current.children = current.children.concat(node)\n}\n\nfunction text(value) {\n var stack = this.stack\n var current\n var tail\n\n if (value === '') return\n\n current = stack[stack.length - 1]\n tail = current.children[current.children.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += value\n } else {\n current.children.push({type: 'text', value: value})\n }\n}\n\nfunction open(name) {\n var stack = this.stack\n var className = this.options.classPrefix + name\n var current = stack[stack.length - 1]\n var child = {\n type: 'element',\n tagName: 'span',\n properties: {className: [className]},\n children: []\n }\n\n current.children.push(child)\n stack.push(child)\n}\n\nfunction close() {\n this.stack.pop()\n}\n\nfunction toHtmlNoop() {\n return ''\n}\n\nfunction noop() {}\n","function _extends() {\n return module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\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.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps\nvar eventThrottler = function eventThrottler(eventHandler) {\n return (0, _lodash2.default)(eventHandler, 66);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n });\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict'\n\nfunction normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // 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 object method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n\nmodule.exports = normalizeIdentifier\n","'use strict'\n\nfunction miniflat(value) {\n return value === null || value === undefined\n ? []\n : 'length' in value\n ? value\n : [value]\n}\n\nmodule.exports = miniflat\n","'use strict'\n\nvar chunkedSplice = require('./chunked-splice.js')\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n\nmodule.exports = chunkedPush\n","'use strict'\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js')\nvar regexCheck = require('../util/regex-check.js')\n\n// In fact adds to the bundle size.\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex)\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar unicodeWhitespace = regexCheck(/\\s/)\n\nmodule.exports = unicodeWhitespace\n","'use strict'\n\n// Note: EOF is seen as ASCII control here, because `null < 32 == true`.\nfunction asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n )\n}\n\nmodule.exports = asciiControl\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factoryTitle = require('./factory-title.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\nvar resourceConstruct = {\n tokenize: tokenizeResource\n}\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n\nfunction resolveAllLabelEnd(events) {\n var index = -1\n var token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n !token._used &&\n (token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd')\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length\n var offset = 0\n var group\n var label\n var text\n var token\n var open\n var close\n var media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n }\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n }\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]) // Between.\n\n media = chunkedPush(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = chunkedPush(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)) // Media close.\n\n media = chunkedPush(media, [['exit', group, context]])\n chunkedSplice(events, open, events.length, media)\n return events\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var labelStart\n var defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined =\n self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n ) > -1\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n\n function end(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\n return nok(code)\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n ) < 0\n ? nok(code)\n : ok(code)\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n\n function open(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\n return nok(code)\n }\n}\n\nmodule.exports = labelEnd\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (test == null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test)\n }\n\n if (typeof test === 'function') {\n return test\n }\n\n throw new Error('Expected function, string, or object as test')\n}\n\n// Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\nfunction allFactory(test) {\n return all\n\n function all(node) {\n var key\n\n for (key in test) {\n if (node[key] !== test[key]) return false\n }\n\n return true\n }\n}\n\nfunction anyFactory(tests) {\n var checks = []\n var index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return any\n\n function any() {\n var index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string into a function which checks a given node’s type\n// for said string.\nfunction typeFactory(test) {\n return type\n\n function type(node) {\n return Boolean(node && node.type === test)\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar svg = require('./lib/svg')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, svg])\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var 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 prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n 0xfffe,\n 0xffff,\n 0x1fffe,\n 0x1ffff,\n 0x2fffe,\n 0x2ffff,\n 0x3fffe,\n 0x3ffff,\n 0x4fffe,\n 0x4ffff,\n 0x5fffe,\n 0x5ffff,\n 0x6fffe,\n 0x6ffff,\n 0x7fffe,\n 0x7ffff,\n 0x8fffe,\n 0x8ffff,\n 0x9fffe,\n 0x9ffff,\n 0xafffe,\n 0xaffff,\n 0xbfffe,\n 0xbffff,\n 0xcfffe,\n 0xcffff,\n 0xdfffe,\n 0xdffff,\n 0xefffe,\n 0xeffff,\n 0xffffe,\n 0xfffff,\n 0x10fffe,\n 0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n EOF: -1,\n NULL: 0x00,\n TABULATION: 0x09,\n CARRIAGE_RETURN: 0x0d,\n LINE_FEED: 0x0a,\n FORM_FEED: 0x0c,\n SPACE: 0x20,\n EXCLAMATION_MARK: 0x21,\n QUOTATION_MARK: 0x22,\n NUMBER_SIGN: 0x23,\n AMPERSAND: 0x26,\n APOSTROPHE: 0x27,\n HYPHEN_MINUS: 0x2d,\n SOLIDUS: 0x2f,\n DIGIT_0: 0x30,\n DIGIT_9: 0x39,\n SEMICOLON: 0x3b,\n LESS_THAN_SIGN: 0x3c,\n EQUALS_SIGN: 0x3d,\n GREATER_THAN_SIGN: 0x3e,\n QUESTION_MARK: 0x3f,\n LATIN_CAPITAL_A: 0x41,\n LATIN_CAPITAL_F: 0x46,\n LATIN_CAPITAL_X: 0x58,\n LATIN_CAPITAL_Z: 0x5a,\n RIGHT_SQUARE_BRACKET: 0x5d,\n GRAVE_ACCENT: 0x60,\n LATIN_SMALL_A: 0x61,\n LATIN_SMALL_F: 0x66,\n LATIN_SMALL_X: 0x78,\n LATIN_SMALL_Z: 0x7a,\n REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n DASH_DASH_STRING: [0x2d, 0x2d], //--\n DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n return (\n (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f)\n );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nmodule.exports = {\n controlCharacterInInputStream: 'control-character-in-input-stream',\n noncharacterInInputStream: 'noncharacter-in-input-stream',\n surrogateInInputStream: 'surrogate-in-input-stream',\n nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n endTagWithAttributes: 'end-tag-with-attributes',\n endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n unexpectedNullCharacter: 'unexpected-null-character',\n unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n missingEndTagName: 'missing-end-tag-name',\n unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n unknownNamedCharacterReference: 'unknown-named-character-reference',\n missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n eofBeforeTagName: 'eof-before-tag-name',\n eofInTag: 'eof-in-tag',\n missingAttributeValue: 'missing-attribute-value',\n missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n cdataInHtmlContent: 'cdata-in-html-content',\n incorrectlyOpenedComment: 'incorrectly-opened-comment',\n eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n eofInDoctype: 'eof-in-doctype',\n nestedComment: 'nested-comment',\n abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n eofInComment: 'eof-in-comment',\n incorrectlyClosedComment: 'incorrectly-closed-comment',\n eofInCdata: 'eof-in-cdata',\n absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n nullCharacterReference: 'null-character-reference',\n surrogateCharacterReference: 'surrogate-character-reference',\n characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n controlCharacterReference: 'control-character-reference',\n noncharacterCharacterReference: 'noncharacter-character-reference',\n missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n missingDoctypeName: 'missing-doctype-name',\n invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n duplicateAttribute: 'duplicate-attribute',\n nonConformingDoctype: 'non-conforming-doctype',\n missingDoctype: 'missing-doctype',\n misplacedDoctype: 'misplaced-doctype',\n endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n openElementsLeftAfterEof: 'open-elements-left-after-eof',\n abandonedHeadElementChild: 'abandoned-head-element-child',\n misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n nestedNoscriptInHead: 'nested-noscript-in-head',\n eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n constructor(host, opts) {\n super(host);\n\n this.posTracker = null;\n this.onParseError = opts.onParseError;\n }\n\n _setErrorLocation(err) {\n err.startLine = err.endLine = this.posTracker.line;\n err.startCol = err.endCol = this.posTracker.col;\n err.startOffset = err.endOffset = this.posTracker.offset;\n }\n\n _reportError(code) {\n const err = {\n code: code,\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n\n this._setErrorLocation(err);\n this.onParseError(err);\n }\n\n _getOverriddenMethods(mxn) {\n return {\n _err(code) {\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction 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 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(?:_INSERT|COL)?|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(?:S|ING)?|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(?:TRUE|FALSE|NULL)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword =\n /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_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|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 }, // 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*\\()/, // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // 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(?:true|false)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n module: {\n // https://en.cppreference.com/w/cpp/language/modules\n pattern: RegExp(\n /(\\b(?:module|import)\\s+)/.source +\n '(?:' + // header-name\n /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\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[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","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\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 * 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 } // 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 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 get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where',\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 } // 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 ) // 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 } // 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 pattern: RegExp(character),\n greedy: true,\n alias: 'character'\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>>)<<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+)*)?)(?:ul|lu|[dflmu])?\\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|typeof|sizeof)\\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>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source\n ]\n ),\n lookbehind: true,\n inside: {\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|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\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 ) // 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 }) // string interpolation\n var formatString = /:[^}\\r\\n]+/.source // 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 ]) // 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 })\n })(Prism)\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction 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@[\\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\\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(?:import|qualified|as|hiding)\\b/\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 // 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 operator:\n /\\s\\.\\s|[-!#$%*+=?&@|~:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n // In Haskell, 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 Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\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|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the java naming conventions\n var className = {\n pattern: RegExp(classNamePrefix + /[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 punctuation: /\\./\n }\n }\n Prism.languages.java = 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 classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.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 })\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 })\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 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","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\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(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/\n }) // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|as|declare|implements|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n /\\b(?:asserts|infer|interface|module|namespace|type)(?!\\s*[^\\s_${}*a-zA-Z\\xA0-\\uFFFF])/\n ) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter'] // 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","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction 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(?:true|false)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction 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 character: {\n pattern:\n /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n greedy: true,\n alias: 'string'\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|export|except|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>': /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?/\n .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 * 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 } // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction 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","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n onParseError: null,\n treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n [$.TR]: IN_ROW_MODE,\n [$.TBODY]: IN_TABLE_BODY_MODE,\n [$.THEAD]: IN_TABLE_BODY_MODE,\n [$.TFOOT]: IN_TABLE_BODY_MODE,\n [$.CAPTION]: IN_CAPTION_MODE,\n [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n [$.TABLE]: IN_TABLE_MODE,\n [$.BODY]: IN_BODY_MODE,\n [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n [$.CAPTION]: IN_TABLE_MODE,\n [$.COLGROUP]: IN_TABLE_MODE,\n [$.TBODY]: IN_TABLE_MODE,\n [$.TFOOT]: IN_TABLE_MODE,\n [$.THEAD]: IN_TABLE_MODE,\n [$.COL]: IN_COLUMN_GROUP_MODE,\n [$.TR]: IN_TABLE_BODY_MODE,\n [$.TD]: IN_ROW_MODE,\n [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n [INITIAL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n },\n [BEFORE_HTML_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n },\n [BEFORE_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n },\n [IN_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n [Tokenizer.EOF_TOKEN]: tokenInHead\n },\n [IN_HEAD_NO_SCRIPT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n },\n [AFTER_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n [Tokenizer.EOF_TOKEN]: tokenAfterHead\n },\n [IN_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n [Tokenizer.END_TAG_TOKEN]: endTagInText,\n [Tokenizer.EOF_TOKEN]: eofInText\n },\n [IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.EOF_TOKEN]: tokenInTableText\n },\n [IN_CAPTION_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_COLUMN_GROUP_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_ROW_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_CELL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TEMPLATE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n [Tokenizer.EOF_TOKEN]: eofInTemplate\n },\n [AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [IN_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n [Tokenizer.EOF_TOKEN]: stopParsing\n }\n};\n\n//Parser\nclass Parser {\n constructor(options) {\n this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n this.treeAdapter = this.options.treeAdapter;\n this.pendingScript = null;\n\n if (this.options.sourceCodeLocationInfo) {\n Mixin.install(this, LocationInfoParserMixin);\n }\n\n if (this.options.onParseError) {\n Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n }\n }\n\n // API\n parse(html) {\n const document = this.treeAdapter.createDocument();\n\n this._bootstrap(document, null);\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n return document;\n }\n\n parseFragment(html, fragmentContext) {\n //NOTE: use <template> element as a fragment context if context element was not provided,\n //so we will parse in \"forgiving\" manner\n if (!fragmentContext) {\n fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n }\n\n //NOTE: create fake element which will be used as 'document' for fragment parsing.\n //This is important for jsdom there 'document' can't be recreated, therefore\n //fragment parsing causes messing of the main `document`.\n const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n this._bootstrap(documentMock, fragmentContext);\n\n if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n }\n\n this._initTokenizerForFragmentParsing();\n this._insertFakeRootElement();\n this._resetInsertionMode();\n this._findFormInFragmentContext();\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n const rootElement = this.treeAdapter.getFirstChild(documentMock);\n const fragment = this.treeAdapter.createDocumentFragment();\n\n this._adoptNodes(rootElement, fragment);\n\n return fragment;\n }\n\n //Bootstrap parser\n _bootstrap(document, fragmentContext) {\n this.tokenizer = new Tokenizer(this.options);\n\n this.stopped = false;\n\n this.insertionMode = INITIAL_MODE;\n this.originalInsertionMode = '';\n\n this.document = document;\n this.fragmentContext = fragmentContext;\n\n this.headElement = null;\n this.formElement = null;\n\n this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n this.tmplInsertionModeStack = [];\n this.tmplInsertionModeStackTop = -1;\n this.currentTmplInsertionMode = null;\n\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n //Parsing loop\n _runParsingLoop(scriptHandler) {\n while (!this.stopped) {\n this._setupTokenizerCDATAMode();\n\n const token = this.tokenizer.getNextToken();\n\n if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n break;\n }\n\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n\n if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n if (token.chars.length === 1) {\n continue;\n }\n\n token.chars = token.chars.substr(1);\n }\n }\n\n this._processInputToken(token);\n\n if (scriptHandler && this.pendingScript) {\n break;\n }\n }\n }\n\n runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n this._runParsingLoop(scriptHandler);\n\n if (scriptHandler && this.pendingScript) {\n const script = this.pendingScript;\n\n this.pendingScript = null;\n\n scriptHandler(script);\n\n return;\n }\n\n if (writeCallback) {\n writeCallback();\n }\n }\n\n //Text parsing\n _setupTokenizerCDATAMode() {\n const current = this._getAdjustedCurrentElement();\n\n this.tokenizer.allowCDATA =\n current &&\n current !== this.document &&\n this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n !this._isIntegrationPoint(current);\n }\n\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = TEXT_MODE;\n }\n\n switchToPlaintextParsing() {\n this.insertionMode = TEXT_MODE;\n this.originalInsertionMode = IN_BODY_MODE;\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n\n do {\n if (this.treeAdapter.getTagName(node) === $.FORM) {\n this.formElement = node;\n break;\n }\n\n node = this.treeAdapter.getParentNode(node);\n } while (node);\n }\n\n _initTokenizerForFragmentParsing() {\n if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n if (tn === $.TITLE || tn === $.TEXTAREA) {\n this.tokenizer.state = Tokenizer.MODE.RCDATA;\n } else if (\n tn === $.STYLE ||\n tn === $.XMP ||\n tn === $.IFRAME ||\n tn === $.NOEMBED ||\n tn === $.NOFRAMES ||\n tn === $.NOSCRIPT\n ) {\n this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n } else if (tn === $.SCRIPT) {\n this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n } else if (tn === $.PLAINTEXT) {\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n }\n }\n\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n }\n\n _attachElementToTree(element) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.appendChild(parent, element);\n }\n }\n\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n }\n\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertFakeElement(tagName) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl);\n this.openElements.push(tmpl);\n }\n\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element);\n }\n\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n this.treeAdapter.appendChild(parent, commentNode);\n }\n\n _insertCharacters(token) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentText(token.chars);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n\n //Token processing\n _shouldProcessTokenInForeignContent(token) {\n const current = this._getAdjustedCurrentElement();\n\n if (!current || current === this.document) {\n return false;\n }\n\n const ns = this.treeAdapter.getNamespaceURI(current);\n\n if (ns === NS.HTML) {\n return false;\n }\n\n if (\n this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n ns === NS.MATHML &&\n token.type === Tokenizer.START_TAG_TOKEN &&\n token.tagName === $.SVG\n ) {\n return false;\n }\n\n const isCharacterToken =\n token.type === Tokenizer.CHARACTER_TOKEN ||\n token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n const isMathMLTextStartTag =\n token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n return false;\n }\n\n if (\n (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n this._isIntegrationPoint(current, NS.HTML)\n ) {\n return false;\n }\n\n return token.type !== Tokenizer.EOF_TOKEN;\n }\n\n _processToken(token) {\n TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n }\n\n _processTokenInBodyMode(token) {\n TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n }\n\n _processTokenInForeignContent(token) {\n if (token.type === Tokenizer.CHARACTER_TOKEN) {\n characterInForeignContent(this, token);\n } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n nullCharacterInForeignContent(this, token);\n } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n insertCharacters(this, token);\n } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n appendComment(this, token);\n } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n startTagInForeignContent(this, token);\n } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n endTagInForeignContent(this, token);\n }\n }\n\n _processInputToken(token) {\n if (this._shouldProcessTokenInForeignContent(token)) {\n this._processTokenInForeignContent(token);\n } else {\n this._processToken(token);\n }\n\n if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n\n //Integration points\n _isIntegrationPoint(element, foreignNS) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n\n return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n }\n\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.length;\n\n if (listLength) {\n let unopenIdx = listLength;\n let entry = null;\n\n do {\n unopenIdx--;\n entry = this.activeFormattingElements.entries[unopenIdx];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n unopenIdx++;\n break;\n }\n } while (unopenIdx > 0);\n\n for (let i = unopenIdx; i < listLength; i++) {\n entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = IN_ROW_MODE;\n }\n\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n let element = this.openElements.items[i];\n\n if (i === 0) {\n last = true;\n\n if (this.fragmentContext) {\n element = this.fragmentContext;\n }\n }\n\n const tn = this.treeAdapter.getTagName(element);\n const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n if (newInsertionMode) {\n this.insertionMode = newInsertionMode;\n break;\n } else if (!last && (tn === $.TD || tn === $.TH)) {\n this.insertionMode = IN_CELL_MODE;\n break;\n } else if (!last && tn === $.HEAD) {\n this.insertionMode = IN_HEAD_MODE;\n break;\n } else if (tn === $.SELECT) {\n this._resetInsertionModeForSelect(i);\n break;\n } else if (tn === $.TEMPLATE) {\n this.insertionMode = this.currentTmplInsertionMode;\n break;\n } else if (tn === $.HTML) {\n this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n break;\n } else if (last) {\n this.insertionMode = IN_BODY_MODE;\n break;\n }\n }\n }\n\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const ancestor = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(ancestor);\n\n if (tn === $.TEMPLATE) {\n break;\n } else if (tn === $.TABLE) {\n this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n return;\n }\n }\n }\n\n this.insertionMode = IN_SELECT_MODE;\n }\n\n _pushTmplInsertionMode(mode) {\n this.tmplInsertionModeStack.push(mode);\n this.tmplInsertionModeStackTop++;\n this.currentTmplInsertionMode = mode;\n }\n\n _popTmplInsertionMode() {\n this.tmplInsertionModeStack.pop();\n this.tmplInsertionModeStackTop--;\n this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n }\n\n //Foster parenting\n _isElementCausesFosterParenting(element) {\n const tn = this.treeAdapter.getTagName(element);\n\n return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n }\n\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n }\n\n _findFosterParentingLocation() {\n const location = {\n parent: null,\n beforeElement: null\n };\n\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(openElement);\n const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n location.parent = this.treeAdapter.getTemplateContent(openElement);\n break;\n } else if (tn === $.TABLE) {\n location.parent = this.treeAdapter.getParentNode(openElement);\n\n if (location.parent) {\n location.beforeElement = openElement;\n } else {\n location.parent = this.openElements.items[i - 1];\n }\n\n break;\n }\n }\n\n if (!location.parent) {\n location.parent = this.openElements.items[0];\n }\n\n return location;\n }\n\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n } else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n\n _fosterParentText(chars) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n } else {\n this.treeAdapter.insertText(location.parent, chars);\n }\n }\n\n //Special elements\n _isSpecialElement(element) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n\n return HTML.SPECIAL_ELEMENTS[ns][tn];\n }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n } else if (!p.openElements.hasInScope(token.tagName)) {\n formattingElementEntry = null;\n }\n } else {\n genericEndTagInBody(p, token);\n }\n\n return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n\n if (element === formattingElementEntry.element) {\n break;\n }\n\n if (p._isSpecialElement(element)) {\n furthestBlock = element;\n }\n }\n\n if (!furthestBlock) {\n p.openElements.popUntilElementPopped(formattingElementEntry.element);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n\n return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n\n p.openElements.remove(element);\n } else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n\n return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n\n return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n if (p._isElementCausesFosterParenting(commonAncestor)) {\n p._fosterParentElement(lastElement);\n } else {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const token = formattingElementEntry.token;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n\n p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n let formattingElementEntry;\n\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n if (!formattingElementEntry) {\n break;\n }\n\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n if (!furthestBlock) {\n break;\n }\n\n p.activeFormattingElements.bookmark = formattingElementEntry;\n\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n p.treeAdapter.detachNode(lastElement);\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n\n const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n if (!doctype.isConforming(token)) {\n p._err(ERR.nonConformingDoctype);\n }\n\n p.treeAdapter.setDocumentMode(p.document, mode);\n\n p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n p._err(ERR.missingDoctype, { beforeToken: true });\n p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n p.insertionMode = BEFORE_HTML_MODE;\n p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagName === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = BEFORE_HEAD_MODE;\n } else {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = BEFORE_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.HEAD) {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n } else {\n tokenBeforeHead(p, token);\n }\n}\n\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement($.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TITLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n }\n } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else if (tn === $.SCRIPT) {\n p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n } else if (tn === $.TEMPLATE) {\n p._insertTemplate(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = IN_TEMPLATE_MODE;\n p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenInHead(p, token);\n }\n}\n\nfunction endTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n tokenInHead(p, token);\n } else if (tn === $.TEMPLATE) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n\n if (p.openElements.currentTagName !== $.TEMPLATE) {\n p._err(ERR.closingOfElementWithOpenChildElements);\n }\n\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.HEAD ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.STYLE\n ) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n p._err(ERR.nestedNoscriptInHead);\n } else {\n tokenInHeadNoScript(p, token);\n }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.NOSCRIPT) {\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n } else if (tn === $.BR) {\n tokenInHeadNoScript(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n const errCode =\n token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n p._err(errCode);\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BODY) {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_BODY_MODE;\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n } else if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n p._err(ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenAfterHead(p, token);\n }\n}\n\nfunction endTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenAfterHead(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement($.BODY);\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\n\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\n\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n }\n}\n\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n const tn = p.openElements.currentTagName;\n\n if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\n\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n const elementTn = p.treeAdapter.getTagName(element);\n let closeTn = null;\n\n if (tn === $.LI && elementTn === $.LI) {\n closeTn = $.LI;\n } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n closeTn = elementTn;\n }\n\n if (closeTn) {\n p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n p.openElements.popUntilTagNamePopped(closeTn);\n break;\n }\n\n if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n break;\n }\n }\n\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n if (\n p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n p.openElements.hasInButtonScope($.P)\n ) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n p.framesetOk = false;\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n token.tagName = $.IMG;\n areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = Tokenizer.MODE.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n\n if (\n p.insertionMode === IN_TABLE_MODE ||\n p.insertionMode === IN_CAPTION_MODE ||\n p.insertionMode === IN_TABLE_BODY_MODE ||\n p.insertionMode === IN_ROW_MODE ||\n p.insertionMode === IN_CELL_MODE\n ) {\n p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n } else {\n p.insertionMode = IN_SELECT_MODE;\n }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n } else {\n p._insertElement(token, NS.MATHML);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n } else {\n p._insertElement(token, NS.SVG);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n bStartTagInBody(p, token);\n } else if (tn === $.P) {\n addressStartTagInBody(p, token);\n } else if (tn === $.A) {\n aStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.OL || tn === $.UL) {\n addressStartTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderStartTagInBody(p, token);\n } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n listItemStartTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n bStartTagInBody(p, token);\n } else if (tn === $.BR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.HR) {\n hrStartTagInBody(p, token);\n } else if (tn === $.RB) {\n rbStartTagInBody(p, token);\n } else if (tn === $.RT || tn === $.RP) {\n rtStartTagInBody(p, token);\n } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n addressStartTagInBody(p, token);\n } else if (tn === $.PRE) {\n preStartTagInBody(p, token);\n } else if (tn === $.BIG) {\n bStartTagInBody(p, token);\n } else if (tn === $.IMG || tn === $.WBR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.XMP) {\n xmpStartTagInBody(p, token);\n } else if (tn === $.SVG) {\n svgStartTagInBody(p, token);\n } else if (tn === $.RTC) {\n rbStartTagInBody(p, token);\n } else if (tn !== $.COL) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n htmlStartTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n startTagInHead(p, token);\n } else if (tn === $.BODY) {\n bodyStartTagInBody(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressStartTagInBody(p, token);\n } else if (tn === $.FORM) {\n formStartTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT) {\n bStartTagInBody(p, token);\n } else if (tn === $.NOBR) {\n nobrStartTagInBody(p, token);\n } else if (tn === $.AREA) {\n areaStartTagInBody(p, token);\n } else if (tn === $.MATH) {\n mathStartTagInBody(p, token);\n } else if (tn === $.MENU) {\n menuStartTagInBody(p, token);\n } else if (tn !== $.HEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.STYLE || tn === $.TITLE) {\n startTagInHead(p, token);\n } else if (tn === $.ASIDE) {\n addressStartTagInBody(p, token);\n } else if (tn === $.SMALL) {\n bStartTagInBody(p, token);\n } else if (tn === $.TABLE) {\n tableStartTagInBody(p, token);\n } else if (tn === $.EMBED) {\n areaStartTagInBody(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInBody(p, token);\n } else if (tn === $.PARAM || tn === $.TRACK) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IMAGE) {\n imageStartTagInBody(p, token);\n } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.BUTTON) {\n buttonStartTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n bStartTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletStartTagInBody(p, token);\n } else if (tn === $.KEYGEN) {\n areaStartTagInBody(p, token);\n } else if (tn === $.SOURCE) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IFRAME) {\n iframeStartTagInBody(p, token);\n } else if (tn === $.SELECT) {\n selectStartTagInBody(p, token);\n } else if (tn === $.OPTION) {\n optgroupStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.BGSOUND) {\n startTagInHead(p, token);\n } else if (\n tn === $.DETAILS ||\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.SECTION ||\n tn === $.SUMMARY\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.LISTING) {\n preStartTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletStartTagInBody(p, token);\n } else if (tn === $.NOEMBED) {\n noembedStartTagInBody(p, token);\n } else if (tn !== $.CAPTION) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.BASEFONT) {\n startTagInHead(p, token);\n } else if (tn === $.FRAMESET) {\n framesetStartTagInBody(p, token);\n } else if (tn === $.FIELDSET) {\n addressStartTagInBody(p, token);\n } else if (tn === $.TEXTAREA) {\n textareaStartTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n } else if (tn === $.OPTGROUP) {\n optgroupStartTagInBody(p, token);\n } else if (tn !== $.COLGROUP) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 9:\n if (tn === $.PLAINTEXT) {\n plaintextStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n default:\n genericStartTagInBody(p, token);\n }\n}\n\nfunction bodyEndTagInBody(p) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n }\n}\n\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n p._processToken(token);\n }\n}\n\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const formElement = p.formElement;\n\n if (!inTemplate) {\n p.formElement = null;\n }\n\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n } else {\n p.openElements.remove(formElement);\n }\n }\n}\n\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement($.P);\n }\n\n p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\n\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\n\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\n\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement($.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getTagName(element) === tn) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilElementPopped(element);\n break;\n }\n\n if (p._isSpecialElement(element)) {\n break;\n }\n }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n callAdoptionAgency(p, token);\n } else if (tn === $.P) {\n pEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.UL || tn === $.OL) {\n addressEndTagInBody(p, token);\n } else if (tn === $.LI) {\n liEndTagInBody(p, token);\n } else if (tn === $.DD || tn === $.DT) {\n ddEndTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderEndTagInBody(p, token);\n } else if (tn === $.BR) {\n brEndTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.BIG) {\n callAdoptionAgency(p, token);\n } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.BODY) {\n bodyEndTagInBody(p, token);\n } else if (tn === $.HTML) {\n htmlEndTagInBody(p, token);\n } else if (tn === $.FORM) {\n formEndTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n callAdoptionAgency(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.ASIDE) {\n addressEndTagInBody(p, token);\n } else if (tn === $.SMALL) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletEndTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.DETAILS ||\n tn === $.SECTION ||\n tn === $.SUMMARY ||\n tn === $.LISTING\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.FIELDSET) {\n addressEndTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n default:\n genericEndTagInBody(p, token);\n }\n}\n\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStackTop > -1) {\n eofInTemplate(p, token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n if (token.tagName === $.SCRIPT) {\n p.pendingScript = p.openElements.current;\n }\n\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n p._err(ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n const curTn = p.openElements.currentTagName;\n\n if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n p.pendingCharacterTokens = [];\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = IN_TABLE_TEXT_MODE;\n p._processToken(token);\n } else {\n tokenInTable(p, token);\n }\n}\n\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.COLGROUP);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.TBODY);\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processToken(token);\n }\n}\n\nfunction inputStartTagInTable(p, token) {\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n p._appendElement(token, NS.HTML);\n } else {\n tokenInTable(p, token);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\n\nfunction startTagInTable(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH || tn === $.TR) {\n tdStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.COL) {\n colStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.FORM) {\n formStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n tableStartTagInTable(p, token);\n } else if (tn === $.STYLE) {\n startTagInHead(p, token);\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n tbodyStartTagInTable(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.CAPTION) {\n captionStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.COLGROUP) {\n colgroupStartTagInTable(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n default:\n tokenInTable(p, token);\n }\n}\n\nfunction endTagInTable(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (\n tn !== $.BODY &&\n tn !== $.CAPTION &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n tokenInTable(p, token);\n }\n}\n\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n\n p.fosterParentingEnabled = true;\n p._processTokenInBodyMode(token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n let i = 0;\n\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n } else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (tn === $.CAPTION || tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n\n if (tn === $.TABLE) {\n p._processToken(token);\n }\n }\n } else if (\n tn !== $.BODY &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.COL) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction endTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.COLGROUP) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (tn !== $.COL) {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_ROW_MODE;\n } else if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement($.TR);\n p.insertionMode = IN_ROW_MODE;\n p._processToken(token);\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD\n ) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CELL_MODE;\n p.activeFormattingElements.insertMarker();\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCell(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TD || tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_ROW_MODE;\n }\n } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.OPTGROUP) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n\n if (tn !== $.SELECT) {\n p._processToken(token);\n }\n }\n } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.OPTGROUP) {\n const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n startTagInSelect(p, token);\n }\n}\n\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n }\n } else {\n endTagInSelect(p, token);\n }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n startTagInHead(p, token);\n } else {\n const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n p._popTmplInsertionMode();\n p._pushTmplInsertionMode(newInsertionMode);\n p.insertionMode = newInsertionMode;\n p._processToken(token);\n }\n}\n\nfunction endTagInTemplate(p, token) {\n if (token.tagName === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction endTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = AFTER_AFTER_BODY_MODE;\n }\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction tokenAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n } else if (tn === $.FRAME) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInFrameset(p, token) {\n if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n\n if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n p.insertionMode = AFTER_FRAMESET_MODE;\n }\n }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagAfterFrameset(p, token) {\n if (token.tagName === $.HTML) {\n p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterAfterBody(p, token);\n }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token) && !p.fragmentContext) {\n while (\n p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.current)\n ) {\n p.openElements.pop();\n }\n\n p._processToken(token);\n } else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n } else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n } else {\n p._insertElement(token, currentNs);\n }\n\n token.ackSelfClosing = true;\n }\n}\n\nfunction endTagInForeignContent(p, token) {\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._processToken(token);\n break;\n }\n\n if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n p.openElements.popUntilElementPopped(element);\n break;\n }\n }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = stringify\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {}\n }\n\n return index(point.line) + ':' + index(point.column)\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {}\n }\n\n return point(pos.start) + '-' + point(pos.end)\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","'use strict'\n\nvar bail = require('bail')\nvar buffer = require('is-buffer')\nvar extend = require('extend')\nvar plain = require('is-plain-obj')\nvar trough = require('trough')\nvar vfile = require('vfile')\n\n// Expose a frozen processor.\nmodule.exports = unified().freeze()\n\nvar slice = [].slice\nvar own = {}.hasOwnProperty\n\n// Process pipeline.\nvar pipeline = trough()\n .use(pipelineParse)\n .use(pipelineRun)\n .use(pipelineStringify)\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file)\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done)\n\n function done(error, tree, file) {\n if (error) {\n next(error)\n } else {\n ctx.tree = tree\n ctx.file = file\n next()\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n if ('value' in ctx.file) {\n ctx.file.value = result\n }\n\n ctx.file.contents = result\n } else {\n ctx.file.result = result\n }\n}\n\n// Function to create the first processor.\nfunction unified() {\n var attachers = []\n var transformers = trough()\n var namespace = {}\n var freezeIndex = -1\n var frozen\n\n // Data management.\n processor.data = data\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n processor.run = run\n processor.runSync = runSync\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n function processor() {\n var destination = unified()\n var index = -1\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n function freeze() {\n var values\n var transformer\n\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex]\n\n if (values[1] === false) {\n continue\n }\n\n if (values[1] === true) {\n values[1] = undefined\n }\n\n transformer = values[0].apply(processor, values.slice(1))\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Infinity\n\n return processor\n }\n\n // Data management.\n // Getter / setter for processor-specific informtion.\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n function use(value) {\n var settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings)\n }\n\n return processor\n\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings)\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value)\n } else {\n addPreset(value)\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`')\n }\n }\n\n function addList(plugins) {\n var index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index])\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin)\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n attachers.push(slice.call(arguments))\n }\n }\n }\n\n function find(plugin) {\n var index = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index]\n }\n }\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n function parse(doc) {\n var file = vfile(doc)\n var Parser\n\n freeze()\n Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse()\n }\n\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n function run(node, file, cb) {\n assertNode(node)\n freeze()\n\n if (!cb && typeof file === 'function') {\n cb = file\n file = null\n }\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done)\n\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n cb(null, tree, file)\n }\n }\n }\n }\n\n // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n function runSync(node, file) {\n var result\n var complete\n\n run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n return result\n\n function done(error, tree) {\n complete = true\n result = tree\n bail(error)\n }\n }\n\n // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n function stringify(node, doc) {\n var file = vfile(doc)\n var Compiler\n\n freeze()\n Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile()\n }\n\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n function process(doc, cb) {\n freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!cb) {\n return new Promise(executor)\n }\n\n executor(null, cb)\n\n function executor(resolve, reject) {\n var file = vfile(doc)\n\n pipeline.run(processor, {file: file}, done)\n\n function done(error) {\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n cb(null, file)\n }\n }\n }\n }\n\n // Process the given document (in string or vfile representation), sync.\n function processSync(doc) {\n var file\n var complete\n\n freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n file = vfile(doc)\n\n process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n// Check if `value` is a constructor.\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n// Check if `value` is an object with keys.\nfunction keys(value) {\n var key\n for (key in value) {\n return true\n }\n\n return false\n}\n\n// Assert a parser is available.\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`')\n }\n}\n\n// Assert a compiler is available.\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n// Assert the processor is not frozen.\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot invoke `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n// Assert `node` is a unist node.\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`')\n }\n}\n\n// Assert that `complete` is `true`.\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n","'use strict'\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = own\n","'use strict'\n\n// Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1\n var size = 0\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1\n }\n\n return size\n}\n\nmodule.exports = sizeChunks\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar shallow = require('./shallow.js')\n\nfunction subtokenize(events) {\n var jumps = {}\n var index = -1\n var event\n var lineIndex\n var otherIndex\n var otherEvent\n var parameters\n var subevents\n var more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // 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\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1]\n var context = events[eventIndex][2]\n var startPosition = eventIndex - 1\n var startPositions = []\n var tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n var childEvents = tokenizer.events\n var jumps = []\n var gaps = {}\n var stream\n var previous\n var index\n var entered\n var end\n var adjust // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token)\n\n if (!token.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start)\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = token\n token = token.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n token = previous\n index = childEvents.length\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true\n } else if (\n // Find a void token that includes a break.\n entered &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n add(childEvents.slice(index + 1, end))\n // Help GC.\n token._tokenizer = token.next = undefined\n token = token.previous\n end = index + 1\n }\n }\n\n // Help GC.\n tokenizer.events = token._tokenizer = token.next = undefined // Do head:\n\n add(childEvents.slice(0, end))\n index = -1\n adjust = 0\n\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\n return gaps\n\n function add(slice) {\n var start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n chunkedSplice(events, start, 2, slice)\n }\n}\n\nmodule.exports = subtokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar assign = require('../constant/assign.js')\nvar shallow = require('../util/shallow.js')\n\nvar text = initializeFactory('text')\nvar string = initializeFactory('string')\nvar resolver = {\n resolveAll: createResolver()\n}\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n function initializeText(effects) {\n var self = this\n var constructs = this.parser.constructs[field]\n var text = effects.attempt(constructs, start, notText)\n return start\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function atBreak(code) {\n var list = constructs[code]\n var index = -1\n\n if (code === null) {\n return true\n }\n\n if (list) {\n while (++index < list.length) {\n if (\n !list[index].previous ||\n list[index].previous.call(self, self.previous)\n ) {\n return true\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n function resolveAllText(events, context) {\n var index = -1\n var enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\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\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\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\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1\n var chunks\n var data\n var chunk\n var index\n var bufferIndex\n var size\n var tabs\n var token\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n data = events[eventIndex - 1][1]\n chunks = context.sliceStream(data)\n index = chunks.length\n bufferIndex = -1\n size = 0\n tabs = undefined\n\n while (index--) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1);\n else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n }\n data.end = shallow(token.start)\n\n if (data.start.offset === data.end.offset) {\n assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n\nexports.resolver = resolver\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar hasOwnProperty = require('../constant/has-own-property.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\n\nfunction combineExtensions(extensions) {\n var all = {}\n var index = -1\n\n while (++index < extensions.length) {\n extension(all, extensions[index])\n }\n\n return all\n}\n\nfunction extension(all, extension) {\n var hook\n var left\n var right\n var code\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : (all[hook] = {})\n right = extension[hook]\n\n for (code in right) {\n left[code] = constructs(\n miniflat(right[code]),\n hasOwnProperty.call(left, code) ? left[code] : []\n )\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1\n var before = []\n\n while (++index < list.length) {\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n chunkedSplice(existing, 0, 0, before)\n return existing\n}\n\nmodule.exports = combineExtensions\n","'use strict'\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar unicodePunctuation = require('../character/unicode-punctuation.js')\nvar unicodeWhitespace = require('../character/unicode-whitespace.js')\n\n// Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\nfunction classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n\nmodule.exports = classifyCharacter\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiDigit = regexCheck(/\\d/)\n\nmodule.exports = asciiDigit\n","'use strict'\n\nvar asciiControl = require('../character/ascii-control.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\n// eslint-disable-next-line max-params\nfunction destinationFactory(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n var limit = max || Infinity\n var balance = 0\n return start\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 destinationEnclosedBefore\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n\n function destinationEnclosedBefore(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\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n\nmodule.exports = destinationFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\n\n// eslint-disable-next-line max-params\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this\n var size = 0\n var data\n return start\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 function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* c8 ignore next */\n (code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\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 if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n\nmodule.exports = labelFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction whitespaceFactory(effects, ok) {\n var seen\n return start\n\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\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = whitespaceFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('./factory-space.js')\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker\n return start\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n\n function atFirstTitleBreak(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\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n\nmodule.exports = titleFactory\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n\nmodule.exports = thematicBreak\n","'use strict'\n\nmodule.exports = visitParents\n\nvar convert = require('unist-util-is/convert')\nvar color = require('./color')\n\nvar CONTINUE = true\nvar SKIP = 'skip'\nvar EXIT = false\n\nvisitParents.CONTINUE = CONTINUE\nvisitParents.SKIP = SKIP\nvisitParents.EXIT = EXIT\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step\n var is\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n is = convert(test)\n step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {}\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n visit.displayName =\n 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')'\n }\n\n return visit\n\n function visit() {\n var grandparents = parents.concat(node)\n var result = []\n var subresult\n var offset\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], 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 return result\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","'use strict'\n\nvar start = factory('start')\nvar end = factory('end')\n\nmodule.exports = position\n\nposition.start = start\nposition.end = end\n\nfunction position(node) {\n return {start: start(node), end: end(node)}\n}\n\nfunction factory(type) {\n point.displayName = type\n\n return point\n\n function point(node) {\n var point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: isNaN(point.offset) ? null : point.offset\n }\n }\n}\n","'use strict'\n\nmodule.exports = one\n\nvar u = require('unist-builder')\nvar all = require('./all')\n\nvar own = {}.hasOwnProperty\n\n// Transform an unknown node.\nfunction unknown(h, node) {\n if (text(node)) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n// Visit a node.\nfunction one(h, node, parent) {\n var type = node && node.type\n var fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.indexOf(type) > -1) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n// Check if the node should be renderered as a text node.\nfunction text(node) {\n var data = node.data || {}\n\n if (\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n ) {\n return false\n }\n\n return 'value' in node\n}\n\nfunction returnNode(h, node) {\n var clone\n\n if (node.children) {\n clone = Object.assign({}, node)\n clone.children = all(h, node)\n return clone\n }\n\n return node\n}\n","'use strict'\n\nmodule.exports = thematicBreak\n\nfunction thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","'use strict'\n\nmodule.exports = list\n\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction list(h, node) {\n var props = {}\n var name = node.ordered ? 'ol' : 'ul'\n var items\n var index = -1\n var length\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n items = all(h, node)\n length = items.length\n\n // Like GitHub, add a class for custom styling.\n while (++index < length) {\n if (\n items[index].properties.className &&\n items[index].properties.className.indexOf('task-list-item') !== -1\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","'use strict'\n\nmodule.exports = footnoteReference\n\nvar u = require('unist-builder')\n\nfunction footnoteReference(h, node) {\n var footnoteOrder = h.footnoteOrder\n var identifier = String(node.identifier)\n\n if (footnoteOrder.indexOf(identifier) === -1) {\n footnoteOrder.push(identifier)\n }\n\n return h(node.position, 'sup', {id: 'fnref-' + identifier}, [\n h(node, 'a', {href: '#fn-' + identifier, className: ['footnote-ref']}, [\n u('text', node.label || identifier)\n ])\n ])\n}\n","'use strict'\n\nmodule.exports = revert\n\nvar u = require('unist-builder')\nvar all = require('./all')\n\n// Return the content of a reference without definition as Markdown.\nfunction revert(h, node) {\n var subtype = node.referenceType\n var suffix = ']'\n var contents\n var head\n var tail\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 u('text', '![' + node.alt + suffix)\n }\n\n contents = all(h, node)\n head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\n }\n\n tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push(u('text', suffix))\n }\n\n return contents\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\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})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\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})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n","module.exports = phrasing\n\nfunction phrasing(parent, context, safeOptions) {\n var children = parent.children || []\n var results = []\n var index = -1\n var before = safeOptions.before\n var after\n var handle\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n if (index + 1 < children.length) {\n handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: ''\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n }\n\n results.push(\n context.handle(child, parent, context, {\n before: before,\n after: after\n })\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n return results.join('')\n}\n","module.exports = patternCompile\n\nfunction patternCompile(pattern) {\n var before\n var after\n\n if (!pattern._compiled) {\n before = pattern.before ? '(?:' + pattern.before + ')' : ''\n after = pattern.after ? '(?:' + pattern.after + ')' : ''\n\n if (pattern.atBreak) {\n before = '[\\\\r\\\\n][\\\\t ]*' + before\n }\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (after || ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n constructor(tokenizer) {\n super(tokenizer);\n\n this.tokenizer = tokenizer;\n this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n this.currentAttrLocation = null;\n this.ctLoc = null;\n }\n\n _getCurrentLocation() {\n return {\n startLine: this.posTracker.line,\n startCol: this.posTracker.col,\n startOffset: this.posTracker.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n }\n\n _attachCurrentAttrLocationInfo() {\n this.currentAttrLocation.endLine = this.posTracker.line;\n this.currentAttrLocation.endCol = this.posTracker.col;\n this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n const currentToken = this.tokenizer.currentToken;\n const currentAttr = this.tokenizer.currentAttr;\n\n if (!currentToken.location.attrs) {\n currentToken.location.attrs = Object.create(null);\n }\n\n currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n }\n\n _getOverriddenMethods(mxn, orig) {\n const methods = {\n _createStartTagToken() {\n orig._createStartTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createEndTagToken() {\n orig._createEndTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCommentToken() {\n orig._createCommentToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createDoctypeToken(initialName) {\n orig._createDoctypeToken.call(this, initialName);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCharacterToken(type, ch) {\n orig._createCharacterToken.call(this, type, ch);\n this.currentCharacterToken.location = mxn.ctLoc;\n },\n\n _createEOFToken() {\n orig._createEOFToken.call(this);\n this.currentToken.location = mxn._getCurrentLocation();\n },\n\n _createAttr(attrNameFirstCh) {\n orig._createAttr.call(this, attrNameFirstCh);\n mxn.currentAttrLocation = mxn._getCurrentLocation();\n },\n\n _leaveAttrName(toState) {\n orig._leaveAttrName.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _leaveAttrValue(toState) {\n orig._leaveAttrValue.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _emitCurrentToken() {\n const ctLoc = this.currentToken.location;\n\n //NOTE: if we have pending character token make it's end location equal to the\n //current token's start location.\n if (this.currentCharacterToken) {\n this.currentCharacterToken.location.endLine = ctLoc.startLine;\n this.currentCharacterToken.location.endCol = ctLoc.startCol;\n this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n }\n\n if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n ctLoc.endLine = ctLoc.startLine;\n ctLoc.endCol = ctLoc.startCol;\n ctLoc.endOffset = ctLoc.startOffset;\n } else {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col + 1;\n ctLoc.endOffset = mxn.posTracker.offset + 1;\n }\n\n orig._emitCurrentToken.call(this);\n },\n\n _emitCurrentCharacterToken() {\n const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n //then set it's location at the current preprocessor position.\n //We don't need to increment preprocessor position, since character token\n //emission is always forced by the start of the next character token here.\n //So, we already have advanced position.\n if (ctLoc && ctLoc.endOffset === -1) {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col;\n ctLoc.endOffset = mxn.posTracker.offset;\n }\n\n orig._emitCurrentCharacterToken.call(this);\n }\n };\n\n //NOTE: patch initial states for each mode to obtain token start position\n Object.keys(Tokenizer.MODE).forEach(modeName => {\n const state = Tokenizer.MODE[modeName];\n\n methods[state] = function(cp) {\n mxn.ctLoc = mxn._getCurrentLocation();\n orig[state].call(this, cp);\n };\n });\n\n return methods;\n }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n constructor(preprocessor) {\n super(preprocessor);\n\n this.preprocessor = preprocessor;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n\n this.offset = 0;\n this.col = 0;\n this.line = 1;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n advance() {\n const pos = this.pos + 1;\n const ch = this.html[pos];\n\n //NOTE: LF should be in the last column of the line\n if (mxn.isEol) {\n mxn.isEol = false;\n mxn.line++;\n mxn.lineStartPos = pos;\n }\n\n if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n mxn.isEol = true;\n }\n\n mxn.col = pos - mxn.lineStartPos + 1;\n mxn.offset = mxn.droppedBufferSize + pos;\n\n return orig.advance.call(this);\n },\n\n retreat() {\n orig.retreat.call(this);\n\n mxn.isEol = false;\n mxn.col = this.pos - mxn.lineStartPos + 1;\n },\n\n dropParsedChunk() {\n const prevPos = this.pos;\n\n orig.dropParsedChunk.call(this);\n\n const reduction = prevPos - this.pos;\n\n mxn.lineStartPos -= reduction;\n mxn.droppedBufferSize += reduction;\n mxn.offset = mxn.droppedBufferSize + this.pos;\n }\n };\n }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","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}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction 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 }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\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}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/\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+(?=\\+?=)/,\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 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 }, // 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 }, // “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|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|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|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|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|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|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|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|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;|&]|[<>]\\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\\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;|&]|[<>]\\()(?:\\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\\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;|&]|[<>]\\()(?:true|false)(?=$|[)\\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 /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\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.shell = Prism.languages.bash\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction 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 +\\-.])*\"/i,\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|SHARED|SINGLE|SELECT CASE|SHELL|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","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\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 * @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>\\/]*/i\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/i\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 inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n },\n alias: 'language-javascript'\n }\n },\n Prism.languages.jsx.tag\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 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) // 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","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction 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(?:true|false)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:graph|base|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","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction 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: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/i,\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|CDEC|CDBL|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|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|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|LINE INPUT|LET|LIB|LIKE|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)?|OPERATOR|OPEN|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|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|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","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction 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[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // 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 ')?)' // 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 * @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(/true|false/.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","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/objectSpread2\"));\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/slicedToArray\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _ansiToReact = _interopRequireDefault(require(\"ansi-to-react\"));\n\nvar _reactMarkdown = _interopRequireDefault(require(\"react-markdown\"));\n\nvar _remarkGfm = _interopRequireDefault(require(\"remark-gfm\"));\n\nvar _remarkMath = _interopRequireDefault(require(\"remark-math\"));\n\nvar _rehypeKatex = _interopRequireDefault(require(\"rehype-katex\"));\n\nrequire(\"katex/dist/katex.min.css\");\n\nvar _reactSyntaxHighlighter = _interopRequireDefault(require(\"react-syntax-highlighter\"));\n\nrequire(\"./JupyterViewer.scss\");\n\nvar _hljsStyles = _interopRequireDefault(require(\"./hljsStyles\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction BlockSource(props) {\n var metadata = props.cell['metadata'];\n var source = props.cell['source'];\n var type = props.cell['cell_type'];\n\n var _useState = (0, _react.useState)({\n prevDisplay: 1,\n display: 1,\n contentHeight: 0\n }),\n _useState2 = (0, _slicedToArray2.default)(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n if (props.display !== state.prevDisplay) {\n var newDisplay = props.display;\n\n if (newDisplay === -1) {\n if (metadata['jupyter'] !== undefined && metadata['jupyter']['source_hidden']) {\n newDisplay = 0;\n }\n }\n\n setState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n prevDisplay: props.display,\n display: newDisplay\n }));\n }\n\n var htmlContent;\n var executionCount;\n\n if (type === 'code') {\n executionCount = props.cell['execution_count']; // SyntaxHighlighter originally doesn't separate the line numbers and the codes.\n // The first SyntaxHighlighter is used to show line numbers only and the second is to show codes only.\n\n var _ref = props.codeBlockStyles ? props.codeBlockStyles : {},\n hljsStyle = _ref.hljsStyle,\n lineNumberContainerStyle = _ref.lineNumberContainerStyle,\n lineNumberStyle = _ref.lineNumberStyle,\n codeContainerStyle = _ref.codeContainerStyle;\n\n htmlContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"cell-content source-code\"\n }, !props.showLineNumbers ? null : /*#__PURE__*/_react.default.createElement(_reactSyntaxHighlighter.default, {\n language: props.language,\n style: hljsStyle ? _hljsStyles.default[hljsStyle] : _hljsStyles.default.vs,\n codeTagProps: {\n style: {\n fontFamily: \"Menlo, Consolas, 'DejaVu Sans Mono', monospace\",\n fontSize: \"13px\"\n }\n },\n customStyle: hljsStyle ? lineNumberContainerStyle : {\n width: \"37px\",\n margin: \"0 0 0 0\",\n padding: \"5px 0 5px 0\",\n boxSizing: \"border-box\",\n background: \"#EEEEEE\",\n border: \"solid 1px #E0E0E0\",\n overflow: \"hidden\"\n },\n showLineNumbers: true,\n lineNumberStyle: hljsStyle ? lineNumberStyle : {\n width: \"37px\",\n padding: \"0 8px 0 8px\",\n boxSizing: \"border-box\",\n color: \"#999999\"\n }\n }, source.map(function (item, index) {\n return index === 0 ? ' ' : '\\n';\n }).join('')), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"source-code-main\"\n }, /*#__PURE__*/_react.default.createElement(_reactSyntaxHighlighter.default, {\n language: props.language,\n style: hljsStyle ? _hljsStyles.default[hljsStyle] : _hljsStyles.default.vs,\n codeTagProps: {\n style: {\n fontFamily: \"Menlo, Consolas, 'DejaVu Sans Mono', monospace\",\n fontSize: \"13px\"\n }\n },\n customStyle: hljsStyle ? codeContainerStyle : {\n margin: \"0 0 0 0\",\n padding: \"5px 4px 5px 4px\",\n boxSizing: \"border-box\",\n background: \"#F5F5F5\",\n border: \"solid 1px #E0E0E0\",\n flex: 1\n }\n }, source.join(''))));\n } else if (type === 'markdown') {\n // '$$' has to be in a separate new line to be rendered as a block math equation.\n var re = /\\n?\\s*\\$\\$\\s*\\n?/g;\n var newSource = source.join('').replaceAll(re, \"\\n$$$\\n\");\n htmlContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"cell-content source-markdown\"\n }, /*#__PURE__*/_react.default.createElement(_reactMarkdown.default, {\n remarkPlugins: [_remarkGfm.default, _remarkMath.default],\n rehypePlugins: [_rehypeKatex.default]\n }, newSource));\n } else {\n htmlContent = /*#__PURE__*/_react.default.createElement(\"div\", null, \"Cell Type \".concat(type, \" not supported...\"));\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"block-source\"\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: props.highlighted ? \"block-light-selected\" : \"block-light\",\n onClick: function onClick() {\n setState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n display: (state.display + 1) % 2\n }));\n }\n }), state.display === 0 ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"block-hidden\"\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"cell-row\"\n }, /*#__PURE__*/_react.default.createElement(\"pre\", {\n className: \"cell-header source\"\n }, executionCount ? \"[\".concat(executionCount, \"]: \") : null), htmlContent));\n}\n\nfunction BlockOutput(props) {\n var metadata = props.cell['metadata'];\n var outputs = props.cell['outputs'];\n\n var _useState3 = (0, _react.useState)({\n highlighted: false,\n prevDisplay: 1,\n display: 1,\n contentHeight: 0\n }),\n _useState4 = (0, _slicedToArray2.default)(_useState3, 2),\n state = _useState4[0],\n setState = _useState4[1];\n\n var contentRef = (0, _react.useCallback)(function (node) {\n if (node) {\n setState(function (state) {\n return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n contentHeight: node.offsetHeight\n });\n });\n }\n }, []);\n\n if (props.display !== state.prevDisplay) {\n var newDisplay = props.display;\n\n if (newDisplay === -1) {\n if (metadata['collapsed'] || metadata['jupyter'] !== undefined && metadata['jupyter']['outputs_hidden']) {\n newDisplay = 0;\n } else if (metadata['scrolled']) {\n newDisplay = 2;\n }\n }\n\n setState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n prevDisplay: props.display,\n display: newDisplay\n }));\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"block-output\"\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: props.highlighted ? \"block-light-selected\" : \"block-light\",\n onClick: function onClick() {\n setState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n display: (state.display + 1) % 3\n }));\n }\n }), state.display === 0 ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"block-hidden\"\n }) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"block-output-content\",\n style: state.display === 2 ? {\n maxHeight: state.contentHeight,\n height: 200,\n boxShadow: \"inset 0 0 6px 2px rgb(0 0 0 / 30%)\",\n resize: \"vertical\"\n } : null\n }, /*#__PURE__*/_react.default.createElement(\"div\", {\n ref: contentRef\n }, outputs.map(function (output, index) {\n var executionCount;\n var htmlContent;\n\n if ('output_type' in output) {\n var output_type = output['output_type'];\n\n switch (output_type) {\n // Stdout and stderr\n case 'stream':\n htmlContent = /*#__PURE__*/_react.default.createElement(\"pre\", {\n className: \"cell-content \".concat(output['name'] === 'stdout' ? 'output-std' : 'output-err')\n }, output['text'].join(''));\n break;\n // Output with execution_count\n\n case 'execute_result':\n executionCount = output['execution_count'];\n // Output without execution_count\n\n case 'display_data':\n var output_data = output['data'];\n\n if ('image/png' in output_data) {\n var output_metadata = output['metadata'];\n var size = output_metadata && output_metadata['image/png'];\n htmlContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"cell-content output-display\",\n style: {\n justifyContent: props.mediaAlign\n }\n }, /*#__PURE__*/_react.default.createElement(\"img\", {\n src: \"data:image/png;base64,\".concat(output_data['image/png']),\n width: size ? size['width'] : 'auto',\n height: size ? size['height'] : 'auto',\n alt: \"\"\n }));\n } else if ('text/html' in output_data) {\n htmlContent = /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"cell-content output-display\",\n style: {\n justifyContent: props.mediaAlign\n },\n dangerouslySetInnerHTML: {\n __html: output_data['text/html'].join('')\n }\n });\n } else if ('text/plain' in output_data) {\n htmlContent = /*#__PURE__*/_react.default.createElement(\"pre\", {\n className: \"cell-content output-std\"\n }, output_data['text/plain'].join(''));\n }\n\n break;\n // Exceptions\n\n case 'error':\n var output_traceback = output['traceback'].join('\\n');\n htmlContent = /*#__PURE__*/_react.default.createElement(\"pre\", {\n className: \"cell-content output-err\"\n }, /*#__PURE__*/_react.default.createElement(_ansiToReact.default, null, output_traceback));\n break;\n\n default:\n console.log('Unexpected output_type: ', output_type);\n }\n }\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: index,\n className: \"cell-row\"\n }, /*#__PURE__*/_react.default.createElement(\"pre\", {\n className: \"cell-header output\"\n }, executionCount ? \"[\".concat(executionCount, \"]: \") : null), htmlContent);\n }))));\n}\n\nfunction JupyterViewer(props) {\n // -1: auto, 0: hide, 1: show, 2: scroll\n var DISPLAYS = ['hide', 'show', 'scroll'];\n\n var _useState5 = (0, _react.useState)({\n clickCellIndex: -1\n }),\n _useState6 = (0, _slicedToArray2.default)(_useState5, 2),\n state = _useState6[0],\n setState = _useState6[1];\n\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: \"jupyter-viewer\"\n }, props.rawIpynb['cells'].map(function (cell, index) {\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n key: index,\n className: \"block\",\n onMouseDown: function onMouseDown() {\n setState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {\n clickCellIndex: index\n }));\n }\n }, !('cell_type' in cell) ? null : /*#__PURE__*/_react.default.createElement(BlockSource, {\n cell: cell,\n language: props.language,\n highlighted: state.clickCellIndex === index,\n display: DISPLAYS.indexOf(props.displaySource),\n showLineNumbers: props.showLineNumbers,\n codeBlockStyles: props.codeBlockStyles\n }), !('outputs' in cell) ? null : /*#__PURE__*/_react.default.createElement(BlockOutput, {\n cell: cell,\n highlighted: state.clickCellIndex === index,\n display: DISPLAYS.indexOf(props.displayOutput),\n mediaAlign: {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end'\n }[props.mediaAlign]\n }));\n }));\n}\n\nJupyterViewer.defaultProps = {\n language: 'python',\n showLineNumbers: true,\n mediaAlign: 'center',\n displaySource: 'auto',\n displayOutput: 'auto',\n codeBlockStyles: undefined\n};\nvar _default = JupyterViewer;\nexports.default = _default;","'use strict'\n\nvar low = require('./lib/core.js')\n\nmodule.exports = low\n\nlow.registerLanguage('1c', require('highlight.js/lib/languages/1c'))\nlow.registerLanguage('abnf', require('highlight.js/lib/languages/abnf'))\nlow.registerLanguage(\n 'accesslog',\n require('highlight.js/lib/languages/accesslog')\n)\nlow.registerLanguage(\n 'actionscript',\n require('highlight.js/lib/languages/actionscript')\n)\nlow.registerLanguage('ada', require('highlight.js/lib/languages/ada'))\nlow.registerLanguage(\n 'angelscript',\n require('highlight.js/lib/languages/angelscript')\n)\nlow.registerLanguage('apache', require('highlight.js/lib/languages/apache'))\nlow.registerLanguage(\n 'applescript',\n require('highlight.js/lib/languages/applescript')\n)\nlow.registerLanguage('arcade', require('highlight.js/lib/languages/arcade'))\nlow.registerLanguage('arduino', require('highlight.js/lib/languages/arduino'))\nlow.registerLanguage('armasm', require('highlight.js/lib/languages/armasm'))\nlow.registerLanguage('xml', require('highlight.js/lib/languages/xml'))\nlow.registerLanguage('asciidoc', require('highlight.js/lib/languages/asciidoc'))\nlow.registerLanguage('aspectj', require('highlight.js/lib/languages/aspectj'))\nlow.registerLanguage(\n 'autohotkey',\n require('highlight.js/lib/languages/autohotkey')\n)\nlow.registerLanguage('autoit', require('highlight.js/lib/languages/autoit'))\nlow.registerLanguage('avrasm', require('highlight.js/lib/languages/avrasm'))\nlow.registerLanguage('awk', require('highlight.js/lib/languages/awk'))\nlow.registerLanguage('axapta', require('highlight.js/lib/languages/axapta'))\nlow.registerLanguage('bash', require('highlight.js/lib/languages/bash'))\nlow.registerLanguage('basic', require('highlight.js/lib/languages/basic'))\nlow.registerLanguage('bnf', require('highlight.js/lib/languages/bnf'))\nlow.registerLanguage(\n 'brainfuck',\n require('highlight.js/lib/languages/brainfuck')\n)\nlow.registerLanguage('c-like', require('highlight.js/lib/languages/c-like'))\nlow.registerLanguage('c', require('highlight.js/lib/languages/c'))\nlow.registerLanguage('cal', require('highlight.js/lib/languages/cal'))\nlow.registerLanguage(\n 'capnproto',\n require('highlight.js/lib/languages/capnproto')\n)\nlow.registerLanguage('ceylon', require('highlight.js/lib/languages/ceylon'))\nlow.registerLanguage('clean', require('highlight.js/lib/languages/clean'))\nlow.registerLanguage('clojure', require('highlight.js/lib/languages/clojure'))\nlow.registerLanguage(\n 'clojure-repl',\n require('highlight.js/lib/languages/clojure-repl')\n)\nlow.registerLanguage('cmake', require('highlight.js/lib/languages/cmake'))\nlow.registerLanguage(\n 'coffeescript',\n require('highlight.js/lib/languages/coffeescript')\n)\nlow.registerLanguage('coq', require('highlight.js/lib/languages/coq'))\nlow.registerLanguage('cos', require('highlight.js/lib/languages/cos'))\nlow.registerLanguage('cpp', require('highlight.js/lib/languages/cpp'))\nlow.registerLanguage('crmsh', require('highlight.js/lib/languages/crmsh'))\nlow.registerLanguage('crystal', require('highlight.js/lib/languages/crystal'))\nlow.registerLanguage('csharp', require('highlight.js/lib/languages/csharp'))\nlow.registerLanguage('csp', require('highlight.js/lib/languages/csp'))\nlow.registerLanguage('css', require('highlight.js/lib/languages/css'))\nlow.registerLanguage('d', require('highlight.js/lib/languages/d'))\nlow.registerLanguage('markdown', require('highlight.js/lib/languages/markdown'))\nlow.registerLanguage('dart', require('highlight.js/lib/languages/dart'))\nlow.registerLanguage('delphi', require('highlight.js/lib/languages/delphi'))\nlow.registerLanguage('diff', require('highlight.js/lib/languages/diff'))\nlow.registerLanguage('django', require('highlight.js/lib/languages/django'))\nlow.registerLanguage('dns', require('highlight.js/lib/languages/dns'))\nlow.registerLanguage(\n 'dockerfile',\n require('highlight.js/lib/languages/dockerfile')\n)\nlow.registerLanguage('dos', require('highlight.js/lib/languages/dos'))\nlow.registerLanguage('dsconfig', require('highlight.js/lib/languages/dsconfig'))\nlow.registerLanguage('dts', require('highlight.js/lib/languages/dts'))\nlow.registerLanguage('dust', require('highlight.js/lib/languages/dust'))\nlow.registerLanguage('ebnf', require('highlight.js/lib/languages/ebnf'))\nlow.registerLanguage('elixir', require('highlight.js/lib/languages/elixir'))\nlow.registerLanguage('elm', require('highlight.js/lib/languages/elm'))\nlow.registerLanguage('ruby', require('highlight.js/lib/languages/ruby'))\nlow.registerLanguage('erb', require('highlight.js/lib/languages/erb'))\nlow.registerLanguage(\n 'erlang-repl',\n require('highlight.js/lib/languages/erlang-repl')\n)\nlow.registerLanguage('erlang', require('highlight.js/lib/languages/erlang'))\nlow.registerLanguage('excel', require('highlight.js/lib/languages/excel'))\nlow.registerLanguage('fix', require('highlight.js/lib/languages/fix'))\nlow.registerLanguage('flix', require('highlight.js/lib/languages/flix'))\nlow.registerLanguage('fortran', require('highlight.js/lib/languages/fortran'))\nlow.registerLanguage('fsharp', require('highlight.js/lib/languages/fsharp'))\nlow.registerLanguage('gams', require('highlight.js/lib/languages/gams'))\nlow.registerLanguage('gauss', require('highlight.js/lib/languages/gauss'))\nlow.registerLanguage('gcode', require('highlight.js/lib/languages/gcode'))\nlow.registerLanguage('gherkin', require('highlight.js/lib/languages/gherkin'))\nlow.registerLanguage('glsl', require('highlight.js/lib/languages/glsl'))\nlow.registerLanguage('gml', require('highlight.js/lib/languages/gml'))\nlow.registerLanguage('go', require('highlight.js/lib/languages/go'))\nlow.registerLanguage('golo', require('highlight.js/lib/languages/golo'))\nlow.registerLanguage('gradle', require('highlight.js/lib/languages/gradle'))\nlow.registerLanguage('groovy', require('highlight.js/lib/languages/groovy'))\nlow.registerLanguage('haml', require('highlight.js/lib/languages/haml'))\nlow.registerLanguage(\n 'handlebars',\n require('highlight.js/lib/languages/handlebars')\n)\nlow.registerLanguage('haskell', require('highlight.js/lib/languages/haskell'))\nlow.registerLanguage('haxe', require('highlight.js/lib/languages/haxe'))\nlow.registerLanguage('hsp', require('highlight.js/lib/languages/hsp'))\nlow.registerLanguage('htmlbars', require('highlight.js/lib/languages/htmlbars'))\nlow.registerLanguage('http', require('highlight.js/lib/languages/http'))\nlow.registerLanguage('hy', require('highlight.js/lib/languages/hy'))\nlow.registerLanguage('inform7', require('highlight.js/lib/languages/inform7'))\nlow.registerLanguage('ini', require('highlight.js/lib/languages/ini'))\nlow.registerLanguage('irpf90', require('highlight.js/lib/languages/irpf90'))\nlow.registerLanguage('isbl', require('highlight.js/lib/languages/isbl'))\nlow.registerLanguage('java', require('highlight.js/lib/languages/java'))\nlow.registerLanguage(\n 'javascript',\n require('highlight.js/lib/languages/javascript')\n)\nlow.registerLanguage(\n 'jboss-cli',\n require('highlight.js/lib/languages/jboss-cli')\n)\nlow.registerLanguage('json', require('highlight.js/lib/languages/json'))\nlow.registerLanguage('julia', require('highlight.js/lib/languages/julia'))\nlow.registerLanguage(\n 'julia-repl',\n require('highlight.js/lib/languages/julia-repl')\n)\nlow.registerLanguage('kotlin', require('highlight.js/lib/languages/kotlin'))\nlow.registerLanguage('lasso', require('highlight.js/lib/languages/lasso'))\nlow.registerLanguage('latex', require('highlight.js/lib/languages/latex'))\nlow.registerLanguage('ldif', require('highlight.js/lib/languages/ldif'))\nlow.registerLanguage('leaf', require('highlight.js/lib/languages/leaf'))\nlow.registerLanguage('less', require('highlight.js/lib/languages/less'))\nlow.registerLanguage('lisp', require('highlight.js/lib/languages/lisp'))\nlow.registerLanguage(\n 'livecodeserver',\n require('highlight.js/lib/languages/livecodeserver')\n)\nlow.registerLanguage(\n 'livescript',\n require('highlight.js/lib/languages/livescript')\n)\nlow.registerLanguage('llvm', require('highlight.js/lib/languages/llvm'))\nlow.registerLanguage('lsl', require('highlight.js/lib/languages/lsl'))\nlow.registerLanguage('lua', require('highlight.js/lib/languages/lua'))\nlow.registerLanguage('makefile', require('highlight.js/lib/languages/makefile'))\nlow.registerLanguage(\n 'mathematica',\n require('highlight.js/lib/languages/mathematica')\n)\nlow.registerLanguage('matlab', require('highlight.js/lib/languages/matlab'))\nlow.registerLanguage('maxima', require('highlight.js/lib/languages/maxima'))\nlow.registerLanguage('mel', require('highlight.js/lib/languages/mel'))\nlow.registerLanguage('mercury', require('highlight.js/lib/languages/mercury'))\nlow.registerLanguage('mipsasm', require('highlight.js/lib/languages/mipsasm'))\nlow.registerLanguage('mizar', require('highlight.js/lib/languages/mizar'))\nlow.registerLanguage('perl', require('highlight.js/lib/languages/perl'))\nlow.registerLanguage(\n 'mojolicious',\n require('highlight.js/lib/languages/mojolicious')\n)\nlow.registerLanguage('monkey', require('highlight.js/lib/languages/monkey'))\nlow.registerLanguage(\n 'moonscript',\n require('highlight.js/lib/languages/moonscript')\n)\nlow.registerLanguage('n1ql', require('highlight.js/lib/languages/n1ql'))\nlow.registerLanguage('nginx', require('highlight.js/lib/languages/nginx'))\nlow.registerLanguage('nim', require('highlight.js/lib/languages/nim'))\nlow.registerLanguage('nix', require('highlight.js/lib/languages/nix'))\nlow.registerLanguage(\n 'node-repl',\n require('highlight.js/lib/languages/node-repl')\n)\nlow.registerLanguage('nsis', require('highlight.js/lib/languages/nsis'))\nlow.registerLanguage(\n 'objectivec',\n require('highlight.js/lib/languages/objectivec')\n)\nlow.registerLanguage('ocaml', require('highlight.js/lib/languages/ocaml'))\nlow.registerLanguage('openscad', require('highlight.js/lib/languages/openscad'))\nlow.registerLanguage('oxygene', require('highlight.js/lib/languages/oxygene'))\nlow.registerLanguage('parser3', require('highlight.js/lib/languages/parser3'))\nlow.registerLanguage('pf', require('highlight.js/lib/languages/pf'))\nlow.registerLanguage('pgsql', require('highlight.js/lib/languages/pgsql'))\nlow.registerLanguage('php', require('highlight.js/lib/languages/php'))\nlow.registerLanguage(\n 'php-template',\n require('highlight.js/lib/languages/php-template')\n)\nlow.registerLanguage(\n 'plaintext',\n require('highlight.js/lib/languages/plaintext')\n)\nlow.registerLanguage('pony', require('highlight.js/lib/languages/pony'))\nlow.registerLanguage(\n 'powershell',\n require('highlight.js/lib/languages/powershell')\n)\nlow.registerLanguage(\n 'processing',\n require('highlight.js/lib/languages/processing')\n)\nlow.registerLanguage('profile', require('highlight.js/lib/languages/profile'))\nlow.registerLanguage('prolog', require('highlight.js/lib/languages/prolog'))\nlow.registerLanguage(\n 'properties',\n require('highlight.js/lib/languages/properties')\n)\nlow.registerLanguage('protobuf', require('highlight.js/lib/languages/protobuf'))\nlow.registerLanguage('puppet', require('highlight.js/lib/languages/puppet'))\nlow.registerLanguage(\n 'purebasic',\n require('highlight.js/lib/languages/purebasic')\n)\nlow.registerLanguage('python', require('highlight.js/lib/languages/python'))\nlow.registerLanguage(\n 'python-repl',\n require('highlight.js/lib/languages/python-repl')\n)\nlow.registerLanguage('q', require('highlight.js/lib/languages/q'))\nlow.registerLanguage('qml', require('highlight.js/lib/languages/qml'))\nlow.registerLanguage('r', require('highlight.js/lib/languages/r'))\nlow.registerLanguage('reasonml', require('highlight.js/lib/languages/reasonml'))\nlow.registerLanguage('rib', require('highlight.js/lib/languages/rib'))\nlow.registerLanguage('roboconf', require('highlight.js/lib/languages/roboconf'))\nlow.registerLanguage('routeros', require('highlight.js/lib/languages/routeros'))\nlow.registerLanguage('rsl', require('highlight.js/lib/languages/rsl'))\nlow.registerLanguage(\n 'ruleslanguage',\n require('highlight.js/lib/languages/ruleslanguage')\n)\nlow.registerLanguage('rust', require('highlight.js/lib/languages/rust'))\nlow.registerLanguage('sas', require('highlight.js/lib/languages/sas'))\nlow.registerLanguage('scala', require('highlight.js/lib/languages/scala'))\nlow.registerLanguage('scheme', require('highlight.js/lib/languages/scheme'))\nlow.registerLanguage('scilab', require('highlight.js/lib/languages/scilab'))\nlow.registerLanguage('scss', require('highlight.js/lib/languages/scss'))\nlow.registerLanguage('shell', require('highlight.js/lib/languages/shell'))\nlow.registerLanguage('smali', require('highlight.js/lib/languages/smali'))\nlow.registerLanguage(\n 'smalltalk',\n require('highlight.js/lib/languages/smalltalk')\n)\nlow.registerLanguage('sml', require('highlight.js/lib/languages/sml'))\nlow.registerLanguage('sqf', require('highlight.js/lib/languages/sqf'))\nlow.registerLanguage('sql_more', require('highlight.js/lib/languages/sql_more'))\nlow.registerLanguage('sql', require('highlight.js/lib/languages/sql'))\nlow.registerLanguage('stan', require('highlight.js/lib/languages/stan'))\nlow.registerLanguage('stata', require('highlight.js/lib/languages/stata'))\nlow.registerLanguage('step21', require('highlight.js/lib/languages/step21'))\nlow.registerLanguage('stylus', require('highlight.js/lib/languages/stylus'))\nlow.registerLanguage('subunit', require('highlight.js/lib/languages/subunit'))\nlow.registerLanguage('swift', require('highlight.js/lib/languages/swift'))\nlow.registerLanguage(\n 'taggerscript',\n require('highlight.js/lib/languages/taggerscript')\n)\nlow.registerLanguage('yaml', require('highlight.js/lib/languages/yaml'))\nlow.registerLanguage('tap', require('highlight.js/lib/languages/tap'))\nlow.registerLanguage('tcl', require('highlight.js/lib/languages/tcl'))\nlow.registerLanguage('thrift', require('highlight.js/lib/languages/thrift'))\nlow.registerLanguage('tp', require('highlight.js/lib/languages/tp'))\nlow.registerLanguage('twig', require('highlight.js/lib/languages/twig'))\nlow.registerLanguage(\n 'typescript',\n require('highlight.js/lib/languages/typescript')\n)\nlow.registerLanguage('vala', require('highlight.js/lib/languages/vala'))\nlow.registerLanguage('vbnet', require('highlight.js/lib/languages/vbnet'))\nlow.registerLanguage('vbscript', require('highlight.js/lib/languages/vbscript'))\nlow.registerLanguage(\n 'vbscript-html',\n require('highlight.js/lib/languages/vbscript-html')\n)\nlow.registerLanguage('verilog', require('highlight.js/lib/languages/verilog'))\nlow.registerLanguage('vhdl', require('highlight.js/lib/languages/vhdl'))\nlow.registerLanguage('vim', require('highlight.js/lib/languages/vim'))\nlow.registerLanguage('x86asm', require('highlight.js/lib/languages/x86asm'))\nlow.registerLanguage('xl', require('highlight.js/lib/languages/xl'))\nlow.registerLanguage('xquery', require('highlight.js/lib/languages/xquery'))\nlow.registerLanguage('zephir', require('highlight.js/lib/languages/zephir'))\n","var objectWithoutPropertiesLoose = require(\"./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}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(t) {\n return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nconst visit = require('unist-util-visit');\nconst nodeToString = require('hast-util-to-string');\nconst refractor = require('refractor');\n\nmodule.exports = (options) => {\n options = options || {};\n\n if (options.alias) {\n refractor.alias(options.alias);\n }\n\n return (tree) => {\n visit(tree, 'element', visitor);\n };\n\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + lang\n );\n result = refractor.highlight(nodeToString(node), lang);\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n return;\n }\n throw err;\n }\n\n node.children = result;\n }\n};\n\nfunction getLanguage(node) {\n const className = node.properties.className || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|Position|Point} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n // @ts-ignore looks like a node.\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n // @ts-ignore looks like a position.\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n // @ts-ignore looks like a point.\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string?, string?]} */\n var parts = [null, null]\n /** @type {Position} */\n var position = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n /** @type {number} */\n var index\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = null\n }\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n // @ts-ignore Looks like a position.\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n // @ts-ignore Looks like a point.\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\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 /* eslint-disable no-unused-expressions */\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n this.fatal\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\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 path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== '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 (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(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 (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(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 (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 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 extIndex = -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 * @param {string} path\n * @returns {string}\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.charCodeAt(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.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\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.charCodeAt(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 * @param {Array.<string>} segments\n * @returns {string}\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 * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(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.charCodeAt(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 * @param {boolean} allowAboveRoot\n * @returns {string}\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.charCodeAt(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.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(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 * @param {string} path\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 proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\nexport {isUrl}\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\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 * @param {URL} url\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.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(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 * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('./minurl.shared.js').URL} URL\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/a2bc1d8/types/node/globals.d.ts#L174>\n *\n * @typedef {string|Uint8Array} VFileValue\n * Contents of the file.\n * Can either be text, or a Buffer like structure.\n * This does not directly use type `Buffer`, because it can also be used in a\n * browser context.\n * Instead this leverages `Uint8Array` which is the base type for `Buffer`,\n * and a native JavaScript construct.\n *\n * @typedef {VFileValue|VFileOptions|VFile|URL} VFileCompatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {VFileValue} [value]\n * @property {string} [cwd]\n * @property {Array.<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Object.<string, unknown>} [data]\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Object.<string, unknown>} VFileReporterSettings\n * @typedef {<T = VFileReporterSettings>(files: VFile[], options: T) => string} VFileReporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\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.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, treats it as `{value: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All other given fields are set on the newly created `VFile`.\n *\n * Path related properties are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * It’s not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {VFileCompatible} [value]\n */\n constructor(value) {\n /** @type {VFileOptions} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information.\n * It’s OK to store custom data directly on the file, moving it to `data`\n * gives a little more privacy.\n * @type {Object.<string, unknown>}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array.<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of file paths the file moved between.\n * @type {Array.<string>}\n */\n this.history = []\n\n /**\n * Base of `path`.\n * Defaults to `process.cwd()` (`/` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {VFileValue}\n */\n this.value\n\n // The below are non-standard, they are “well-knownâ€.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `RawSourceMap` type from the `source-map` module.\n * @type {unknown}\n */\n this.map\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 prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Access full path (`~/index.min.js`).\n *\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set full path (`~/index.min.js`).\n * Cannot be nullified.\n *\n * @param {string|URL} path\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 * Access parent path (`~`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set parent path (`~`).\n * Cannot be set if there's no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Access basename (including extname) (`index.min.js`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (`index.min.js`).\n * Cannot contain path separators.\n * Cannot be nullified either (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Access extname (including dot) (`.js`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set extname (including dot) (`.js`).\n * Cannot be set if there's no `path` yet and cannot contain path separators.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(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 = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Access stem (w/o extname) (`index.min`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set stem (w/o extname) (`index.min`).\n * Cannot be nullified, and cannot contain path separators.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8'] If `file.value` is a buffer, `encoding` is used to serialize buffers.\n * @returns {string}\n */\n toString(encoding) {\n // @ts-expect-error string’s don’t accept the parameter, but buffers do.\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Create a message and associates it w/ the file.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\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 * Info: create a message, associate it with the file, and mark the fatality\n * as `null`.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {VFileMessage}\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Fail: create a message, associate it with the file, mark the fatality as\n * `true`.\n * Note: fatal errors mean a file is no longer processable.\n * Calls `message()` internally.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n * @returns {never}\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\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 * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error | null | undefined} [error]\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback\n * @typedef {(...input: any[]) => any} Middleware\n *\n * @typedef {(...input: any[]) => void} Run Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {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 {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`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @param {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(...parameters)\n } catch (error) {\n /** @type {Error} */\n const exception = 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 instanceof Promise) {\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 * @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","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[1] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\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 if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\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, ...options] = value\n addPlugin(plugin, ...options)\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 {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\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 {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` can’t be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\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 {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [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 VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the node’s plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.<string>} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\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 * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\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 * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} 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 Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\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 {string} */\n let code\n\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 * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {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 several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined 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 Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\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 {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\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\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\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\nexport const asciiDigit = regexCheck(/\\d/)\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\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\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\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\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\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\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\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\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 * @returns {code is number}\n */\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 * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\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 * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\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 * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\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\nexport const unicodeWhitespace = regexCheck(/\\s/)\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// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\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 /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {StackItem[]} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\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(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // 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\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\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 } // 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\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\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\n self.interrupt = Boolean(childFlow.currentConstruct)\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\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 /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\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\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) 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) // 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\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (they’re still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // 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\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\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 } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record<string, number>} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // 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\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\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\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\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\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\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 */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\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 data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\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 /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\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 /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\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\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\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 */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = -1\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\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\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\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 if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {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 * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\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 * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n\n const columnStart = {}\n /** @type {Construct[]} */\n\n const resolveAllConstructs = []\n /** @type {Chunk[]} */\n\n let chunks = []\n /** @type {Token[]} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\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 {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\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 } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\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 /** @type {Effects['exit']} */\n\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 * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record<string, unknown>} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Construct[]|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Construct[]} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Construct[]} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\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\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\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,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\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 restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\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 * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {void}\n */\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 * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Chunk[]} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Chunk[]}\n */\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 {Chunk[]} */\n\n let view\n\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\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\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\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Chunk[]} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {string[]} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\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/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\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(\n blankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\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\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\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\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\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\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\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 destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(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\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\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 /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\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 if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\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 label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\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 marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(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\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines can’t exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\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 seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // 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()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\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 {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\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\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\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\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\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 = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable<Code>} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\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 (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesn’t have to be 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.29/#html-blocks>.\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 'section',\n 'source',\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 tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.29/#html-blocks>.\n *\n * Note that `textarea` is not available in `CommonMark@0.29` but has been\n * merged to the primary branch and is slated to be released in the next release\n * of CommonMark.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\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 // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // 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\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\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 openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/* eslint-env browser */\n\nvar semicolon = 59 // `;`\n/** @type {HTMLElement} */\nvar element\n\n/**\n * @param {string} characters\n * @returns {string|false}\n */\nexport function decodeEntity(characters) {\n var entity = '&' + characters + ';'\n /** @type {string} */\n var char\n\n element = element || document.createElement('i')\n element.innerHTML = entity\n char = element.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of `¬it;`\n // will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing and the entity to\n // decode was not a semicolon (`;`), we can assume that the matching was\n // incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeEntity} from 'parse-entities/decode-entity.js'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\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 /** @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\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\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\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\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 open\n }\n /** @type {State} */\n\n function open(code) {\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\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","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\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\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // It’s a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 3\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(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\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something 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 that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // 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\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\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 (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\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 /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !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 * 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 * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\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/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\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/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\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/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\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 // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\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 /** @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\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\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\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\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 /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\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\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\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 /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\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\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\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 /** @type {State} */\n\n function after(code) {\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\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\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 } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\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\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Chunk[]}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Chunk[]} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\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\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\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 * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","/* eslint-env browser */\n\nvar semicolon = 59 // `;`\n/** @type {HTMLElement} */\nvar element\n\n/**\n * @param {string} characters\n * @returns {string|false}\n */\nexport function decodeEntity(characters) {\n var entity = '&' + characters + ';'\n /** @type {string} */\n var char\n\n element = element || document.createElement('i')\n element.innerHTML = entity\n char = element.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of `¬it;`\n // will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing and the entity to\n // decode was not a semicolon (`;`), we can assume that the matching was\n // incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","import {decodeEntity} from 'parse-entities/decode-entity.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string†content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\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\n return decodeEntity($2) || $0\n}\n","/* eslint-env browser */\n\nvar semicolon = 59 // `;`\n/** @type {HTMLElement} */\nvar element\n\n/**\n * @param {string} characters\n * @returns {string|false}\n */\nexport function decodeEntity(characters) {\n var entity = '&' + characters + ';'\n /** @type {string} */\n var char\n\n element = element || document.createElement('i')\n element.innerHTML = entity\n char = element.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of `¬it;`\n // will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing and the entity to\n // decode was not a semicolon (`;`), we can assume that the matching was\n // incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * Stringify one point, a position (start and end points), or a node’s\n * positional information.\n *\n * @param {Node|Position|Point} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if (own.call(value, 'position') || own.call(value, 'type')) {\n // @ts-ignore looks like a node.\n return position(value.position)\n }\n\n // Position.\n if (own.call(value, 'start') || own.call(value, 'end')) {\n // @ts-ignore looks like a position.\n return position(value)\n }\n\n // Point.\n if (own.call(value, 'line') || own.call(value, 'column')) {\n // @ts-ignore looks like a point.\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: PhrasingContent[]}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array.<unknown>> & {canContainEols: Array.<string>, transforms: Array.<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array.<Node | Fragment>} stack\n * @property {Array.<Token>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array.<Extension|Array.<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeEntity} from 'parse-entities/decode-entity.js'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\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 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 options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array.<Event>} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array.<number>} */\n\n const listStack = []\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\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 (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\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\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array.<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\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\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @returns {N}\n */\n\n function enter(node, token) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /** @type {CompileContext['exit']} */\n\n function exit(token) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({\n start: open.start,\n end: open.end\n }) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\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 /** @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 /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\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 setData('flowCodeInside')\n }\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 /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\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 /** @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 /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: we’ll add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\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 /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context = this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context = this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor = this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\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] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeEntity` can return false for invalid named\n // character references, but everything we’ve tokenized is valid.\n value = decodeEntity(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\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 /** @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 // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array.<Extension|Array.<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Event[]} events\n * @returns {Event[]}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\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 {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, 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: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.<string, unknown>} Props\n * @typedef {Array.<Node>|string} ChildrenOrValue\n *\n * @typedef {(<T extends string, P extends Record<string, unknown>, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {(<T extends string, C extends Node[]>(type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {(<T extends string>(type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {(<T extends string>(type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types').Action} Action\n * @typedef {import('./complex-types').Index} Index\n * @typedef {import('./complex-types').ActionTuple} ActionTuple\n * @typedef {import('./complex-types').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test node, optional\n * @param visitor Function to run for each node\n * @param reverse Visit the tree in reverse order, defaults to false\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor<Node>} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\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 test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array.<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {CONTINUE|SKIP|EXIT} Action Union of the action types\n * @typedef {number} Index Move to the sibling at index next (after node itself is completely traversed). Useful if mutating the tree, such as removing the node the visitor is currently on, or any of its previous siblings (or next siblings, in case of reverse) Results less than 0 or greater than or equal to children.length stop traversing the parent\n * @typedef {[(Action|null|undefined|void)?, (Index|null|undefined)?]} ActionTuple List with one or two values, the first an action, the second an index.\n * @typedef {null|undefined|Action|Index|ActionTuple|void} VisitorResult Any value that can be returned from a visitor\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {Array.<Parent>} ancestors Ancestors of node\n * @returns {VisitorResult}\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\nexport const visitParents =\n /**\n * @type {(\n * (<T extends Node>(tree: Node, test: T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>>, visitor: Visitor<T>, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor<Node>, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor<Node>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor<Node>} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-ignore no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n var is = convert(test)\n var step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n var value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string} */\n var name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n var result = []\n /** @type {ActionTuple} */\n var subresult\n /** @type {number} */\n var offset\n /** @type {Array.<Parent>} */\n var grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n // @ts-ignore looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-ignore looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-ignore looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Invoked when a node (matching test, if given) is found.\n * Visitors are free to transform node.\n * They can also transform the parent of node (the last of ancestors).\n * Replacing node itself, if `SKIP` is not returned, still causes its descendants to be visited.\n * If adding or removing previous siblings (or next siblings, in case of reverse) of node,\n * visitor should return a new index (number) to specify the sibling to traverse after node is traversed.\n * Adding or removing next siblings of node (or previous siblings, in case of reverse)\n * is handled as expected without needing to return a new index.\n * Removing the children property of an ancestor still results in them being traversed.\n *\n * @template {Node} V\n * @callback Visitor\n * @param {V} node Found node\n * @param {number|null} index Position of `node` in `parent`\n * @param {Parent|null} parent Parent of `node`\n * @returns {VisitorResult}\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\nexport const visit =\n /**\n * @type {(\n * (<T extends Node>(tree: Node, test: T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|import('unist-util-is').TestFunctionPredicate<T>>, visitor: Visitor<T>, reverse?: boolean) => void) &\n * ((tree: Node, test: Test, visitor: Visitor<Node>, reverse?: boolean) => void) &\n * ((tree: Node, visitor: Visitor<Node>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * Visit children of tree which pass a test\n *\n * @param {Node} tree Abstract syntax tree to walk\n * @param {Test} test test Test node\n * @param {Visitor<Node>} visitor Function to run for each node\n * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n var parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('unist-util-visit').Visitor<Definition>} DefinitionVisitor\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Object.<string, Definition>} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return getDefinition\n\n /** @type {DefinitionVisitor} */\n function ondefinition(definition) {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n }\n\n /**\n * Get a node from the bound definition-cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function getDefinition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction returnNode(h, node) {\n // @ts-expect-error: Pass through custom node.\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array.<Content>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\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 = head.value.replace(/^\\s+/, '')\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 * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n */\n\n/**\n * @type {Handler}\n * @param {ThematicBreak} [node]\n * @returns {Element}\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array.<Content>} nodes\n * @param {boolean} [loose=false]\n * @returns {Array.<Content>}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array.<Content>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {List} node\n * @returns {Element}\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const footnoteOrder = h.footnoteOrder\n const identifier = String(node.identifier)\n const index = footnoteOrder.indexOf(identifier)\n const marker = String(\n index === -1 ? footnoteOrder.push(identifier) : index + 1\n )\n\n return h(\n node,\n 'a',\n {\n href: '#fn' + marker,\n className: ['footnote-ref'],\n id: 'fnref' + marker,\n role: 'doc-noteref'\n },\n [h(node.position, 'sup', [u('text', marker)])]\n )\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @type {Handler}\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array.<Content>}\n */\nexport function revert(h, 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 u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\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(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array.<Content>} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[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 wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(loose)\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","import {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 {footnote} from './footnote.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 {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\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 null\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Break} node\n * @returns {Array<Element|Text>}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Code} node\n */\nexport function code(h, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n const lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @type {Handler}\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n // No need to check if `identifier` exists in `footnoteOrder`, it’s guaranteed\n // to not exist because we just generated it.\n footnoteOrder.push(identifier)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @type {Handler}\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\n\n/**\n * @type {Handler}\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\n\n/**\n * @type {Handler}\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @type {Handler}\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array.<Element>} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n let pos = node.align ? align.length : row.length\n /** @type {Array.<Content>} */\n const out = []\n\n while (pos--) {\n const cell = row[pos]\n out[pos] = h(cell, name, {align: align[pos]}, cell ? all(h, cell) : [])\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName] Defines the tag name of an element\n * @property {Properties} [hProperties] Defines the properties of an element\n * @property {Array.<Content>} [hChildren] Defines the (hast) children of an element\n *\n * @typedef {Object.<string, unknown> & EmbeddedHastFields} Data unist data with embedded hast fields\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData unist node with embedded hast data\n *\n * @callback Handler\n * @param {H} h Handle context\n * @param {any} node mdast node to handle\n * @param {Parent|null} parent Parent of `node`\n * @returns {Content|Array.<Content>|null|undefined} hast node\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Properties} props Properties\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @typedef HFields\n * @property {boolean} dangerous Whether HTML is allowed\n * @property {(identifier: string) => Definition|null} definition Definition cache\n * @property {Object.<string, FootnoteDefinition>} footnoteById Footnote cache\n * @property {Array.<string>} footnoteOrder Order in which footnotes occur\n * @property {Handlers} handlers Applied handlers\n * @property {Handler} unknownHandler Handler for any none not in `passThrough` or otherwise handled\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment Like `h` but lower-level and usable on non-elements.\n * @property {Array.<string>} passThrough List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * @property {boolean} [allowDangerousHtml=false] Whether to allow `html` nodes and inject them as `raw` HTML\n * @property {Handlers} [handlers] Object mapping mdast nodes to functions handling them\n * @property {Array.<string>} [passThrough] List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler] Handler for all unknown nodes.\n *\n * @typedef {Record.<string, Handler>} Handlers Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to transform.\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {H} `h` function\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Object.<string, FootnoteDefinition>} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array.<string>} */\n h.footnoteOrder = []\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test, optional\n * @param visitor Function to run for each node\n * @param reverse Fisit the tree in reverse, defaults to false\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('./index.js').H} H\n */\n\nimport {thematicBreak} from './handlers/thematic-break.js'\nimport {list} from './handlers/list.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n */\nexport function footer(h) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let index = -1\n /** @type {Array.<ListItem>} */\n const listItems = []\n\n while (++index < footnoteOrder.length) {\n const def = footnoteById[footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const marker = String(index + 1)\n const content = [...def.children]\n /** @type {Link} */\n const backReference = {\n type: 'link',\n url: '#fnref' + marker,\n data: {hProperties: {className: ['footnote-back'], role: 'doc-backlink'}},\n children: [{type: 'text', value: '↩'}]\n }\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'paragraph') {\n tail.children.push(backReference)\n } else {\n // @ts-expect-error Indeed, link directly added in block content.\n // Which we do because that way at least the handlers will be called\n // for the other HTML we’re generating (as markdown).\n content.push(backReference)\n }\n\n listItems.push({\n type: 'listItem',\n data: {hProperties: {id: 'fn' + marker, role: 'doc-endnote'}},\n children: content,\n position: def.position\n })\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return h(\n null,\n 'section',\n {className: ['footnotes'], role: 'doc-endnotes'},\n wrap(\n [\n thematicBreak(h),\n list(h, {type: 'list', ordered: true, children: listItems})\n ],\n true\n )\n )\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(\n\n/**\n * Plugin to bridge or mutate to rehype.\n *\n * If a destination is given, runs the destination with the new hast tree\n * (bridge-mode).\n * Without destination, returns the hast tree: further plugins run on that tree\n * (mutate-mode).\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further transformers run on the nlcst tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned for `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Object.<string, Info>} Properties\n * @typedef {Object.<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","import {Schema} from './schema.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n/**\n * @param {import('./schema.js').Schema[]} definitions\n * @param {string} space\n * @returns {import('./schema.js').Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n var index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n this.property = property\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.attribute = null\nInfo.prototype.property = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","var powers = 0\n\nexport var boolean = increment()\nexport var booleanish = increment()\nexport var overloadedBoolean = increment()\nexport var number = increment()\nexport var spaceSeparated = increment()\nexport var commaSeparated = increment()\nexport var commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\nvar checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n var index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n while (++index < checks.length) {\n mark(\n this,\n checks[index],\n (mask & types[checks[index]]) === types[checks[index]]\n )\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {InstanceType<typeof DefinedInfo>} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","import {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n * @typedef {import('./info.js').Info} Info\n */\n\n/**\n * @typedef {Object.<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Object.<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array.<string>} [mustUseProperty]\n */\n\nvar own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {import('./schema.js').Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n /** @type {string} */\n var prop\n /** @type {Info} */\n var info\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes, prop),\n definition.properties[prop],\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport var xlink = create({\n space: 'xlink',\n transform: xlinkTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","import {create} from './util/create.js'\n\nexport var xml = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","/**\n * @param {Object.<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\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 {Object.<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport var aria = create({\n transform: ariaTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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 capture: boolean,\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 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: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\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 onBeforePrint: 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 onContextMenu: 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 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 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 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: commaSeparated,\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\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})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport var svg = create({\n space: 'svg',\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 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 transform: caseSensitiveTransform,\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 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})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport var html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport var svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types').Action} Action\n * @typedef {import('./complex-types').Index} Index\n * @typedef {import('./complex-types').ActionTuple} ActionTuple\n * @typedef {import('./complex-types').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test node, optional\n * @param visitor Function to run for each node\n * @param reverse Visit the tree in reverse order, defaults to false\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor<Node>} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\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 test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array.<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array.<string>} [allowedElements]\n * @property {Array.<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.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 return undefined\n })\n }\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test, optional\n * @param visitor Function to run for each node\n * @param reverse Fisit the tree in reverse, defaults to false\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","import {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\n/**\n * @param {import('./util/schema.js').Schema} schema\n * @param {string} value\n * @returns {import('./util/info.js').Info}\n */\nexport function find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var 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 prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} attribute\n * @returns {string}\n */\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return 'data' + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\n/**\n * @param {string} property\n * @returns {string}\n */\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return 'data' + value\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","export var 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 * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array.<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import(\"react\").HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array.<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @callback CodeComponent\n * @param {JSX.IntrinsicElements['code'] & ReactMarkdownProps & {inline?: boolean}} props\n * @returns {ReactNode}\n *\n * @callback HeadingComponent\n * @param {JSX.IntrinsicElements['h1'] & ReactMarkdownProps & {level: number}} props\n * @returns {ReactNode}\n *\n * @callback LiComponent\n * @param {JSX.IntrinsicElements['li'] & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} props\n * @returns {ReactNode}\n *\n * @callback OrderedListComponent\n * @param {JSX.IntrinsicElements['ol'] & ReactMarkdownProps & {depth: number, ordered: true}} props\n * @returns {ReactNode}\n *\n * @callback TableCellComponent\n * @param {JSX.IntrinsicElements['table'] & ReactMarkdownProps & {style?: Object.<string, unknown>, isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback TableRowComponent\n * @param {JSX.IntrinsicElements['tr'] & ReactMarkdownProps & {isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback UnorderedListComponent\n * @param {JSX.IntrinsicElements['ul'] & ReactMarkdownProps & {depth: number, ordered: false}} props\n * @returns {ReactNode}\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import(\"./complex-types\").NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array.<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // React does not permit whitespace text elements as children of table:\n // cf. https://github.com/remarkjs/react-markdown/issues/576\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n child.value !== '\\n'\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Object.<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Object.<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Object.<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Object.<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n 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 to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} 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 Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [plugins=[]] **deprecated**: use `remarkPlugins` instead\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {uriTransformer} from './uri-transformer.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Object.<string, Deprecation>} */\nconst deprecated = {\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n // TODO: deprecate `plugins` in v8.0.0.\n .use(options.remarkPlugins || options.plugins || [])\n .use(remarkRehype, {allowDangerousHtml: true})\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","/**\n * @typedef {import('./lib/react-markdown.js').ReactMarkdownOptions} Options\n * @typedef {import('./lib/ast-to-react.js').Components} Components\n */\n\nimport {ReactMarkdown} from './lib/react-markdown.js'\n\nexport {uriTransformer} from './lib/uri-transformer.js'\n\nexport default ReactMarkdown\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types').Action} Action\n * @typedef {import('./complex-types').Index} Index\n * @typedef {import('./complex-types').ActionTuple} ActionTuple\n * @typedef {import('./complex-types').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this node’s children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test node, optional\n * @param visitor Function to run for each node\n * @param reverse Visit the tree in reverse order, defaults to false\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor<Node>} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\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 test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array.<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Object.<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array.<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], 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 return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\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]\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Object.<string, Info>} Properties\n * @typedef {Object.<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","import {Schema} from './schema.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n/**\n * @param {import('./schema.js').Schema[]} definitions\n * @param {string} space\n * @returns {import('./schema.js').Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n var index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n this.property = property\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.attribute = null\nInfo.prototype.property = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","var powers = 0\n\nexport var boolean = increment()\nexport var booleanish = increment()\nexport var overloadedBoolean = increment()\nexport var number = increment()\nexport var spaceSeparated = increment()\nexport var commaSeparated = increment()\nexport var commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\nvar checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n var index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n while (++index < checks.length) {\n mark(\n this,\n checks[index],\n (mask & types[checks[index]]) === types[checks[index]]\n )\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {InstanceType<typeof DefinedInfo>} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","import {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n * @typedef {import('./info.js').Info} Info\n */\n\n/**\n * @typedef {Object.<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Object.<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array.<string>} [mustUseProperty]\n */\n\nvar own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {import('./schema.js').Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n /** @type {string} */\n var prop\n /** @type {Info} */\n var info\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes, prop),\n definition.properties[prop],\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport var xlink = create({\n space: 'xlink',\n transform: xlinkTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","import {create} from './util/create.js'\n\nexport var xml = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","/**\n * @param {Object.<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\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 {Object.<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport var aria = create({\n transform: ariaTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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 capture: boolean,\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 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: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\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 onBeforePrint: 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 onContextMenu: 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 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 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 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: commaSeparated,\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\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})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport var svg = create({\n space: 'svg',\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 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 transform: caseSensitiveTransform,\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 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})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport var html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport var svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\n/**\n * @param {import('./util/schema.js').Schema} schema\n * @param {string} value\n * @returns {import('./util/info.js').Info}\n */\nexport function find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var 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 prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} attribute\n * @returns {string}\n */\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return 'data' + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\n/**\n * @param {string} property\n * @returns {string}\n */\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return 'data' + value\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nvar search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @param selector A simple CSS selector.\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='div'] Tag name to use if `selector` does not specify one.\n */\nexport const parseSelector =\n /**\n * @type {(\n * <Selector extends string, DefaultTagName extends string = 'div'>(selector?: Selector, defaultTagName?: DefaultTagName) => Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}\n * )}\n */\n (\n /**\n * @param {string} [selector]\n * @param {string} [defaultTagName='div']\n * @returns {Element}\n */\n function (selector, defaultTagName = 'div') {\n var value = selector || ''\n /** @type {Properties} */\n var props = {}\n var start = 0\n /** @type {string} */\n var subvalue\n /** @type {string} */\n var previous\n /** @type {RegExpMatchArray} */\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n defaultTagName = 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 tagName: defaultTagName,\n properties: props,\n children: []\n }\n }\n )\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} 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 Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n 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 to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {Root|Element} HResult\n * @typedef {string|number} HStyleValue\n * @typedef {Object.<string, HStyleValue>} HStyle\n * @typedef {string|number|boolean|null|undefined} HPrimitiveValue\n * @typedef {Array.<string|number>} HArrayValue\n * @typedef {HPrimitiveValue|HArrayValue} HPropertyValue\n * @typedef {{[property: string]: HPropertyValue|HStyle}} HProperties\n *\n * @typedef {string|number|null|undefined} HPrimitiveChild\n * @typedef {Array.<Node|HPrimitiveChild>} HArrayChild\n * @typedef {Node|HPrimitiveChild|HArrayChild} HChild\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array.<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n const h =\n /**\n * @type {{\n * (): Root\n * (selector: null|undefined, ...children: HChild[]): Root\n * (selector: string, properties?: HProperties, ...children: HChild[]): Element\n * (selector: string, ...children: HChild[]): Element\n * }}\n */\n (\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @param {string|null} [selector]\n * @param {HProperties|HChild} [properties]\n * @param {HChild[]} children\n * @returns {HResult}\n */\n function (selector, properties, ...children) {\n let index = -1\n /** @type {HResult} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // @ts-expect-error Properties are not supported for roots.\n children.unshift(properties)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n // @ts-expect-error `node.properties` is set.\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\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\n return h\n}\n\n/**\n * @param {HProperties|HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle|HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {HPropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) 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 = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array.<string|number>} */\n const finalResult = []\n\n while (++index < result.length) {\n // @ts-expect-error Assume no booleans in array.\n finalResult[index] = parsePrimitive(info, info.property, result[index])\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 // @ts-expect-error Assume no booleans in `className`.\n result = properties.className.concat(result)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array.<Child>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\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 * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\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 * @param {HStyle} value\n * @returns {string}\n */\nfunction style(value) {\n /** @type {Array.<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * @param {Array.<string>} values\n * @returns {Object.<string, string>}\n */\nfunction createAdjustMap(values) {\n /** @type {Object.<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export 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","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} h.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","export var webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.<Child>} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n/**\n * Transform Parse5’s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n /** @type {Options} */\n let settings\n /** @type {VFile|undefined} */\n let file\n\n if (isFile(options)) {\n file = options\n settings = {}\n } else {\n file = options.file\n settings = options\n }\n\n return transform(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n ast\n )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n const schema = ctx.schema\n /** @type {Handler} */\n // @ts-expect-error: index is fine.\n const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n /** @type {Array.<Child>|undefined} */\n let children\n\n // Element.\n if ('tagName' in ast) {\n ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n }\n\n if ('childNodes' in ast) {\n children = nodes(ctx, ast.childNodes)\n }\n\n const result = fn(ctx, ast, children)\n\n if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n // @ts-expect-error It’s fine.\n const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n if (position) {\n ctx.location = true\n result.position = position\n }\n }\n\n ctx.schema = schema\n\n return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.<P5Node>} children\n * @returns {Array.<Child>}\n */\nfunction nodes(ctx, children) {\n let index = -1\n /** @type {Array.<Child>} */\n const result = []\n\n while (++index < children.length) {\n // @ts-expect-error Assume no roots in children.\n result[index] = transform(ctx, children[index])\n }\n\n return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.<Child>} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n /** @type {Root} */\n const result = {\n type: 'root',\n children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n\n if (ctx.file && ctx.location) {\n const doc = String(ctx.file)\n const loc = location(doc)\n result.position = {\n start: loc.toPoint(0),\n end: loc.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n // @ts-expect-error Types are out of date.\n return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.<ElementChild>} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n const fn = ctx.schema.space === 'svg' ? s : h\n let index = -1\n /** @type {Object.<string, string>} */\n const props = {}\n\n while (++index < ast.attrs.length) {\n const attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n const result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n const pos = ast.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = transform(ctx, ast.content)\n\n if (startTag && endTag && ctx.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (ctx.verbose) {\n /** @type {Object.<string, Position|null>} */\n const props = {}\n /** @type {string} */\n let key\n\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(ctx.schema, key).property] = position(location.attrs[key])\n }\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `null` is fine.\n return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick<Point, 'line'|'column'>} PositionalPoint\n * @typedef {Required<Point>} FullPoint\n * @typedef {NonNullable<Point['offset']>} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n var value = String(file)\n /** @type {Array.<number>} */\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /**\n * Get the line and column-based `point` for `offset` in the bound indices.\n * Returns a point with `undefined` values when given invalid or out of bounds\n * input.\n *\n * @param {Offset} offset\n * @returns {FullPoint}\n */\n function toPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /**\n * Get the `offset` for a line and column-based `point` in the bound indices.\n * Returns `-1` when given invalid or out of bounds input.\n *\n * @param {PositionalPoint} point\n * @returns {Offset}\n */\n function toOffset(point) {\n var line = point && point.line\n var column = point && point.column\n /** @type {number} */\n var offset\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Object.<string, Info>} Properties\n * @typedef {Object.<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","import {Schema} from './schema.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n/**\n * @param {import('./schema.js').Schema[]} definitions\n * @param {string} space\n * @returns {import('./schema.js').Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n var index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n this.property = property\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.attribute = null\nInfo.prototype.property = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","var powers = 0\n\nexport var boolean = increment()\nexport var booleanish = increment()\nexport var overloadedBoolean = increment()\nexport var number = increment()\nexport var spaceSeparated = increment()\nexport var commaSeparated = increment()\nexport var commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\nvar checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n var index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n while (++index < checks.length) {\n mark(\n this,\n checks[index],\n (mask & types[checks[index]]) === types[checks[index]]\n )\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {InstanceType<typeof DefinedInfo>} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","import {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n * @typedef {import('./info.js').Info} Info\n */\n\n/**\n * @typedef {Object.<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Object.<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array.<string>} [mustUseProperty]\n */\n\nvar own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {import('./schema.js').Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n /** @type {string} */\n var prop\n /** @type {Info} */\n var info\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes, prop),\n definition.properties[prop],\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport var xlink = create({\n space: 'xlink',\n transform: xlinkTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","import {create} from './util/create.js'\n\nexport var xml = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","/**\n * @param {Object.<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\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 {Object.<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport var aria = create({\n transform: ariaTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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 capture: boolean,\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 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: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\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 onBeforePrint: 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 onContextMenu: 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 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 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 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: commaSeparated,\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\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})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport var svg = create({\n space: 'svg',\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 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 transform: caseSensitiveTransform,\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 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})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport var html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport var svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\n/**\n * @param {import('./util/schema.js').Schema} schema\n * @param {string} value\n * @returns {import('./util/info.js').Info}\n */\nexport function find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var 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 prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} attribute\n * @returns {string}\n */\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return 'data' + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\n/**\n * @param {string} property\n * @returns {string}\n */\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return 'data' + value\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Object.<string, Info>} Properties\n * @typedef {Object.<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","import {Schema} from './schema.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\n/**\n * @param {import('./schema.js').Schema[]} definitions\n * @param {string} space\n * @returns {import('./schema.js').Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n var index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n this.property = property\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.attribute = null\nInfo.prototype.property = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","var powers = 0\n\nexport var boolean = increment()\nexport var booleanish = increment()\nexport var overloadedBoolean = increment()\nexport var number = increment()\nexport var spaceSeparated = increment()\nexport var commaSeparated = increment()\nexport var commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\nvar checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n var index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n while (++index < checks.length) {\n mark(\n this,\n checks[index],\n (mask & types[checks[index]]) === types[checks[index]]\n )\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {InstanceType<typeof DefinedInfo>} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","import {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\n/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n * @typedef {import('./info.js').Info} Info\n */\n\n/**\n * @typedef {Object.<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Object.<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array.<string>} [mustUseProperty]\n */\n\nvar own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {import('./schema.js').Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n var property = {}\n /** @type {Normal} */\n var normal = {}\n /** @type {string} */\n var prop\n /** @type {Info} */\n var info\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes, prop),\n definition.properties[prop],\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport var xlink = create({\n space: 'xlink',\n transform: xlinkTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","import {create} from './util/create.js'\n\nexport var xml = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","/**\n * @param {Object.<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\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 {Object.<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport var aria = create({\n transform: ariaTransform,\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})\n\n/**\n * @param {unknown} _\n * @param {string} prop\n * @returns {string}\n */\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport var html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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 capture: boolean,\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 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: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\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 onBeforePrint: 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 onContextMenu: 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 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 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 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: commaSeparated,\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\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})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport var svg = create({\n space: 'svg',\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 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 transform: caseSensitiveTransform,\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 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})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport var html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport var svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\n/**\n * @param {import('./util/schema.js').Schema} schema\n * @param {string} value\n * @returns {import('./util/info.js').Info}\n */\nexport function find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var 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 prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} attribute\n * @returns {string}\n */\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return 'data' + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\n/**\n * @param {string} property\n * @returns {string}\n */\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return 'data' + value\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(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 // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return 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 any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\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 * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\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 * Utility to convert a string into a function which checks a given node’s type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate<Element>} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate<Text>} AssertText\n * @typedef {import('unist-util-is').AssertPredicate<Root>} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.<string|any>} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record<string, string>} */ (webNamespaces)\nconst toReact = /** @type {Record<string, string>} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error it’s correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error it’s correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error it’s correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType<H>}\n */\nexport function toH(h, tree, options) {\n if (typeof h !== 'function') {\n throw new TypeError('h is not a function')\n }\n\n const r = react(h)\n const v = vue(h)\n const vd = vdom(h)\n /** @type {string|boolean|null|undefined} */\n let prefix\n /** @type {Element} */\n let node\n\n if (typeof options === 'string' || typeof options === 'boolean') {\n prefix = options\n options = {}\n } else {\n if (!options) options = {}\n prefix = options.prefix\n }\n\n if (root(tree)) {\n // @ts-expect-error Allow `doctypes` in there, we’ll filter them out later.\n node =\n tree.children.length === 1 && element(tree.children[0])\n ? tree.children[0]\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: tree.children\n }\n } else if (element(tree)) {\n node = tree\n } else {\n throw new Error(\n // @ts-expect-error runtime.\n 'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n )\n }\n\n return transform(h, node, {\n schema: options.space === 'svg' ? svg : html,\n prefix:\n prefix === undefined || prefix === null\n ? r || v || vd\n ? 'h-'\n : null\n : typeof prefix === 'string'\n ? prefix\n : prefix\n ? 'h-'\n : null,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n const parentSchema = ctx.schema\n let schema = parentSchema\n let name = node.tagName\n /** @type {Record<string, unknown>} */\n const attributes = {}\n /** @type {Array.<ReturnType<H>|string>} */\n const nodes = []\n let index = -1\n /** @type {string} */\n let key\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg\n ctx.schema = schema\n }\n\n for (key in node.properties) {\n if (node.properties && own.call(node.properties, key)) {\n addAttribute(attributes, key, node.properties[key], ctx, name)\n }\n }\n\n if (ctx.vdom) {\n if (schema.space === 'html') {\n name = name.toUpperCase()\n } else if (schema.space) {\n attributes.namespace = ns[schema.space]\n }\n }\n\n if (ctx.prefix) {\n ctx.key++\n attributes.key = ctx.prefix + ctx.key\n }\n\n if (node.children) {\n while (++index < node.children.length) {\n const value = node.children[index]\n\n if (element(value)) {\n nodes.push(transform(h, value, ctx))\n } else if (text(value)) {\n nodes.push(value.value)\n }\n }\n }\n\n // Restore parent schema.\n ctx.schema = parentSchema\n\n // Ensure no React warnings are triggered for void elements having children\n // passed in.\n return nodes.length > 0\n ? h.call(node, name, attributes, nodes)\n : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n const info = find(ctx.schema, prop)\n /** @type {string|undefined} */\n let subprop\n\n // Ignore nullish and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n if (\n value === undefined ||\n value === null ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\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 // Treat `true` and truthy known booleans.\n if (info.boolean && ctx.hyperscript) {\n value = ''\n }\n\n // VDOM, Vue, and React accept `style` as object.\n if (\n info.property === 'style' &&\n typeof value === 'string' &&\n (ctx.react || ctx.vue || ctx.vdom)\n ) {\n value = parseStyle(value, name)\n }\n\n if (ctx.vue) {\n if (info.property !== 'style') subprop = 'attrs'\n } else if (!info.mustUseProperty) {\n if (ctx.vdom) {\n if (info.property !== 'style') subprop = 'attributes'\n } else if (ctx.hyperscript) {\n subprop = 'attrs'\n }\n }\n\n if (subprop) {\n props[subprop] = Object.assign(props[subprop] || {}, {\n [info.attribute]: value\n })\n } else if (info.space && ctx.react) {\n props[toReact[info.property] || info.property] = value\n } else {\n props[info.attribute] = value\n }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n /** @type {unknown} */\n const node = h('div', {})\n return Boolean(\n node &&\n // @ts-expect-error Looks like a React node.\n ('_owner' in node || '_store' in node) &&\n // @ts-expect-error Looks like a React node.\n (node.key === undefined || node.key === null)\n )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a vnode.\n return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a Vue node.\n return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value, tagName) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, (name, value) => {\n if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n result[\n name.replace(\n /-([a-z])/g,\n /**\n * @param {string} _\n * @param {string} $1\n * @returns {string}\n */ (_, $1) => $1.toUpperCase()\n )\n ] = value\n })\n } catch (error) {\n error.message =\n tagName + '[style]' + error.message.slice('undefined'.length)\n throw error\n }\n\n return result\n}\n","export var webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","export var 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 * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n 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 to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} 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 Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","export var webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n var settings = options || {}\n\n /**\n * Handle one value.\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid†handler will be called.\n * If `value` has an unknown `key`, the special “unknown†handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @param {...unknown} [value]\n * @this {unknown}\n * @returns {unknown}\n * @property {Handler} invalid\n * @property {Handler} unknown\n * @property {Handlers} handlers\n */\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n if (fn) {\n return fn.apply(this, arguments)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude<P5Node, P5Document|P5Fragment>} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5’s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n // @ts-ignore Types are wrong.\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n var p5 = {\n nodeName: '#document',\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n var p5 = {nodeName: '#document-fragment', childNodes: []}\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n return patch(node, {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n return patch(node, {\n nodeName: '#text',\n value: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n return patch(node, {\n nodeName: '#comment',\n data: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n /** @type {Space} */\n // @ts-ignore Assume space.\n var space = schema.space\n return toH(h, Object.assign({}, node, {children: []}), {space})\n\n /**\n * @param {string} name\n * @param {Object.<string, string|boolean|number>} attrs\n */\n function h(name, attrs) {\n /** @type {Array.<P5Attribute>} */\n var values = []\n /** @type {Info} */\n var info\n /** @type {P5Attribute} */\n var value\n /** @type {string} */\n var key\n /** @type {number} */\n var index\n /** @type {P5Element} */\n var p5\n\n for (key in attrs) {\n if (!own.call(attrs, key) || attrs[key] === false) {\n continue\n }\n\n info = find(schema, key)\n\n if (info.boolean && !attrs[key]) {\n continue\n }\n\n value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n index = key.indexOf(':')\n\n if (index < 0) {\n value.prefix = ''\n } else {\n value.name = key.slice(index + 1)\n value.prefix = key.slice(0, index)\n }\n\n value.namespace = webNamespaces[info.space]\n }\n\n values.push(value)\n }\n\n if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n p5 = patch(node, {\n nodeName: name,\n tagName: name,\n attrs: values,\n namespaceURI: webNamespaces[schema.space],\n childNodes: [],\n parentNode: undefined\n })\n\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n\n // @ts-ignore Types are wrong.\n if (name === 'template') p5.content = fragment(node.content, schema)\n\n return p5\n }\n}\n\n/**\n * @param {Array.<Child>} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.<P5Child>}\n */\nfunction all(children, p5, schema) {\n var index = -1\n /** @type {Array.<P5Child>} */\n var result = []\n /** @type {P5Child} */\n var child\n\n if (children) {\n while (++index < children.length) {\n // @ts-ignore Assume child.\n child = one(children[index], schema)\n\n // @ts-ignore types are wrong.\n child.parentNode = p5\n\n result.push(child)\n }\n }\n\n return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n var position = node.position\n\n if (position && position.start && position.end) {\n // @ts-ignore Types are wrong.\n p5.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n\n return p5\n}\n","export var htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n var settings = options || {}\n\n /**\n * Handle one value.\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid†handler will be called.\n * If `value` has an unknown `key`, the special “unknown†handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @param {...unknown} [value]\n * @this {unknown}\n * @returns {unknown}\n * @property {Handler} invalid\n * @property {Handler} unknown\n * @property {Handlers} handlers\n */\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n if (fn) {\n return fn.apply(this, arguments)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit<import('parse5').Element, 'parentNode'>} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit<import('parse5').Location, 'startOffset' | 'endOffset'> & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit<Comment, 'value'> & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array.<string>} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array.<HiddenLocationTracker>} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {Array.<HiddenToken>} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array.<number>} tempBuff\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n *\n * @typedef {Object.<string, unknown> & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array.<number>} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n // @ts-expect-error: hush.\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n return doc\n }\n\n /**\n * @param {Content[]} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processToken(startTag(node), webNamespaces.html)\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js>.\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n tokenizer.write(node.value)\n parser._runParsingLoop(undefined)\n\n // Process final characters if they’re still there after hibernating.\n // Similar to:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processToken(token)\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array.<P5Attribute>}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types').Visitor} Visitor\n */\n\nimport {visitParents, CONTINUE, SKIP, EXIT} from 'unist-util-visit-parents'\n\nexport {CONTINUE, SKIP, EXIT}\n\n/**\n * Visit children of tree which pass a test\n *\n * @param tree Abstract syntax tree to walk\n * @param test Test, optional\n * @param visitor Function to run for each node\n * @param reverse Fisit the tree in reverse, defaults to false\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array.<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | void[], Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, it’s also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity Ï€\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n result[\"default\"] = mod;\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst anser_1 = __importDefault(require(\"anser\"));\nconst escape_carriage_1 = require(\"escape-carriage\");\nconst React = __importStar(require(\"react\"));\n/**\n * Converts ANSI strings into JSON output.\n * @name ansiToJSON\n * @function\n * @param {String} input The input string.\n * @param {boolean} use_classes If `true`, HTML classes will be appended\n * to the HTML output.\n * @return {Array} The parsed input.\n */\nfunction ansiToJSON(input, use_classes = false) {\n input = escape_carriage_1.escapeCarriageReturn(fixBackspace(input));\n return anser_1.default.ansiToJson(input, {\n json: true,\n remove_empty: true,\n use_classes,\n });\n}\n/**\n * Create a class string.\n * @name createClass\n * @function\n * @param {AnserJsonEntry} bundle\n * @return {String} class name(s)\n */\nfunction createClass(bundle) {\n let classNames = \"\";\n if (bundle.bg) {\n classNames += `${bundle.bg}-bg `;\n }\n if (bundle.fg) {\n classNames += `${bundle.fg}-fg `;\n }\n if (bundle.decoration) {\n classNames += `ansi-${bundle.decoration} `;\n }\n if (classNames === \"\") {\n return null;\n }\n classNames = classNames.substring(0, classNames.length - 1);\n return classNames;\n}\n/**\n * Create the style attribute.\n * @name createStyle\n * @function\n * @param {AnserJsonEntry} bundle\n * @return {Object} returns the style object\n */\nfunction createStyle(bundle) {\n const style = {};\n if (bundle.bg) {\n style.backgroundColor = `rgb(${bundle.bg})`;\n }\n if (bundle.fg) {\n style.color = `rgb(${bundle.fg})`;\n }\n return style;\n}\n/**\n * Converts an Anser bundle into a React Node.\n * @param linkify whether links should be converting into clickable anchor tags.\n * @param useClasses should render the span with a class instead of style.\n * @param bundle Anser output.\n * @param key\n */\nfunction convertBundleIntoReact(linkify, useClasses, bundle, key) {\n const style = useClasses ? null : createStyle(bundle);\n const className = useClasses ? createClass(bundle) : null;\n if (!linkify) {\n return React.createElement(\"span\", { style, key, className }, bundle.content);\n }\n const content = [];\n const linkRegex = /(\\s|^)(https?:\\/\\/(?:www\\.|(?!www))[^\\s.]+\\.[^\\s]{2,}|www\\.[^\\s]+\\.[^\\s]{2,})/g;\n let index = 0;\n let match;\n while ((match = linkRegex.exec(bundle.content)) !== null) {\n const [, pre, url] = match;\n const startIndex = match.index + pre.length;\n if (startIndex > index) {\n content.push(bundle.content.substring(index, startIndex));\n }\n // Make sure the href we generate from the link is fully qualified. We assume http\n // if it starts with a www because many sites don't support https\n const href = url.startsWith(\"www.\") ? `http://${url}` : url;\n content.push(React.createElement(\"a\", {\n key: index,\n href,\n target: \"_blank\",\n }, `${url}`));\n index = linkRegex.lastIndex;\n }\n if (index < bundle.content.length) {\n content.push(bundle.content.substring(index));\n }\n return React.createElement(\"span\", { style, key, className }, content);\n}\nfunction Ansi(props) {\n const { className, useClasses, children, linkify } = props;\n return React.createElement(\"code\", { className }, ansiToJSON(children !== null && children !== void 0 ? children : \"\", useClasses !== null && useClasses !== void 0 ? useClasses : false).map(convertBundleIntoReact.bind(null, linkify !== null && linkify !== void 0 ? linkify : false, useClasses !== null && useClasses !== void 0 ? useClasses : false)));\n}\nexports.default = Ansi;\n// This is copied from the Jupyter Classic source code\n// notebook/static/base/js/utils.js to handle \\b in a way\n// that is **compatible with Jupyter classic**. One can\n// argue that this behavior is questionable:\n// https://stackoverflow.com/questions/55440152/multiple-b-doesnt-work-as-expected-in-jupyter#\nfunction fixBackspace(txt) {\n let tmp = txt;\n do {\n txt = tmp;\n // Cancel out anything-but-newline followed by backspace\n tmp = txt.replace(/[^\\n]\\x08/gm, \"\");\n } while (tmp.length < txt.length);\n return txt;\n}\n","\"use strict\";\n\n// This file was originally written by @drudru (https://github.com/drudru/ansi_up), MIT, 2011\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ANSI_COLORS = [[{ color: \"0, 0, 0\", \"class\": \"ansi-black\" }, { color: \"187, 0, 0\", \"class\": \"ansi-red\" }, { color: \"0, 187, 0\", \"class\": \"ansi-green\" }, { color: \"187, 187, 0\", \"class\": \"ansi-yellow\" }, { color: \"0, 0, 187\", \"class\": \"ansi-blue\" }, { color: \"187, 0, 187\", \"class\": \"ansi-magenta\" }, { color: \"0, 187, 187\", \"class\": \"ansi-cyan\" }, { color: \"255,255,255\", \"class\": \"ansi-white\" }], [{ color: \"85, 85, 85\", \"class\": \"ansi-bright-black\" }, { color: \"255, 85, 85\", \"class\": \"ansi-bright-red\" }, { color: \"0, 255, 0\", \"class\": \"ansi-bright-green\" }, { color: \"255, 255, 85\", \"class\": \"ansi-bright-yellow\" }, { color: \"85, 85, 255\", \"class\": \"ansi-bright-blue\" }, { color: \"255, 85, 255\", \"class\": \"ansi-bright-magenta\" }, { color: \"85, 255, 255\", \"class\": \"ansi-bright-cyan\" }, { color: \"255, 255, 255\", \"class\": \"ansi-bright-white\" }]];\n\nvar Anser = function () {\n _createClass(Anser, null, [{\n key: \"escapeForHtml\",\n\n\n /**\n * Anser.escapeForHtml\n * Escape the input HTML.\n *\n * This does the minimum escaping of text to make it compliant with HTML.\n * In particular, the '&','<', and '>' characters are escaped. This should\n * be run prior to `ansiToHtml`.\n *\n * @name Anser.escapeForHtml\n * @function\n * @param {String} txt The input text (containing the ANSI snippets).\n * @returns {String} The escaped html.\n */\n value: function escapeForHtml(txt) {\n return new Anser().escapeForHtml(txt);\n }\n\n /**\n * Anser.linkify\n * Adds the links in the HTML.\n *\n * This replaces any links in the text with anchor tags that display the\n * link. The links should have at least one whitespace character\n * surrounding it. Also, you should apply this after you have run\n * `ansiToHtml` on the text.\n *\n * @name Anser.linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML containing the <a> tags (unescaped).\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return new Anser().linkify(txt);\n }\n\n /**\n * Anser.ansiToHtml\n * This replaces ANSI terminal escape codes with SPAN tags that wrap the\n * content.\n *\n * This function only interprets ANSI SGR (Select Graphic Rendition) codes\n * that can be represented in HTML.\n * For example, cursor movement codes are ignored and hidden from output.\n * The default style uses colors that are very close to the prescribed\n * standard. The standard assumes that the text will have a black\n * background. These colors are set as inline styles on the SPAN tags.\n *\n * Another option is to set `use_classes: true` in the options argument.\n * This will instead set classes on the spans so the colors can be set via\n * CSS. The class names used are of the format `ansi-*-fg/bg` and\n * `ansi-bright-*-fg/bg` where `*` is the color name,\n * i.e black/red/green/yellow/blue/magenta/cyan/white.\n *\n * @name Anser.ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return new Anser().ansiToHtml(txt, options);\n }\n\n /**\n * Anser.ansiToJson\n * Converts ANSI input into JSON output.\n *\n * @name Anser.ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed to the ansiToHTML method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n return new Anser().ansiToJson(txt, options);\n }\n\n /**\n * Anser.ansiToText\n * Converts ANSI input into text output.\n *\n * @name Anser.ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return new Anser().ansiToText(txt);\n }\n\n /**\n * Anser\n * The `Anser` class.\n *\n * @name Anser\n * @function\n * @returns {Anser}\n */\n\n }]);\n\n function Anser() {\n _classCallCheck(this, Anser);\n\n this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n this.bright = 0;\n }\n\n /**\n * setupPalette\n * Sets up the palette.\n *\n * @name setupPalette\n * @function\n */\n\n\n _createClass(Anser, [{\n key: \"setupPalette\",\n value: function setupPalette() {\n this.PALETTE_COLORS = [];\n\n // Index 0..15 : System color\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 8; ++j) {\n this.PALETTE_COLORS.push(ANSI_COLORS[i][j].color);\n }\n }\n\n // Index 16..231 : RGB 6x6x6\n // https://gist.github.com/jasonm23/2868981#file-xterm-256color-yaml\n var levels = [0, 95, 135, 175, 215, 255];\n var format = function format(r, g, b) {\n return levels[r] + \", \" + levels[g] + \", \" + levels[b];\n };\n var r = void 0,\n g = void 0,\n b = void 0;\n for (var _r = 0; _r < 6; ++_r) {\n for (var _g = 0; _g < 6; ++_g) {\n for (var _b = 0; _b < 6; ++_b) {\n this.PALETTE_COLORS.push(format(_r, _g, _b));\n }\n }\n }\n\n // Index 232..255 : Grayscale\n var level = 8;\n for (var _i = 0; _i < 24; ++_i, level += 10) {\n this.PALETTE_COLORS.push(format(level, level, level));\n }\n }\n\n /**\n * escapeForHtml\n * Escapes the input text.\n *\n * @name escapeForHtml\n * @function\n * @param {String} txt The input text.\n * @returns {String} The escpaed HTML output.\n */\n\n }, {\n key: \"escapeForHtml\",\n value: function escapeForHtml(txt) {\n return txt.replace(/[&<>]/gm, function (str) {\n return str == \"&\" ? \"&\" : str == \"<\" ? \"<\" : str == \">\" ? \">\" : \"\";\n });\n }\n\n /**\n * linkify\n * Adds HTML link elements.\n *\n * @name linkify\n * @function\n * @param {String} txt The input text.\n * @returns {String} The HTML output containing link elements.\n */\n\n }, {\n key: \"linkify\",\n value: function linkify(txt) {\n return txt.replace(/(https?:\\/\\/[^\\s]+)/gm, function (str) {\n return \"<a href=\\\"\" + str + \"\\\">\" + str + \"</a>\";\n });\n }\n\n /**\n * ansiToHtml\n * Converts ANSI input into HTML output.\n *\n * @name ansiToHtml\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The HTML output.\n */\n\n }, {\n key: \"ansiToHtml\",\n value: function ansiToHtml(txt, options) {\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToJson\n * Converts ANSI input into HTML output.\n *\n * @name ansiToJson\n * @function\n * @param {String} txt The input text.\n * @param {Object} options The options passed ot the `process` method.\n * @returns {String} The JSON output.\n */\n\n }, {\n key: \"ansiToJson\",\n value: function ansiToJson(txt, options) {\n options = options || {};\n options.json = true;\n options.clearLine = false;\n return this.process(txt, options, true);\n }\n\n /**\n * ansiToText\n * Converts ANSI input into HTML output.\n *\n * @name ansiToText\n * @function\n * @param {String} txt The input text.\n * @returns {String} The text output.\n */\n\n }, {\n key: \"ansiToText\",\n value: function ansiToText(txt) {\n return this.process(txt, {}, false);\n }\n\n /**\n * process\n * Processes the input.\n *\n * @name process\n * @function\n * @param {String} txt The input text.\n * @param {Object} options An object passed to `processChunk` method, extended with:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup\n */\n\n }, {\n key: \"process\",\n value: function process(txt, options, markup) {\n var _this = this;\n\n var self = this;\n var raw_text_chunks = txt.split(/\\033\\[/);\n var first_chunk = raw_text_chunks.shift(); // the first chunk is not the result of the split\n\n if (options === undefined || options === null) {\n options = {};\n }\n options.clearLine = /\\r/.test(txt); // check for Carriage Return\n var color_chunks = raw_text_chunks.map(function (chunk) {\n return _this.processChunk(chunk, options, markup);\n });\n\n if (options && options.json) {\n var first = self.processChunkJson(\"\");\n first.content = first_chunk;\n first.clearLine = options.clearLine;\n color_chunks.unshift(first);\n if (options.remove_empty) {\n color_chunks = color_chunks.filter(function (c) {\n return !c.isEmpty();\n });\n }\n return color_chunks;\n } else {\n color_chunks.unshift(first_chunk);\n }\n\n return color_chunks.join(\"\");\n }\n\n /**\n * processChunkJson\n * Processes the current chunk into json output.\n *\n * @name processChunkJson\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object} The result object:\n *\n * - `content` (String): The text.\n * - `fg` (String|null): The foreground color.\n * - `bg` (String|null): The background color.\n * - `fg_truecolor` (String|null): The foreground true color (if 16m color is enabled).\n * - `bg_truecolor` (String|null): The background true color (if 16m color is enabled).\n * - `clearLine` (Boolean): `true` if a carriageReturn \\r was fount at end of line.\n * - `was_processed` (Bolean): `true` if the colors were processed, `false` otherwise.\n * - `isEmpty` (Function): A function returning `true` if the content is empty, or `false` otherwise.\n *\n */\n\n }, {\n key: \"processChunkJson\",\n value: function processChunkJson(text, options, markup) {\n\n // Are we using classes or styles?\n options = typeof options == \"undefined\" ? {} : options;\n var use_classes = options.use_classes = typeof options.use_classes != \"undefined\" && options.use_classes;\n var key = options.key = use_classes ? \"class\" : \"color\";\n\n var result = {\n content: text,\n fg: null,\n bg: null,\n fg_truecolor: null,\n bg_truecolor: null,\n clearLine: options.clearLine,\n decoration: null,\n was_processed: false,\n isEmpty: function isEmpty() {\n return !result.content;\n }\n };\n\n // Each \"chunk\" is the text after the CSI (ESC + \"[\") and before the next CSI/EOF.\n //\n // This regex matches four groups within a chunk.\n //\n // The first and third groups match code type.\n // We supported only SGR command. It has empty first group and \"m\" in third.\n //\n // The second group matches all of the number+semicolon command sequences\n // before the \"m\" (or other trailing) character.\n // These are the graphics or SGR commands.\n //\n // The last group is the text (including newlines) that is colored by\n // the other group\"s commands.\n var matches = text.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n\n if (!matches) return result;\n\n var orig_txt = result.content = matches[4];\n var nums = matches[2].split(\";\");\n\n // We currently support only \"SGR\" (Select Graphic Rendition)\n // Simply ignore if not a SGR command.\n if (matches[1] !== \"\" || matches[3] !== \"m\") {\n return result;\n }\n\n if (!markup) {\n return result;\n }\n\n var self = this;\n\n self.decoration = null;\n\n while (nums.length > 0) {\n var num_str = nums.shift();\n var num = parseInt(num_str);\n\n if (isNaN(num) || num === 0) {\n self.fg = self.bg = self.decoration = null;\n } else if (num === 1) {\n self.decoration = \"bold\";\n } else if (num === 2) {\n self.decoration = \"dim\";\n // Enable code 2 to get string\n } else if (num == 3) {\n self.decoration = \"italic\";\n } else if (num == 4) {\n self.decoration = \"underline\";\n } else if (num == 5) {\n self.decoration = \"blink\";\n } else if (num === 7) {\n self.decoration = \"reverse\";\n } else if (num === 8) {\n self.decoration = \"hidden\";\n // Enable code 9 to get strikethrough\n } else if (num === 9) {\n self.decoration = \"strikethrough\";\n } else if (num == 39) {\n self.fg = null;\n } else if (num == 49) {\n self.bg = null;\n // Foreground color\n } else if (num >= 30 && num < 38) {\n self.fg = ANSI_COLORS[0][num % 10][key];\n // Foreground bright color\n } else if (num >= 90 && num < 98) {\n self.fg = ANSI_COLORS[1][num % 10][key];\n // Background color\n } else if (num >= 40 && num < 48) {\n self.bg = ANSI_COLORS[0][num % 10][key];\n // Background bright color\n } else if (num >= 100 && num < 108) {\n self.bg = ANSI_COLORS[1][num % 10][key];\n } else if (num === 38 || num === 48) {\n // extend color (38=fg, 48=bg)\n var is_foreground = num === 38;\n if (nums.length >= 1) {\n var mode = nums.shift();\n if (mode === \"5\" && nums.length >= 1) {\n // palette color\n var palette_index = parseInt(nums.shift());\n if (palette_index >= 0 && palette_index <= 255) {\n if (!use_classes) {\n if (!this.PALETTE_COLORS) {\n self.setupPalette();\n }\n if (is_foreground) {\n self.fg = this.PALETTE_COLORS[palette_index];\n } else {\n self.bg = this.PALETTE_COLORS[palette_index];\n }\n } else {\n var klass = palette_index >= 16 ? \"ansi-palette-\" + palette_index : ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8][\"class\"];\n if (is_foreground) {\n self.fg = klass;\n } else {\n self.bg = klass;\n }\n }\n }\n } else if (mode === \"2\" && nums.length >= 3) {\n // true color\n var r = parseInt(nums.shift());\n var g = parseInt(nums.shift());\n var b = parseInt(nums.shift());\n if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {\n var color = r + \", \" + g + \", \" + b;\n if (!use_classes) {\n if (is_foreground) {\n self.fg = color;\n } else {\n self.bg = color;\n }\n } else {\n if (is_foreground) {\n self.fg = \"ansi-truecolor\";\n self.fg_truecolor = color;\n } else {\n self.bg = \"ansi-truecolor\";\n self.bg_truecolor = color;\n }\n }\n }\n }\n }\n }\n }\n\n if (self.fg === null && self.bg === null && self.decoration === null) {\n return result;\n } else {\n var styles = [];\n var classes = [];\n var data = {};\n\n result.fg = self.fg;\n result.bg = self.bg;\n result.fg_truecolor = self.fg_truecolor;\n result.bg_truecolor = self.bg_truecolor;\n result.decoration = self.decoration;\n result.was_processed = true;\n\n return result;\n }\n }\n\n /**\n * processChunk\n * Processes the current chunk of text.\n *\n * @name processChunk\n * @function\n * @param {String} text The input text.\n * @param {Object} options An object containing the following fields:\n *\n * - `json` (Boolean): If `true`, the result will be an object.\n * - `use_classes` (Boolean): If `true`, HTML classes will be appended to the HTML output.\n *\n * @param {Boolean} markup If false, the colors will not be parsed.\n * @return {Object|String} The result (object if `json` is wanted back or string otherwise).\n */\n\n }, {\n key: \"processChunk\",\n value: function processChunk(text, options, markup) {\n var _this2 = this;\n\n var self = this;\n options = options || {};\n var jsonChunk = this.processChunkJson(text, options, markup);\n\n if (options.json) {\n return jsonChunk;\n }\n if (jsonChunk.isEmpty()) {\n return \"\";\n }\n if (!jsonChunk.was_processed) {\n return jsonChunk.content;\n }\n\n var use_classes = options.use_classes;\n\n var styles = [];\n var classes = [];\n var data = {};\n var render_data = function render_data(data) {\n var fragments = [];\n var key = void 0;\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n fragments.push(\"data-\" + key + \"=\\\"\" + _this2.escapeForHtml(data[key]) + \"\\\"\");\n }\n }\n return fragments.length > 0 ? \" \" + fragments.join(\" \") : \"\";\n };\n\n if (jsonChunk.fg) {\n if (use_classes) {\n classes.push(jsonChunk.fg + \"-fg\");\n if (jsonChunk.fg_truecolor !== null) {\n data[\"ansi-truecolor-fg\"] = jsonChunk.fg_truecolor;\n jsonChunk.fg_truecolor = null;\n }\n } else {\n styles.push(\"color:rgb(\" + jsonChunk.fg + \")\");\n }\n }\n\n if (jsonChunk.bg) {\n if (use_classes) {\n classes.push(jsonChunk.bg + \"-bg\");\n if (jsonChunk.bg_truecolor !== null) {\n data[\"ansi-truecolor-bg\"] = jsonChunk.bg_truecolor;\n jsonChunk.bg_truecolor = null;\n }\n } else {\n styles.push(\"background-color:rgb(\" + jsonChunk.bg + \")\");\n }\n }\n\n if (jsonChunk.decoration) {\n if (use_classes) {\n classes.push(\"ansi-\" + jsonChunk.decoration);\n } else if (jsonChunk.decoration === \"bold\") {\n styles.push(\"font-weight:bold\");\n } else if (jsonChunk.decoration === \"dim\") {\n styles.push(\"opacity:0.5\");\n } else if (jsonChunk.decoration === \"italic\") {\n styles.push(\"font-style:italic\");\n // underline and blink are treated bellow\n } else if (jsonChunk.decoration === \"reverse\") {\n styles.push(\"filter:invert(100%)\");\n } else if (jsonChunk.decoration === \"hidden\") {\n styles.push(\"visibility:hidden\");\n } else if (jsonChunk.decoration === \"strikethrough\") {\n styles.push(\"text-decoration:line-through\");\n } else {\n styles.push(\"text-decoration:\" + jsonChunk.decoration);\n }\n }\n\n if (use_classes) {\n return \"<span class=\\\"\" + classes.join(\" \") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n } else {\n return \"<span style=\\\"\" + styles.join(\";\") + \"\\\"\" + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n }\n }\n }]);\n\n return Anser;\n}();\n\n;\n\nmodule.exports = Anser;","/**\n * Escape carrigage returns like a terminal\n * @param {string} txt - String to escape.\n * @return {string} - Escaped string.\n */\nfunction escapeCarriageReturn(txt) {\n if (!txt) return \"\";\n if (!/\\r/.test(txt)) return txt;\n txt = txt.replace(/\\r+\\n/gm, \"\\n\"); // \\r followed by \\n --> newline\n while (/\\r[^$]/.test(txt)) {\n var base = /^(.*)\\r+/m.exec(txt)[1];\n var insert = /\\r+(.*)$/m.exec(txt)[1];\n insert = insert + base.slice(insert.length, base.length);\n txt = txt.replace(/\\r+.*$/m, \"\\r\").replace(/^.*\\r/m, insert);\n }\n return txt;\n}\n\nfunction findLongestString(arr) {\n var longest = 0;\n for (var i = 0; i < arr.length; i++) {\n if (arr[longest].length <= arr[i].length) {\n longest = i;\n }\n }\n return longest;\n}\n\nfunction escapeSingleLineSafe(txt) {\n if (!/\\r/.test(txt)) return txt;\n var arr = txt.split(\"\\r\");\n var res = [];\n\n while (arr.length > 0) {\n var longest = findLongestString(arr);\n res.push(arr[longest]);\n arr = arr.slice(longest + 1);\n }\n\n return res.join(\"\\r\");\n}\n\n/**\n * Safely escape carrigage returns like a terminal.\n * This allows to escape carrigage returns while allowing future output to be appended\n * without loosing information.\n * Use this as a intermediate escape step if your stream hasn't completed yet.\n * @param {string} txt - String to escape.\n * @return {string} - Escaped string.\n */\nfunction escapeCarriageReturnSafe(txt) {\n if (!txt) return \"\";\n if (!/\\r/.test(txt)) return txt;\n if (!/\\n/.test(txt)) return escapeSingleLineSafe(txt);\n txt = txt.replace(/\\r+\\n/gm, \"\\n\"); // \\r followed by \\n --> newline\n var idx = txt.lastIndexOf(\"\\n\");\n\n return (\n escapeCarriageReturn(txt.slice(0, idx)) +\n \"\\n\" +\n escapeSingleLineSafe(txt.slice(idx + 1))\n );\n}\n\nmodule.exports = escapeCarriageReturn;\nmodule.exports.escapeCarriageReturn = escapeCarriageReturn;\nmodule.exports.escapeCarriageReturnSafe = escapeCarriageReturnSafe;\n","'use strict'\n\nconst React = require('react')\nconst vfile = require('vfile')\nconst unified = require('unified')\nconst parse = require('remark-parse')\nconst remarkRehype = require('remark-rehype')\nconst PropTypes = require('prop-types')\nconst html = require('property-information/html')\nconst filter = require('./rehype-filter.js')\nconst uriTransformer = require('./uri-transformer.js')\nconst childrenToReact = require('./ast-to-react.js').hastChildrenToReact\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').RehypeFilterOptions} FilterOptions\n * @typedef {import('./ast-to-react.js').TransformOptions} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [plugins=[]] **deprecated**: use `remarkPlugins` instead\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n */\n\nmodule.exports = ReactMarkdown\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/**\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\n/**\n * @type {Object.<string, Deprecation>}\n */\nconst deprecated = {\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nfunction ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n /** @type {Deprecation} */\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(parse)\n // TODO: deprecate `plugins` in v7.0.0.\n .use(options.remarkPlugins || options.plugins || [])\n .use(remarkRehype, {allowDangerousHtml: true})\n .use(options.rehypePlugins || [])\n .use(filter, options)\n\n /** @type {vfile} */\n let file\n\n if (typeof options.children === 'string') {\n file = vfile(options.children)\n } else {\n if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n file = vfile()\n }\n\n /** @type {Root} */\n // @ts-expect-error we’ll throw if it isn’t a root next.\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options: options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n // type-coverage:ignore-next-line\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // type-coverage:ignore-next-line\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n\nReactMarkdown.uriTransformer = uriTransformer\n","'use strict'\n\nvar VMessage = require('vfile-message')\nvar VFile = require('./core.js')\n\nmodule.exports = VFile\n\nVFile.prototype.message = message\nVFile.prototype.info = info\nVFile.prototype.fail = fail\n\n// Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin)\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// Fail: creates a vmessage, associates it with the file, and throws it.\nfunction fail() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = true\n\n throw message\n}\n\n// Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\nfunction info() {\n var message = this.message.apply(this, arguments)\n\n message.fatal = null\n\n return message\n}\n","'use strict'\n\nvar stringify = require('unist-util-stringify-position')\n\nmodule.exports = VMessage\n\n// Inherit from `Error#`.\nfunction VMessagePrototype() {}\nVMessagePrototype.prototype = Error.prototype\nVMessage.prototype = new VMessagePrototype()\n\n// Message properties.\nvar proto = VMessage.prototype\n\nproto.file = ''\nproto.name = ''\nproto.reason = ''\nproto.message = ''\nproto.stack = ''\nproto.fatal = null\nproto.column = null\nproto.line = null\n\n// Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\nfunction VMessage(reason, position, origin) {\n var parts\n var range\n var location\n\n if (typeof position === 'string') {\n origin = position\n position = null\n }\n\n parts = parseOrigin(origin)\n range = stringify(position) || '1:1'\n\n location = {\n start: {line: null, column: null},\n end: {line: null, column: null}\n }\n\n // Node.\n if (position && position.position) {\n position = position.position\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position\n position = position.start\n } else {\n // Point.\n location.start = position\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack\n reason = reason.message\n }\n\n this.message = reason\n this.name = range\n this.reason = reason\n this.line = position ? position.line : null\n this.column = position ? position.column : null\n this.location = location\n this.source = parts[0]\n this.ruleId = parts[1]\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null]\n var index\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':')\n\n if (index === -1) {\n result[1] = origin\n } else {\n result[0] = origin.slice(0, index)\n result[1] = origin.slice(index + 1)\n }\n }\n\n return result\n}\n","'use strict'\n\nvar p = require('./minpath')\nvar proc = require('./minproc')\nvar buffer = require('is-buffer')\n\nmodule.exports = VFile\n\nvar own = {}.hasOwnProperty\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.\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nVFile.prototype.toString = toString\n\n// Access full path (`~/index.min.js`).\nObject.defineProperty(VFile.prototype, 'path', {get: getPath, set: setPath})\n\n// Access parent path (`~`).\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n})\n\n// Access basename (`index.min.js`).\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n})\n\n// Access extname (`.js`).\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n})\n\n// Access stem (`index.min`).\nObject.defineProperty(VFile.prototype, 'stem', {get: getStem, set: setStem})\n\n// Construct a new file.\nfunction VFile(options) {\n var prop\n var index\n\n if (!options) {\n options = {}\n } else if (typeof options === 'string' || buffer(options)) {\n options = {contents: options}\n } else if ('message' in options && 'messages' in options) {\n return options\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options)\n }\n\n this.data = {}\n this.messages = []\n this.history = []\n this.cwd = proc.cwd()\n\n // Set path related properties in the correct order.\n index = -1\n\n while (++index < order.length) {\n prop = order[index]\n\n if (own.call(options, prop)) {\n this[prop] = options[prop]\n }\n }\n\n // Set non-path related properties.\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop]\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1]\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname')\n this.path = p.join(dirname || '', this.basename)\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = p.join(this.dirname || '', basename)\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.path, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''))\n}\n\nfunction getStem() {\n return typeof this.path === 'string'\n ? p.basename(this.path, this.extname)\n : undefined\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = p.join(this.dirname || '', stem + (this.extname || ''))\n}\n\n// Get the value of the file.\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding)\n}\n\n// Assert that `part` is not a path (i.e., does not contain `p.sep`).\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + p.sep + '`'\n )\n }\n}\n\n// Assert that `part` is not empty.\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n// Assert `path` exists.\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n","'use strict'\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\nexports.basename = basename\nexports.dirname = dirname\nexports.extname = extname\nexports.join = join\nexports.sep = '/'\n\nfunction basename(path, ext) {\n var start = 0\n var end = -1\n var index\n var firstNonSlashEnd\n var seenNonSlash\n var extIndex\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n index = path.length\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(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 (ext === path) {\n return ''\n }\n\n firstNonSlashEnd = -1\n extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(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 (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 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 extIndex = -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\nfunction dirname(path) {\n var end\n var unmatchedSlash\n var index\n\n assertPath(path)\n\n if (!path.length) {\n return '.'\n }\n\n end = -1\n index = path.length\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(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.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\nfunction extname(path) {\n var startDot = -1\n var startPart = 0\n var end = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n var preDotState = 0\n var unmatchedSlash\n var code\n var index\n\n assertPath(path)\n\n index = path.length\n\n while (index--) {\n code = path.charCodeAt(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\nfunction join() {\n var index = -1\n var joined\n\n while (++index < arguments.length) {\n assertPath(arguments[index])\n\n if (arguments[index]) {\n joined =\n joined === undefined\n ? arguments[index]\n : joined + '/' + arguments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n var absolute\n var value\n\n assertPath(path)\n\n absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n value = normalizeString(path, !absolute)\n\n if (!value.length && !absolute) {\n value = '.'\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n// Resolve `.` and `..` elements in a path with directory names.\nfunction normalizeString(path, allowAboveRoot) {\n var result = ''\n var lastSegmentLength = 0\n var lastSlash = -1\n var dots = 0\n var index = -1\n var code\n var lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(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.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n /* istanbul ignore else - No clue how to cover it. */\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) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length) {\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\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","'use strict'\n\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. 😅\nexports.cwd = cwd\n\nfunction cwd() {\n return '/'\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = bail\n\nfunction bail(err) {\n if (err) {\n throw err\n }\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict'\n\nvar wrap = require('./wrap.js')\n\nmodule.exports = trough\n\ntrough.wrap = wrap\n\nvar slice = [].slice\n\n// Create new middleware.\nfunction trough() {\n var fns = []\n var middleware = {}\n\n middleware.run = run\n middleware.use = use\n\n return middleware\n\n // Run `fns`. Last argument must be a completion handler.\n function run() {\n var index = -1\n var input = slice.call(arguments, 0, -1)\n var done = arguments[arguments.length - 1]\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done)\n }\n\n next.apply(null, [null].concat(input))\n\n // Run the next `fn`, if any.\n function next(err) {\n var fn = fns[++index]\n var params = slice.call(arguments, 0)\n var values = params.slice(1)\n var length = input.length\n var pos = -1\n\n if (err) {\n done(err)\n return\n }\n\n // Copy non-nully input into values.\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos]\n }\n }\n\n input = values\n\n // Next or done.\n if (fn) {\n wrap(fn, next).apply(null, input)\n } else {\n done.apply(null, [null].concat(input))\n }\n }\n }\n\n // Add `fn` to the list.\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn)\n }\n\n fns.push(fn)\n\n return middleware\n }\n}\n","'use strict'\n\nvar slice = [].slice\n\nmodule.exports = wrap\n\n// Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\nfunction wrap(fn, callback) {\n var invoked\n\n return wrapped\n\n function wrapped() {\n var params = slice.call(arguments, 0)\n var callback = fn.length > params.length\n var result\n\n if (callback) {\n params.push(done)\n }\n\n try {\n result = fn.apply(null, params)\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error\n }\n\n return done(error)\n }\n\n if (!callback) {\n if (result && 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 // Invoke `next`, only once.\n function done() {\n if (!invoked) {\n invoked = true\n\n callback.apply(null, arguments)\n }\n }\n\n // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n function then(value) {\n done(null, value)\n }\n}\n","'use strict'\n\nmodule.exports = parse\n\nvar fromMarkdown = require('mdast-util-from-markdown')\n\nfunction parse(options) {\n var self = this\n\n this.Parser = parse\n\n function parse(doc) {\n return fromMarkdown(\n doc,\n Object.assign({}, self.data('settings'), 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","'use strict'\n\nmodule.exports = require('./dist')\n","'use strict'\n\nmodule.exports = fromMarkdown\n\n// These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string')\nvar assign = require('micromark/dist/constant/assign')\nvar own = require('micromark/dist/constant/has-own-property')\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier')\nvar safeFromInt = require('micromark/dist/util/safe-from-int')\nvar parser = require('micromark/dist/parse')\nvar preprocessor = require('micromark/dist/preprocess')\nvar postprocess = require('micromark/dist/postprocess')\nvar decode = require('parse-entities/decode-entity')\nvar stringifyPosition = require('unist-util-stringify-position')\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parser(options).document().write(preprocessor()(value, encoding, true))\n )\n )\n}\n\n// Note this compiler only understand complete buffering, not streaming.\nfunction compiler(options) {\n var settings = options || {}\n var config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n\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\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 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\n settings.mdastExtensions || []\n )\n\n var data = {}\n\n return compile\n\n function compile(events) {\n var tree = {type: 'root', children: []}\n var stack = [tree]\n var tokenStack = []\n var listStack = []\n var index = -1\n var handler\n var listStart\n\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n }\n\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 (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n listStart = listStack.pop(index)\n index = prepareList(events, listStart, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n assign({sliceSerialize: events[index][2].sliceSerialize}, context),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length) {\n throw new Error(\n 'Cannot close document, a token (`' +\n tokenStack[tokenStack.length - 1].type +\n '`, ' +\n stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) +\n ') is still open'\n )\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n\n end: point(\n events.length\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n function prepareList(events, start, length) {\n var index = start - 1\n var containerBalance = -1\n var listSpread = false\n var listItem\n var tailIndex\n var lineIndex\n var tailEvent\n var event\n var firstBlankLineIndex\n var atMarker\n\n while (++index <= length) {\n event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = point(\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\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 listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n }\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n function setData(key, value) {\n data[key] = value\n }\n\n function getData(key) {\n return data[key]\n }\n\n function point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n }\n\n function opener(create, and) {\n return open\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node)\n this.stack.push(node)\n this.tokenStack.push(token)\n node.position = {start: point(token.start)}\n return node\n }\n\n function closer(and) {\n return close\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n function exit(token) {\n var node = this.stack.pop()\n var open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open.type !== token.type) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): a different token (`' +\n open.type +\n '`, ' +\n stringifyPosition({start: open.start, end: open.end}) +\n ') is open'\n )\n }\n\n node.position.end = point(token.end)\n return node\n }\n\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(\n this.sliceSerialize(token),\n 10\n )\n\n setData('expectingFirstListItemValue')\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume()\n this.stack[this.stack.length - 1].lang = data\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n\n function onexitcodefenced() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data.replace(\n /^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g,\n ''\n )\n\n setData('flowCodeInside')\n }\n\n function onexitcodeindented() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(\n token\n ).length\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth =\n this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children\n var tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {start: point(token.start)}\n this.stack[this.stack.length - 1].children.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]\n\n // If we’re at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(\n token.end\n )\n\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.indexOf(context.type) > -1\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n\n function onexithtmlflow() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexithtmltext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitcodetext() {\n var data = this.resume()\n this.stack[this.stack.length - 1].value = data\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]\n\n // To do: clean.\n if (getData('inReference')) {\n context.type += 'Reference'\n context.referenceType = getData('referenceType') || 'shortcut'\n delete context.url\n delete context.title\n } else {\n delete context.identifier\n delete context.label\n delete context.referenceType\n }\n\n setData('referenceType')\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1]\n var value = this.resume()\n\n this.stack[this.stack.length - 1].label = value\n\n // Assume a reference.\n setData('inReference', true)\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children\n } else {\n this.stack[this.stack.length - 1].alt = value\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].url = data\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume()\n this.stack[this.stack.length - 1].title = data\n }\n\n function onexitresource() {\n setData('inReference')\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n\n function onexitreferencestring(token) {\n var label = this.resume()\n this.stack[this.stack.length - 1].label = label\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token)\n var type = getData('characterReferenceType')\n var value\n var tail\n\n if (type) {\n value = safeFromInt(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n\n setData('characterReferenceType')\n } else {\n value = decode(data)\n }\n\n tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token)\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n this.stack[this.stack.length - 1].url =\n 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n function heading() {\n return {type: 'heading', depth: undefined, children: []}\n }\n\n function hardBreak() {\n return {type: 'break'}\n }\n\n function html() {\n return {type: 'html', value: ''}\n }\n\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\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 function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n function strong() {\n return {type: 'strong', children: []}\n }\n\n function text() {\n return {type: 'text', value: ''}\n }\n\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1\n\n while (++index < extensions.length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key])\n } else {\n Object.assign(left, extension[key])\n }\n }\n}\n","'use strict'\n\nmodule.exports = toString\n\n// Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\nfunction toString(node) {\n return (\n (node &&\n (node.value ||\n node.alt ||\n node.title ||\n ('children' in node && all(node.children)) ||\n ('length' in node && all(node)))) ||\n ''\n )\n}\n\nfunction all(values) {\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = toString(values[index])\n }\n\n return result.join('')\n}\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return fromCharCode(code)\n}\n\nmodule.exports = safeFromInt\n","'use strict'\n\nvar content = require('./initialize/content.js')\nvar document = require('./initialize/document.js')\nvar flow = require('./initialize/flow.js')\nvar text = require('./initialize/text.js')\nvar combineExtensions = require('./util/combine-extensions.js')\nvar createTokenizer = require('./util/create-tokenizer.js')\nvar miniflat = require('./util/miniflat.js')\nvar constructs = require('./constructs.js')\n\nfunction parse(options) {\n var settings = options || {}\n var parser = {\n defined: [],\n constructs: combineExtensions(\n [constructs].concat(miniflat(settings.extensions))\n ),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n }\n return parser\n\n function create(initializer) {\n return creator\n\n function creator(from) {\n return createTokenizer(parser, initializer, from)\n }\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\n\nvar tokenize = initializeContent\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n var previous\n return contentStart\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeDocument\nvar containerConstruct = {\n tokenize: tokenizeContainer\n}\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n}\n\nfunction initializeDocument(effects) {\n var self = this\n var stack = []\n var continued = 0\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n }\n var inspectResult\n var childFlow\n var childToken\n return start\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1]\n return effects.attempt(\n stack[continued][0].continuation,\n documentContinue,\n documentContinued\n )(code)\n }\n\n return documentContinued(code)\n }\n\n function documentContinue(code) {\n continued++\n return start(code)\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code)\n }\n\n self.interrupt =\n childFlow &&\n childFlow.currentConstruct &&\n childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState])\n self.containerState = undefined\n return documentContinued(code)\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'))\n return flowStart(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n continueFlow(effects.exit('chunkFlow'))\n return effects.check(inspectConstruct, documentAfterPeek)\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n function documentAfterPeek(code) {\n exitContainers(\n inspectResult.continued,\n inspectResult && inspectResult.flowEnd\n )\n continued = 0\n return start(code)\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token\n childToken = token\n childFlow.lazy = inspectResult && inspectResult.lazy\n childFlow.defineSkip(token.start)\n childFlow.write(self.sliceStream(token))\n }\n\n function exitContainers(size, end) {\n var index = stack.length // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null])\n childToken = childFlow = undefined\n } // Exit open containers.\n\n while (index-- > size) {\n self.containerState = stack[index][1]\n stack[index][0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0\n inspectResult = {}\n return inspectStart\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1]\n return effects.attempt(\n stack[subcontinued][0].continuation,\n inspectContinue,\n inspectLess\n )(code)\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true\n return inspectDone(code)\n }\n\n self.interrupt =\n childFlow.currentConstruct && childFlow.currentConstruct.interruptible\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd,\n inspectDone\n )(code)\n }\n\n function inspectContinue(code) {\n subcontinued++\n return self.containerState._closeFlow\n ? inspectFlowEnd(code)\n : inspectStart(code)\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(\n lazyFlowConstruct,\n inspectFlowEnd,\n effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)\n )\n )(code)\n } // Otherwise we’re interrupting.\n\n return inspectFlowEnd(code)\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length\n inspectResult.lazy = true\n inspectResult.flowContinue = true\n return inspectDone(code)\n } // We’re done with flow if we have more containers, or an interruption.\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true\n return inspectDone(code)\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued\n self.interrupt = self.containerState = undefined\n return ok(code)\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.lazy(this.parser.constructs.flow, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar content = require('../tokenize/content.js')\nvar factorySpace = require('../tokenize/factory-space.js')\nvar partialBlankLine = require('../tokenize/partial-blank-line.js')\n\nvar tokenize = initializeFlow\n\nfunction initializeFlow(effects) {\n var self = this\n var initial = effects.attempt(\n // Try to parse a blank line.\n partialBlankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n\nexports.tokenize = tokenize\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar subtokenize = require('../util/subtokenize.js')\nvar factorySpace = require('./factory-space.js')\n\n// No name because it must not be turned off.\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n}\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\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\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous\n return start\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n })\n return data\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this\n return startLookahead\n\n function startLookahead(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ||\n prefixSize(self.events, 'linePrefix') < 4\n ) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n\n return ok(code)\n }\n}\n\nmodule.exports = content\n","'use strict'\n\nvar splice = [].splice\n\nmodule.exports = splice\n","'use strict'\n\nvar assign = require('../constant/assign.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedPush = require('./chunked-push.js')\nvar chunkedSplice = require('./chunked-splice.js')\nvar miniflat = require('./miniflat.js')\nvar resolveAll = require('./resolve-all.js')\nvar serializeChunks = require('./serialize-chunks.js')\nvar shallow = require('./shallow.js')\nvar sliceChunks = require('./slice-chunks.js')\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`.\nfunction createTokenizer(parser, initialize, from) {\n var point = from\n ? shallow(from)\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n var columnStart = {}\n var resolveAllConstructs = []\n var chunks = []\n var stack = []\n\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n } // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n } // The state function.\n\n var state = initialize.tokenize.call(context, effects) // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n } // Store where we are in the input stream.\n\n point._index = 0\n point._bufferIndex = -1\n return context\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice)\n main() // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token))\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n function now() {\n return shallow(point)\n }\n\n function skip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\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 function main() {\n var chunkIndex\n var chunk\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n } // Deal with one code.\n\n function go(code) {\n state = state(code)\n } // Move a character forward.\n\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 } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n } // Start a token.\n\n function enter(type, fields) {\n var 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 } // Stop a token.\n\n function exit(type) {\n var token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n } // Use results.\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n } // Discard results.\n\n function onsuccessfulcheck(construct, info) {\n info.restore()\n } // Factory to attempt/check/interrupt.\n\n function constructFactory(onreturn, fields) {\n return hook // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs\n var constructIndex\n var currentConstruct\n var info\n return constructs.tokenize || 'length' in constructs\n ? handleListOfConstructs(miniflat(constructs))\n : handleMapOfConstructs\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(\n constructs.null\n ? /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null))\n : constructs[code]\n )(code)\n }\n\n return bogusState(code)\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n return handleConstruct(list[constructIndex])\n }\n\n function handleConstruct(construct) {\n return start\n\n function start(code) {\n // To do: not nede 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\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.indexOf(construct.name) > -1\n ) {\n return nok()\n }\n\n return construct.tokenize.call(\n fields ? assign({}, context, fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info)\n return returnState\n }\n\n function nok(code) {\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n chunkedSplice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n\n function store() {\n var startPoint = now()\n var startPrevious = context.previous\n var startCurrentConstruct = context.currentConstruct\n var startEventsIndex = context.events.length\n var startStack = Array.from(stack)\n return {\n restore: restore,\n from: startEventsIndex\n }\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 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\nmodule.exports = createTokenizer\n","'use strict'\n\nvar fromCharCode = require('../constant/from-char-code.js')\n\nfunction serializeChunks(chunks) {\n var index = -1\n var result = []\n var chunk\n var value\n var atTab\n\n while (++index < chunks.length) {\n chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n value = chunk\n } else if (chunk === -5) {\n value = '\\r'\n } else if (chunk === -4) {\n value = '\\n'\n } else if (chunk === -3) {\n value = '\\r' + '\\n'\n } else if (chunk === -2) {\n value = '\\t'\n } else if (chunk === -1) {\n if (atTab) continue\n value = ' '\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk)\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n\nmodule.exports = serializeChunks\n","'use strict'\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index\n var startBufferIndex = token.start._bufferIndex\n var endIndex = token.end._index\n var endBufferIndex = token.end._bufferIndex\n var view\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\nmodule.exports = sliceChunks\n","'use strict'\n\nObject.defineProperty(exports, '__esModule', {value: true})\n\nvar text$1 = require('./initialize/text.js')\nvar attention = require('./tokenize/attention.js')\nvar autolink = require('./tokenize/autolink.js')\nvar blockQuote = require('./tokenize/block-quote.js')\nvar characterEscape = require('./tokenize/character-escape.js')\nvar characterReference = require('./tokenize/character-reference.js')\nvar codeFenced = require('./tokenize/code-fenced.js')\nvar codeIndented = require('./tokenize/code-indented.js')\nvar codeText = require('./tokenize/code-text.js')\nvar definition = require('./tokenize/definition.js')\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js')\nvar headingAtx = require('./tokenize/heading-atx.js')\nvar htmlFlow = require('./tokenize/html-flow.js')\nvar htmlText = require('./tokenize/html-text.js')\nvar labelEnd = require('./tokenize/label-end.js')\nvar labelStartImage = require('./tokenize/label-start-image.js')\nvar labelStartLink = require('./tokenize/label-start-link.js')\nvar lineEnding = require('./tokenize/line-ending.js')\nvar list = require('./tokenize/list.js')\nvar setextUnderline = require('./tokenize/setext-underline.js')\nvar thematicBreak = require('./tokenize/thematic-break.js')\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n}\nvar contentInitial = {\n 91: definition // Left square bracket\n}\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n}\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n}\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n}\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n}\nvar insideSpan = {\n null: [attention, text$1.resolver]\n}\nvar disable = {\n null: []\n}\n\nexports.contentInitial = contentInitial\nexports.disable = disable\nexports.document = document\nexports.flow = flow\nexports.flowInitial = flowInitial\nexports.insideSpan = insideSpan\nexports.string = string\nexports.text = text\n","'use strict'\n\nvar chunkedPush = require('../util/chunked-push.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar classifyCharacter = require('../util/classify-character.js')\nvar movePoint = require('../util/move-point.js')\nvar resolveAll = require('../util/resolve-all.js')\nvar shallow = require('../util/shallow.js')\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\nfunction resolveAllAttention(events, context) {\n var index = -1\n var open\n var group\n var text\n var openingSequence\n var closingSequence\n var use\n var nextEvents\n var offset // 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\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\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 (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n }\n events[open][1].end = shallow(openingSequence.start)\n events[index][1].start = shallow(closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = chunkedPush(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = chunkedPush(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = chunkedPush(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = chunkedPush(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous)\n var marker\n return start\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n\n function sequence(code) {\n var token\n var after\n var open\n var close\n\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n token = effects.exit('attentionSequence')\n after = classifyCharacter(code)\n open = !after || (after === 2 && before)\n close = !before || (before === 2 && after)\n token._open = marker === 42 ? open : open && (before || !close)\n token._close = marker === 42 ? close : close && (after || !open)\n return ok(code)\n }\n}\n\nmodule.exports = attention\n","'use strict'\n\n// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n\nmodule.exports = unicodePunctuation\n","'use strict'\n\n// chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n return point\n}\n\nmodule.exports = movePoint\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiAtext = require('../character/ascii-atext.js')\nvar asciiControl = require('../character/ascii-control.js')\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1\n return start\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 function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n\nmodule.exports = autolink\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\nmodule.exports = asciiAtext\n","'use strict'\n\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n}\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this\n return start\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n self.containerState.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\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\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n\nmodule.exports = blockQuote\n","'use strict'\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js')\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n\n function open(code) {\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\n return nok(code)\n }\n}\n\nmodule.exports = characterEscape\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\nmodule.exports = asciiPunctuation\n","'use strict'\n\nvar decodeEntity = require('parse-entities/decode-entity.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar asciiDigit = require('../character/ascii-digit.js')\nvar asciiHexDigit = require('../character/ascii-hex-digit.js')\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {default: e}\n}\n\nvar decodeEntity__default = /*#__PURE__*/ _interopDefaultLegacy(decodeEntity)\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this\n var size = 0\n var max\n var test\n return start\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 function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\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\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n function value(code) {\n var token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeEntity__default['default'](self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = characterReference\n","'use strict'\n\nvar regexCheck = require('../util/regex-check.js')\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\nmodule.exports = asciiHexDigit\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n var marker\n return start\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\nmodule.exports = codeFenced\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar factorySpace = require('./factory-space.js')\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n}\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n }\n chunkedSplice(events, 0, 0, [['enter', code, context]])\n chunkedSplice(events, events.length, 0, [['exit', code, context]])\n return events\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok)\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code)\n }\n}\n\nmodule.exports = codeIndented\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n}\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type =\n 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\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\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0\n var size\n var token\n return start\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n\nmodule.exports = codeText\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar normalizeIdentifier = require('../util/normalize-identifier.js')\nvar factoryDestination = require('./factory-destination.js')\nvar factoryLabel = require('./factory-label.js')\nvar factorySpace = require('./factory-space.js')\nvar factoryWhitespace = require('./factory-whitespace.js')\nvar factoryTitle = require('./factory-title.js')\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this\n var identifier\n return start\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n\nmodule.exports = definition\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = hardBreakEscape\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar chunkedSplice = require('../util/chunked-splice.js')\nvar factorySpace = require('./factory-space.js')\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2\n var contentStart = 3\n var content\n var text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\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 chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this\n var size = 0\n return start\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n\nmodule.exports = headingAtx\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar fromCharCode = require('../constant/from-char-code.js')\nvar htmlBlockNames = require('../constant/html-block-names.js')\nvar htmlRawNames = require('../constant/html-raw-names.js')\nvar partialBlankLine = require('./partial-blank-line.js')\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\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 // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this\n var kind\n var startTag\n var buffer\n var index\n var marker\n return start\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // 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\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.indexOf(buffer.toLowerCase()) > -1\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting.\n\n return self.interrupt\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = undefined\n return completeAttributeValueUnquoted(code)\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return htmlContinueStart\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(partialBlankLine, ok, nok)\n }\n}\n\nmodule.exports = htmlFlow\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar basics = [\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 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\nmodule.exports = basics\n","'use strict'\n\n// This module is copied from <https://spec.commonmark.org/0.29/#html-blocks>.\nvar raws = ['pre', 'script', 'style', 'textarea']\n\nmodule.exports = raws\n","'use strict'\n\nvar asciiAlpha = require('../character/ascii-alpha.js')\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js')\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar factorySpace = require('./factory-space.js')\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this\n var marker\n var buffer\n var index\n var returnState\n return start\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\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\n return nok(code)\n }\n}\n\nmodule.exports = htmlText\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this\n return start\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 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\n return nok(code)\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartImage\n","'use strict'\n\nvar labelEnd = require('./label-end.js')\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this\n return start\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 function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? /* c8 ignore next */\n nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = labelStartLink\n","'use strict'\n\nvar factorySpace = require('./factory-space.js')\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\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\nmodule.exports = lineEnding\n","'use strict'\n\nvar asciiDigit = require('../character/ascii-digit.js')\nvar markdownSpace = require('../character/markdown-space.js')\nvar prefixSize = require('../util/prefix-size.js')\nvar sizeChunks = require('../util/size-chunks.js')\nvar factorySpace = require('./factory-space.js')\nvar partialBlankLine = require('./partial-blank-line.js')\nvar thematicBreak = require('./thematic-break.js')\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this\n var initialSize = prefixSize(self.events, 'linePrefix')\n var size = 0\n return start\n\n function start(code) {\n var kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\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(\n partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\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\n return nok(code)\n }\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')))\n return ok(code)\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this\n self.containerState._closeFlow = undefined\n return effects.check(partialBlankLine, onBlank, notBlank)\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4\n )(code)\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') ===\n self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.indexOf('codeIndented') > -1\n ? undefined\n : 4 + 1\n )\n\n function afterPrefix(code) {\n return markdownSpace(code) ||\n !prefixSize(self.events, 'listItemPrefixWhitespace')\n ? nok(code)\n : ok(code)\n }\n}\n\nmodule.exports = list\n","'use strict'\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js')\nvar shallow = require('../util/shallow.js')\nvar factorySpace = require('./factory-space.js')\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length\n var content\n var text\n var definition\n var heading // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\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\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\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 = shallow(events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this\n var index = self.events.length\n var marker\n var paragraph // Find an opening.\n\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 (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nmodule.exports = setextUnderline\n","'use strict'\n\nvar search = /[\\0\\t\\n\\r]/g\n\nfunction preprocess() {\n var start = true\n var column = 1\n var buffer = ''\n var atCarriageReturn\n return preprocessor\n\n function preprocessor(value, encoding, end) {\n var chunks = []\n var match\n var next\n var startPosition\n var endPosition\n var code\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition = match ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\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\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n if (code === 0) {\n chunks.push(65533)\n column++\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n } else if (code === 10) {\n chunks.push(-4)\n column = 1\n } // Must be carriage return.\n else {\n atCarriageReturn = true\n column = 1\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n\nmodule.exports = preprocess\n","'use strict'\n\nvar subtokenize = require('./util/subtokenize.js')\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n\nmodule.exports = postprocess\n","'use strict'\n\nvar mdast2hast = require('mdast-util-to-hast')\n\nmodule.exports = remark2rehype\n\n// Attacher.\n// If a destination is given, runs the destination with the new hast tree\n// (bridge mode).\n// Without destination, returns the tree: further plugins run on that tree\n// (mutate mode).\nfunction remark2rehype(destination, options) {\n if (destination && !destination.process) {\n options = destination\n destination = null\n }\n\n return destination ? bridge(destination, options) : mutate(options)\n}\n\n// Bridge mode.\n// Runs the destination with the new hast tree.\nfunction bridge(destination, options) {\n return transformer\n\n function transformer(node, file, next) {\n destination.run(mdast2hast(node, options), file, done)\n\n function done(error) {\n next(error)\n }\n }\n}\n\n// Mutate-mode.\n// Further transformers run on the hast tree.\nfunction mutate(options) {\n return transformer\n\n function transformer(node) {\n return mdast2hast(node, options)\n }\n}\n","'use strict'\nmodule.exports = require('./lib')\n","'use strict'\n\nmodule.exports = toHast\n\nvar u = require('unist-builder')\nvar visit = require('unist-util-visit')\nvar position = require('unist-util-position')\nvar generated = require('unist-util-generated')\nvar definitions = require('mdast-util-definitions')\nvar one = require('./one')\nvar footer = require('./footer')\nvar handlers = require('./handlers')\n\nvar own = {}.hasOwnProperty\n\nvar deprecationWarningIssued = false\n\n// Factory to transform.\nfunction factory(tree, options) {\n var settings = options || {}\n\n // Issue a warning if the deprecated tag 'allowDangerousHTML' is used\n if (settings.allowDangerousHTML !== undefined && !deprecationWarningIssued) {\n deprecationWarningIssued = true\n console.warn(\n 'mdast-util-to-hast: deprecation: `allowDangerousHTML` is nonstandard, use `allowDangerousHtml` instead'\n )\n }\n\n var dangerous = settings.allowDangerousHtml || settings.allowDangerousHTML\n var footnoteById = {}\n\n h.dangerous = dangerous\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n h.footnoteOrder = []\n h.augment = augment\n h.handlers = Object.assign({}, handlers, settings.handlers)\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', onfootnotedefinition)\n\n return h\n\n // Finalise the created `right`, a hast node, from `left`, an mdast node.\n function augment(left, right) {\n var data\n var ctx\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && left.data) {\n data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = Object.assign({}, right.properties, data.hProperties)\n }\n\n if (right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n ctx = left && left.position ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {\n start: position.start(ctx),\n end: position.end(ctx)\n }\n }\n\n return right\n }\n\n // Create an element for `node`.\n function h(node, tagName, props, children) {\n if (\n (children === undefined || children === null) &&\n typeof props === 'object' &&\n 'length' in props\n ) {\n children = props\n props = {}\n }\n\n return augment(node, {\n type: 'element',\n tagName: tagName,\n properties: props || {},\n children: children || []\n })\n }\n\n function onfootnotedefinition(definition) {\n var id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n }\n}\n\n// Transform `tree`, which is an mdast node, to a hast node.\nfunction toHast(tree, options) {\n var h = factory(tree, options)\n var node = one(h, tree)\n var foot = footer(h)\n\n if (foot) {\n node.children = node.children.concat(u('text', '\\n'), foot)\n }\n\n return node\n}\n","module.exports = identity\nfunction identity(d) {\n return d\n}\n","'use strict'\n\nmodule.exports = generated\n\nfunction generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","'use strict'\n\nvar visit = require('unist-util-visit')\n\nmodule.exports = getDefinitionFactory\n\nvar own = {}.hasOwnProperty\n\n// Get a definition in `node` by `identifier`.\nfunction getDefinitionFactory(node, options) {\n return getterFactory(gather(node, options))\n}\n\n// Gather all definitions in `node`\nfunction gather(node) {\n var cache = {}\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', ondefinition)\n\n return cache\n\n function ondefinition(definition) {\n var id = normalise(definition.identifier)\n if (!own.call(cache, id)) {\n cache[id] = definition\n }\n }\n}\n\n// Factory to get a node from the given definition-cache.\nfunction getterFactory(cache) {\n return getter\n\n // Get a node from the bound definition-cache.\n function getter(identifier) {\n var id = identifier && normalise(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\nfunction normalise(identifier) {\n return identifier.toUpperCase()\n}\n","'use strict'\n\nmodule.exports = generateFootnotes\n\nvar thematicBreak = require('./handlers/thematic-break')\nvar list = require('./handlers/list')\nvar wrap = require('./wrap')\n\nfunction generateFootnotes(h) {\n var footnoteById = h.footnoteById\n var footnoteOrder = h.footnoteOrder\n var length = footnoteOrder.length\n var index = -1\n var listItems = []\n var def\n var backReference\n var content\n var tail\n\n while (++index < length) {\n def = footnoteById[footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n content = def.children.concat()\n tail = content[content.length - 1]\n backReference = {\n type: 'link',\n url: '#fnref-' + def.identifier,\n data: {hProperties: {className: ['footnote-backref']}},\n children: [{type: 'text', value: '↩'}]\n }\n\n if (!tail || tail.type !== 'paragraph') {\n tail = {type: 'paragraph', children: []}\n content.push(tail)\n }\n\n tail.children.push(backReference)\n\n listItems.push({\n type: 'listItem',\n data: {hProperties: {id: 'fn-' + def.identifier}},\n children: content,\n position: def.position\n })\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return h(\n null,\n 'div',\n {className: ['footnotes']},\n wrap(\n [\n thematicBreak(h),\n list(h, {type: 'list', ordered: true, children: listItems})\n ],\n true\n )\n )\n}\n","'use strict'\n\nmodule.exports = {\n blockquote: require('./blockquote'),\n break: require('./break'),\n code: require('./code'),\n delete: require('./delete'),\n emphasis: require('./emphasis'),\n footnoteReference: require('./footnote-reference'),\n footnote: require('./footnote'),\n heading: require('./heading'),\n html: require('./html'),\n imageReference: require('./image-reference'),\n image: require('./image'),\n inlineCode: require('./inline-code'),\n linkReference: require('./link-reference'),\n link: require('./link'),\n listItem: require('./list-item'),\n list: require('./list'),\n paragraph: require('./paragraph'),\n root: require('./root'),\n strong: require('./strong'),\n table: require('./table'),\n text: require('./text'),\n thematicBreak: require('./thematic-break'),\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 null\n}\n","'use strict'\n\nmodule.exports = blockquote\n\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","'use strict'\n\nmodule.exports = hardBreak\n\nvar u = require('unist-builder')\n\nfunction hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","'use strict'\n\nmodule.exports = code\n\nvar u = require('unist-builder')\n\nfunction code(h, node) {\n var value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splitting’s been going\n // on for years in remark now.\n var lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n var props = {}\n var code\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","'use strict'\n\nmodule.exports = strikethrough\n\nvar all = require('../all')\n\nfunction strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","'use strict'\n\nmodule.exports = emphasis\n\nvar all = require('../all')\n\nfunction emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","'use strict'\n\nmodule.exports = footnote\n\nvar footnoteReference = require('./footnote-reference')\n\nfunction footnote(h, node) {\n var footnoteById = h.footnoteById\n var footnoteOrder = h.footnoteOrder\n var identifier = 1\n\n while (identifier in footnoteById) {\n identifier++\n }\n\n identifier = String(identifier)\n\n // No need to check if `identifier` exists in `footnoteOrder`, it’s guaranteed\n // to not exist because we just generated it.\n footnoteOrder.push(identifier)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier: identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier: identifier,\n position: node.position\n })\n}\n","'use strict'\n\nmodule.exports = heading\n\nvar all = require('../all')\n\nfunction heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","'use strict'\n\nmodule.exports = html\n\nvar u = require('unist-builder')\n\n// Return either a `raw` node in dangerous mode, otherwise nothing.\nfunction html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","'use strict'\n\nmodule.exports = imageReference\n\nvar normalize = require('mdurl/encode')\nvar revert = require('../revert')\n\nfunction imageReference(h, node) {\n var def = h.definition(node.identifier)\n var props\n\n if (!def) {\n return revert(h, node)\n }\n\n props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","'use strict'\n\nvar normalize = require('mdurl/encode')\n\nmodule.exports = image\n\nfunction image(h, node) {\n var props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","'use strict'\n\nmodule.exports = inlineCode\n\nvar u = require('unist-builder')\n\nfunction inlineCode(h, node) {\n var value = node.value.replace(/\\r?\\n|\\r/g, ' ')\n return h(node, 'code', [u('text', value)])\n}\n","'use strict'\n\nmodule.exports = linkReference\n\nvar normalize = require('mdurl/encode')\nvar revert = require('../revert')\nvar all = require('../all')\n\nfunction linkReference(h, node) {\n var def = h.definition(node.identifier)\n var props\n\n if (!def) {\n return revert(h, node)\n }\n\n props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","'use strict'\n\nvar normalize = require('mdurl/encode')\nvar all = require('../all')\n\nmodule.exports = link\n\nfunction link(h, node) {\n var props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","'use strict'\n\nmodule.exports = listItem\n\nvar u = require('unist-builder')\nvar all = require('../all')\n\nfunction listItem(h, node, parent) {\n var result = all(h, node)\n var head = result[0]\n var loose = parent ? listLoose(parent) : listItemLoose(node)\n var props = {}\n var wrapped = []\n var length\n var index\n var child\n\n if (typeof node.checked === 'boolean') {\n if (!head || head.tagName !== 'p') {\n head = h(null, 'p', [])\n result.unshift(head)\n }\n\n if (head.children.length > 0) {\n head.children.unshift(u('text', ' '))\n }\n\n head.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n props.className = ['task-list-item']\n }\n\n length = result.length\n index = -1\n\n while (++index < length) {\n child = result[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (loose || index !== 0 || child.tagName !== 'p') {\n wrapped.push(u('text', '\\n'))\n }\n\n if (child.tagName === 'p' && !loose) {\n wrapped = wrapped.concat(child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n // Add a final eol.\n if (length && (loose || child.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\nfunction listLoose(node) {\n var loose = node.spread\n var children = node.children\n var length = children.length\n var index = -1\n\n while (!loose && ++index < length) {\n loose = listItemLoose(children[index])\n }\n\n return loose\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","'use strict'\n\nmodule.exports = paragraph\n\nvar all = require('../all')\n\nfunction paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","'use strict'\n\nmodule.exports = root\n\nvar u = require('unist-builder')\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction root(h, node) {\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","'use strict'\n\nmodule.exports = strong\n\nvar all = require('../all')\n\nfunction strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","'use strict'\n\nmodule.exports = table\n\nvar position = require('unist-util-position')\nvar wrap = require('../wrap')\nvar all = require('../all')\n\nfunction table(h, node) {\n var rows = node.children\n var index = rows.length\n var align = node.align || []\n var alignLength = align.length\n var result = []\n var pos\n var row\n var out\n var name\n var cell\n\n while (index--) {\n row = rows[index].children\n name = index === 0 ? 'th' : 'td'\n pos = alignLength || row.length\n out = []\n\n while (pos--) {\n cell = row[pos]\n out[pos] = h(cell, name, {align: align[pos]}, cell ? all(h, cell) : [])\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: position.start(result[1]),\n end: position.end(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","'use strict'\n\nmodule.exports = text\n\nvar u = require('unist-builder')\n\nfunction text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\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 capture: boolean,\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 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: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\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 onBeforePrint: 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 onContextMenu: 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 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 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 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: commaSeparated,\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\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})\n","const visit = require('unist-util-visit')\n\nmodule.exports = rehypeFilter\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef RehypeFilterOptions\n * @property {Array.<string>} [allowedElements]\n * @property {Array.<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[RehypeFilterOptions]>}\n */\nfunction rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n const node = /** @type {Root} */ (tree)\n visit(node, 'element', onelement)\n }\n }\n\n /**\n * @param {Node} node_\n * @param {number|null|undefined} index\n * @param {Node|null|undefined} parent_\n * @returns {number|void}\n */\n function onelement(node_, index, parent_) {\n const node = /** @type {Element} */ (node_)\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.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 return undefined\n }\n}\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\nmodule.exports = uriTransformer\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nfunction uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","'use strict'\n\nconst React = require('react')\nconst ReactIs = require('react-is')\nconst svg = require('property-information/svg')\nconst find = require('property-information/find')\nconst hastToReact = require('property-information/hast-to-react.json')\nconst spaces = require('space-separated-tokens')\nconst commas = require('comma-separated-tokens')\nconst style = require('style-to-object')\n\nexports.hastToReact = toReact\nexports.hastChildrenToReact = childrenToReact\n\n/**\n * @typedef {JSX.IntrinsicElements} IntrinsicElements\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n */\n\n/**\n * @typedef Info\n * @property {string?} space\n * @property {string?} attribute\n * @property {string?} property\n * @property {boolean} boolean\n * @property {boolean} booleanish\n * @property {boolean} overloadedBoolean\n * @property {boolean} number\n * @property {boolean} commaSeparated\n * @property {boolean} spaceSeparated\n * @property {boolean} commaOrSpaceSeparated\n * @property {boolean} mustUseProperty\n * @property {boolean} defined\n *\n * @typedef Schema\n * @property {Object.<string, Info>} property\n * @property {Object.<string, string>} normal\n * @property {string?} space\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {TransformOptions} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array.<Comment|Element|Text>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array.<Comment|Element|Text>} children\n * @param {string?} title\n * @returns {string|undefined}\n *\n * @typedef {keyof IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef ReactMarkdownProps\n * @property {Element} node\n * @property {string} key\n * @property {ReactNode[]} children\n * @property {Position?} [sourcePosition] Passed when `options.rawSourcePos` is given\n * @property {number} [index] Passed when `options.includeElementIndex` is given\n * @property {number} [siblingCount] Passed when `options.includeElementIndex` is given\n *\n * @callback CodeComponent\n * @param {JSX.IntrinsicElements['code'] & ReactMarkdownProps & {inline?: boolean}} props\n * @returns {ReactNode}\n *\n * @callback HeadingComponent\n * @param {JSX.IntrinsicElements['h1'] & ReactMarkdownProps & {level: number}} props\n * @returns {ReactNode}\n *\n * @callback LiComponent\n * @param {JSX.IntrinsicElements['li'] & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} props\n * @returns {ReactNode}\n *\n * @callback OrderedListComponent\n * @param {JSX.IntrinsicElements['ol'] & ReactMarkdownProps & {depth: number, ordered: true}} props\n * @returns {ReactNode}\n *\n * @callback TableCellComponent\n * @param {JSX.IntrinsicElements['table'] & ReactMarkdownProps & {style?: Object.<string, unknown>, isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback TableRowComponent\n * @param {JSX.IntrinsicElements['tr'] & ReactMarkdownProps & {isHeader: boolean}} props\n * @returns {ReactNode}\n *\n * @callback UnorderedListComponent\n * @param {JSX.IntrinsicElements['ul'] & ReactMarkdownProps & {depth: number, ordered: false}} props\n * @returns {ReactNode}\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {{[TagName in keyof IntrinsicElements]: TagName | ((props: IntrinsicElements[TagName] & ReactMarkdownProps) => ReactNode)}} NormalComponents\n * @typedef {Partial<Omit<NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n */\n\n/**\n * @typedef TransformOptions\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {string|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nfunction childrenToReact(context, node) {\n /** @type {Array.<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // React does not permit whitespace text elements as children of table:\n // cf. https://github.com/remarkjs/react-markdown/issues/576\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n child.value !== '\\n'\n ) {\n children.push(child.value)\n }\n }\n // @ts-expect-error `raw` nodes are non-standard\n else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n // @ts-expect-error `raw` nodes are non-standard\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Object.<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n /* istanbul ignore else - types say they’re optional. */\n if (node.properties) {\n for (property in node.properties) {\n /* istanbul ignore else - prototype polution. */\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the positon interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? // @ts-expect-error assume `href` is a string\n options.linkTarget(properties.href, node.children, properties.title)\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n // @ts-expect-error assume `href` is a string\n properties.href,\n node.children,\n properties.title\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n // @ts-expect-error assume `src` is a string\n properties.src,\n properties.alt,\n properties.title\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Object.<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n /** @type {Info} */\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (result && typeof result === 'object' && 'length' in result) {\n // type-coverage:ignore-next-line remove when typed.\n result = (info.commaSeparated ? commas : spaces).stringify(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n /* istanbul ignore else - types say they’re optional. */\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Object.<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Object.<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch (/** @type {unknown} */ _) {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseSensitiveTransform = require('./util/case-sensitive-transform')\n\nvar boolean = types.boolean\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\nvar commaOrSpaceSeparated = types.commaOrSpaceSeparated\n\nmodule.exports = create({\n space: 'svg',\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 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 transform: caseSensitiveTransform,\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 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})\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","'use strict'\n\nvar syntax = require('micromark-extension-gfm')\nvar fromMarkdown = require('mdast-util-gfm/from-markdown')\nvar toMarkdown = require('mdast-util-gfm/to-markdown')\n\nvar warningIssued\n\nmodule.exports = gfm\n\nfunction gfm(options) {\n var data = this.data()\n\n /* istanbul ignore next - old remark. */\n if (\n !warningIssued &&\n ((this.Parser &&\n this.Parser.prototype &&\n this.Parser.prototype.blockTokenizers) ||\n (this.Compiler &&\n this.Compiler.prototype &&\n this.Compiler.prototype.visitors))\n ) {\n warningIssued = true\n console.warn(\n '[remark-gfm] Warning: please upgrade to remark 13 to use this plugin'\n )\n }\n\n add('micromarkExtensions', syntax(options))\n add('fromMarkdownExtensions', fromMarkdown)\n add('toMarkdownExtensions', toMarkdown(options))\n\n function add(field, value) {\n /* istanbul ignore if - other extensions. */\n if (data[field]) data[field].push(value)\n else data[field] = [value]\n }\n}\n","module.exports = require('./syntax')\n","var combine = require('micromark/dist/util/combine-extensions')\nvar autolink = require('micromark-extension-gfm-autolink-literal')\nvar strikethrough = require('micromark-extension-gfm-strikethrough')\nvar table = require('micromark-extension-gfm-table')\nvar tasklist = require('micromark-extension-gfm-task-list-item')\n\nmodule.exports = create\n\nfunction create(options) {\n return combine([autolink, strikethrough(options), table, tasklist])\n}\n","module.exports = require('./syntax')\n","var asciiAlpha = require('micromark/dist/character/ascii-alpha')\nvar asciiAlphanumeric = require('micromark/dist/character/ascii-alphanumeric')\nvar asciiControl = require('micromark/dist/character/ascii-control')\nvar markdownLineEnding = require('micromark/dist/character/markdown-line-ending')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nvar www = {tokenize: tokenizeWww, partial: true}\nvar domain = {tokenize: tokenizeDomain, partial: true}\nvar path = {tokenize: tokenizePath, partial: true}\nvar punctuation = {tokenize: tokenizePunctuation, partial: true}\nvar namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\n\nvar wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previousWww}\nvar httpAutolink = {tokenize: tokenizeHttpAutolink, previous: previousHttp}\nvar emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previousEmail}\n\nvar text = {}\n\n// Export hooked constructs.\nexports.text = text\n\n// `0`\nvar code = 48\n\n// While the code is smaller than `{`.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n // Jump from `:` -> `A`\n if (code === 58) code = 65\n // Jump from `[` -> `a`\n else if (code === 91) code = 97\n}\n\n// `+`\ntext[43] = emailAutolink\n// `-`\ntext[45] = emailAutolink\n// `.`\ntext[46] = emailAutolink\n// `_`\ntext[95] = emailAutolink\n// `h`.\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\n// `w`.\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n var self = this\n var hasDot\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n // `@`\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n\n function label(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (\n // `-`\n code === 45 ||\n // `_`\n code === 95\n ) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n return label\n }\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n\n function afterDashOrUnderscore(code) {\n // `.`\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n\n function done(code) {\n if (hasDot) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 87 && code - 32 !== 87) ||\n !previousWww(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but that’s not how it’s implemented by them).\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n var self = this\n\n return start\n\n function start(code) {\n /* istanbul ignore next - hooks. */\n if (\n (code !== 72 && code - 32 !== 72) ||\n !previousHttp(self.previous) ||\n previous(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n\n function t1(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n\n function t2(code) {\n // `t`\n if (code === 84 || code - 32 === 84) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n\n function p(code) {\n // `p`\n if (code === 80 || code - 32 === 80) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n\n function s(code) {\n // `s`\n if (code === 83 || code - 32 === 83) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n\n function colon(code) {\n // `:`\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n\n function slash1(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n\n function slash2(code) {\n // `/`\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume a `w`.\n effects.consume(code)\n return w2\n }\n\n function w2(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n\n function w3(code) {\n // `w`\n if (code === 87 || code - 32 === 87) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n\n function dot(code) {\n // `.`\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n\nfunction tokenizeDomain(effects, ok, nok) {\n var hasUnderscoreInLastSegment\n var hasUnderscoreInLastLastSegment\n\n return domain\n\n function domain(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 /* `.` */ || code === 95 /* `_` */) {\n return effects.check(punctuation, done, punctuationContinuation)(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 if (\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 /* `-` */ && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n\n function punctuationContinuation(code) {\n // `.`\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n // `_`\n if (code === 95) hasUnderscoreInLastSegment = true\n\n effects.consume(code)\n return domain\n }\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizePath(effects, ok) {\n var balance = 0\n\n return inPath\n\n function inPath(code) {\n // `&`\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n // `(`\n if (code === 40) {\n balance++\n }\n\n // `)`\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n\n function start(code) {\n // Assume an ampersand.\n effects.consume(code)\n return inside\n }\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n // `;`\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n\n function after(code) {\n // If the named character reference is followed by the end of the path, it’s\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n\n function start(code) {\n // Always a valid trailing punctuation marker.\n effects.consume(code)\n return after\n }\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n }\n\n // If the punctuation marker is followed by the end of the path, it’s not\n // continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n\nfunction trailingPunctuation(code) {\n return (\n // `!`\n code === 33 ||\n // `\"`\n code === 34 ||\n // `'`\n code === 39 ||\n // `)`\n code === 41 ||\n // `*`\n code === 42 ||\n // `,`\n code === 44 ||\n // `.`\n code === 46 ||\n // `:`\n code === 58 ||\n // `;`\n code === 59 ||\n // `<`\n code === 60 ||\n // `?`\n code === 63 ||\n // `_`.\n code === 95 ||\n // `~`\n code === 126\n )\n}\n\nfunction pathEnd(code) {\n return (\n // EOF.\n code === null ||\n // CR, LF, CRLF, HT, VS.\n code < 0 ||\n // Space.\n code === 32 ||\n // `<`\n code === 60\n )\n}\n\nfunction gfmAtext(code) {\n return (\n code === 43 /* `+` */ ||\n code === 45 /* `-` */ ||\n code === 46 /* `.` */ ||\n code === 95 /* `_` */ ||\n asciiAlphanumeric(code)\n )\n}\n\nfunction previousWww(code) {\n return (\n code === null ||\n code < 0 ||\n code === 32 /* ` ` */ ||\n code === 40 /* `(` */ ||\n code === 42 /* `*` */ ||\n code === 95 /* `_` */ ||\n code === 126 /* `~` */\n )\n}\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n\nfunction previousEmail(code) {\n return code !== 47 /* `/` */ && previousHttp(code)\n}\n\nfunction previous(events) {\n var index = events.length\n\n while (index--) {\n if (\n (events[index][1].type === 'labelLink' ||\n events[index][1].type === 'labelImage') &&\n !events[index][1]._balanced\n ) {\n return true\n }\n }\n}\n","module.exports = create\n\nvar classifyCharacter = require('micromark/dist/util/classify-character')\nvar chunkedSplice = require('micromark/dist/util/chunked-splice')\nvar resolveAll = require('micromark/dist/util/resolve-all')\nvar shallow = require('micromark/dist/util/shallow')\n\nfunction create(options) {\n var settings = options || {}\n var single = settings.singleTilde\n var tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {text: {126: tokenizer}, insideSpan: {null: tokenizer}}\n\n // Take events and resolve strikethrough.\n function resolveAllStrikethrough(events, context) {\n var index = -1\n var strikethrough\n var text\n var open\n var nextEvents\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\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 (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n strikethrough = {\n type: 'strikethrough',\n start: shallow(events[open][1].start),\n end: shallow(events[index][1].end)\n }\n\n text = {\n type: 'strikethroughText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n\n // Opening.\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n // Between.\n chunkedSplice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n chunkedSplice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n return removeRemainingSequences(events)\n }\n\n function removeRemainingSequences(events) {\n var index = -1\n var length = events.length\n\n while (++index < length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n\n function tokenizeStrikethrough(effects, ok, nok) {\n var previous = this.previous\n var events = this.events\n var size = 0\n\n return start\n\n function start(code) {\n if (\n code !== 126 ||\n (previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape')\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n function more(code) {\n var before = classifyCharacter(previous)\n var token\n var after\n\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\n if (size < 2 && !single) return nok(code)\n token = effects.exit('strikethroughSequenceTemporary')\n after = classifyCharacter(code)\n token._open = !after || (after === 2 && before)\n token._close = !before || (before === 2 && after)\n return ok(code)\n }\n }\n}\n","module.exports = require('./syntax')\n","exports.flow = {\n null: {tokenize: tokenizeTable, resolve: resolveTable, interruptible: true}\n}\n\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nvar setextUnderlineMini = {tokenize: tokenizeSetextUnderlineMini, partial: true}\nvar nextPrefixedOrBlank = {tokenize: tokenizeNextPrefixedOrBlank, partial: true}\n\nfunction resolveTable(events, context) {\n var length = events.length\n var index = -1\n var token\n var inHead\n var inDelimiterRow\n var inRow\n var cell\n var content\n var text\n var contentStart\n var contentEnd\n var cellStart\n\n while (++index < length) {\n token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n contentType: 'text'\n }\n\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n length = events.length\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart &&\n cellStart + 1 < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n length = events.length\n cellStart = index + 1\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n\nfunction tokenizeTable(effects, ok, nok) {\n var align = []\n var tableHeaderCount = 0\n var seenDelimiter\n var hasDash\n\n return start\n\n function start(code) {\n /* istanbul ignore if - used to be passed in beta micromark versions. */\n if (code === null || code === -5 || code === -4 || code === -3) {\n return nok(code)\n }\n\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentHead(code)\n }\n\n function cellDividerHead(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n\n function cellBreakHead(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndHead(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n // `|`\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n\n function inWhitespaceHead(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n\n function inCellContentEscapeHead(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n }\n\n // Anything else.\n return inCellContentHead(code)\n }\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n\n // If a setext heading, exit.\n return effects.check(\n setextUnderlineMini,\n nok,\n // Support an indent before the delimiter row.\n createSpace(effects, rowStartDelimiter, 'linePrefix', 4)\n )\n }\n\n function rowStartDelimiter(code) {\n // If there’s another space, or we’re at the EOL/EOF, exit.\n if (code === null || code < 0 || code === 32) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n }\n\n function atDelimiterRowBreak(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push(null)\n return inFillerDelimiter\n }\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n }\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function inWhitespaceDelimiter(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n\n function inFillerDelimiter(code) {\n // `-`\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n // `:`\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n\n function afterLeftAlignment(code) {\n // `-`\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n }\n\n // Anything else is not ok.\n return nok(code)\n }\n\n function afterRightAlignment(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return rowEndDelimiter(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n // `|`\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow')\n\n // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(nextPrefixedOrBlank, tableClose, tableContinue)(code)\n }\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n\n function tableContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // We checked that it’s not a prefixed or blank line, so we’re certain a\n // body is coming, though it may be indented.\n return createSpace(effects, bodyStart, 'linePrefix', 4)\n }\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n\n function rowStartBody(code) {\n effects.enter('tableRow')\n\n // If we start with a pipe, we open a cell marker.\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent')\n // Can’t be space or eols at the start of a construct, so we’re in a cell.\n return inCellContentBody(code)\n }\n\n function cellDividerBody(code) {\n // Always a pipe.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n\n function cellBreakBody(code) {\n // EOF, CR, LF, CRLF.\n if (code === null || code === -5 || code === -4 || code === -3) {\n return atRowEndBody(code)\n }\n\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n }\n\n // `|`\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n // Anything else is cell content.\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n\n function inWhitespaceBody(code) {\n // HT, VS, SP.\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code < 0 || code === 32 || code === 124) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n // `\\`\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n\n function inCellContentEscapeBody(code) {\n // `\\` or `|`\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n }\n\n // Anything else.\n return inCellContentBody(code)\n }\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n tableBodyContinue\n )(code)\n }\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n\n function tableBodyContinue(code) {\n // Always a line ending.\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n // Support an optional prefix, then start a body row.\n return createSpace(effects, rowStartBody, 'linePrefix', 4)\n }\n}\n\n// Based on micromark, but that won’t work as we’re in a table, and that expects\n// content.\n// <https://github.com/micromark/micromark/blob/main/lib/tokenize/setext-underline.js>\nfunction tokenizeSetextUnderlineMini(effects, ok, nok) {\n return start\n\n function start(code) {\n // `-`\n if (code !== 45) {\n return nok(code)\n }\n\n effects.enter('setextUnderline')\n return sequence(code)\n }\n\n function sequence(code) {\n if (code === 45) {\n effects.consume(code)\n return sequence\n }\n\n return whitespace(code)\n }\n\n function whitespace(code) {\n if (code === -2 || code === -1 || code === 32) {\n effects.consume(code)\n return whitespace\n }\n\n if (code === null || code === -5 || code === -4 || code === -3) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n var size = 0\n\n return start\n\n function start(code) {\n // This is a check, so we don’t care about tokens, but we open a bogus one\n // so we’re valid.\n effects.enter('check')\n // EOL.\n effects.consume(code)\n return whitespace\n }\n\n function whitespace(code) {\n // VS or SP.\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n }\n\n // EOF or whitespace\n if (code === null || code < 0) {\n return ok(code)\n }\n\n // Anything else.\n return nok(code)\n }\n}\n","module.exports = require('./syntax')\n","var markdownLineEndingOrSpace = require('micromark/dist/character/markdown-line-ending-or-space')\nvar spaceFactory = require('micromark/dist/tokenize/factory-space')\nvar prefixSize = require('micromark/dist/util/prefix-size')\n\nvar tasklistCheck = {tokenize: tokenizeTasklistCheck}\n\nexports.text = {91: tasklistCheck}\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n var self = this\n\n return open\n\n function open(code) {\n if (\n // Exit if not `[`.\n code !== 91 ||\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 ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n function inside(code) {\n // Tab or space.\n if (code === -2 || code === 32) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n // Upper- and lower `x`.\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n\n function close(code) {\n // `]`\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check({tokenize: spaceThenNonSpace}, ok, nok)\n }\n\n return nok(code)\n }\n}\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n var self = this\n\n return spaceFactory(effects, after, 'whitespace')\n\n function after(code) {\n return prefixSize(self.events, 'whitespace') &&\n code !== null &&\n !markdownLineEndingOrSpace(code)\n ? ok(code)\n : nok(code)\n }\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/from-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/from-markdown')\nvar table = require('mdast-util-gfm-table/from-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/from-markdown')\n\nvar own = {}.hasOwnProperty\n\nmodule.exports = configure([\n autolinkLiteral,\n strikethrough,\n table,\n taskListItem\n])\n\nfunction configure(extensions) {\n var config = {transforms: [], canContainEols: []}\n var length = extensions.length\n var index = -1\n\n while (++index < length) {\n extension(config, extensions[index])\n }\n\n return config\n}\n\nfunction extension(config, extension) {\n var key\n var left\n var right\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : (config[key] = {})\n right = extension[key]\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, right)\n } else {\n Object.assign(left, right)\n }\n }\n}\n","var ccount = require('ccount')\nvar findAndReplace = require('mdast-util-find-and-replace')\nvar unicodePunctuation = require('micromark/dist/character/unicode-punctuation')\nvar unicodeWhitespace = require('micromark/dist/character/unicode-whitespace')\n\nexports.transforms = [transformGfmAutolinkLiterals]\nexports.enter = {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n}\nexports.exit = {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n}\n\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n this.stack[this.stack.length - 1].url = 'http://' + this.sliceSerialize(token)\n}\n\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/i, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\nfunction findUrl($0, protocol, domain, path, match) {\n var prefix = ''\n var parts\n var result\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 parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n 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 result = [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\nfunction findEmail($0, atext, label, match) {\n // Not an expected previous character.\n if (!previous(match, true) || /[_-]$/.test(label)) {\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\nfunction isCorrectDomain(domain) {\n var 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\nfunction splitUrl(url) {\n var trail = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n var closingParenIndex\n var openingParens\n var closingParens\n\n if (trail) {\n url = url.slice(0, trail.index)\n trail = trail[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n 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\n return [url, trail]\n}\n\nfunction previous(match, email) {\n var code = match.input.charCodeAt(match.index - 1)\n return (\n (code !== code || unicodeWhitespace(code) || unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","'use strict'\n\nmodule.exports = ccount\n\nfunction ccount(source, character) {\n var value = String(source)\n var count = 0\n var index\n\n if (typeof character !== 'string') {\n throw new Error('Expected character')\n }\n\n index = value.indexOf(character)\n\n while (index !== -1) {\n count++\n index = value.indexOf(character, index + character.length)\n }\n\n return count\n}\n","'use strict'\n\nmodule.exports = findAndReplace\n\nvar visit = require('unist-util-visit-parents')\nvar convert = require('unist-util-is/convert')\nvar escape = require('escape-string-regexp')\n\nvar splice = [].splice\n\nfunction findAndReplace(tree, find, replace, options) {\n var settings\n var schema\n\n if (typeof find === 'string' || (find && typeof find.exec === 'function')) {\n schema = [[find, replace]]\n } else {\n schema = find\n options = replace\n }\n\n settings = options || {}\n\n search(tree, settings, handlerFactory(toPairs(schema)))\n\n return tree\n\n function handlerFactory(pairs) {\n var pair = pairs[0]\n\n return handler\n\n function handler(node, parent) {\n var find = pair[0]\n var replace = pair[1]\n var nodes = []\n var start = 0\n var index = parent.children.indexOf(node)\n var position\n var match\n var subhandler\n var value\n\n find.lastIndex = 0\n\n match = find.exec(node.value)\n\n while (match) {\n position = match.index\n value = replace.apply(\n null,\n [].concat(match, {index: match.index, input: match.input})\n )\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({type: 'text', value: node.value.slice(start, position)})\n }\n\n if (typeof value === 'string' && value.length > 0) {\n value = {type: 'text', value: value}\n }\n\n if (value) {\n nodes = [].concat(nodes, value)\n }\n\n start = position + match[0].length\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (position === undefined) {\n nodes = [node]\n index--\n } else {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n nodes.unshift(index, 1)\n splice.apply(parent.children, nodes)\n }\n\n if (pairs.length > 1) {\n subhandler = handlerFactory(pairs.slice(1))\n position = -1\n\n while (++position < nodes.length) {\n node = nodes[position]\n\n if (node.type === 'text') {\n subhandler(node, parent)\n } else {\n search(node, settings, subhandler)\n }\n }\n }\n\n return index + nodes.length + 1\n }\n }\n}\n\nfunction search(tree, settings, handler) {\n var ignored = convert(settings.ignore || [])\n var result = []\n\n visit(tree, 'text', visitor)\n\n return result\n\n function visitor(node, parents) {\n var index = -1\n var parent\n var grandparent\n\n while (++index < parents.length) {\n parent = parents[index]\n\n if (\n ignored(\n parent,\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n return handler(node, grandparent)\n }\n}\n\nfunction toPairs(schema) {\n var result = []\n var key\n var index\n\n if (typeof schema !== 'object') {\n throw new Error('Expected array or object as schema')\n }\n\n if ('length' in schema) {\n index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n for (key in schema) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n\n return result\n}\n\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : returner\n\n function returner() {\n return replace\n }\n}\n","'use strict';\n\nmodule.exports = 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 \\unnnn 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","exports.canContainEols = ['delete']\nexports.enter = {strikethrough: enterStrikethrough}\nexports.exit = {strikethrough: exitStrikethrough}\n\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n","exports.enter = {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n}\nexports.exit = {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n}\n\nfunction enterTable(token) {\n this.enter({type: 'table', align: token._align, children: []}, token)\n this.setData('inTable', true)\n}\n\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\nfunction exit(token) {\n this.exit(token)\n}\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.\nfunction exitCodeText(token) {\n var value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n this.stack[this.stack.length - 1].value = value\n this.exit(token)\n}\n\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n","exports.exit = {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n}\n\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n this.stack[this.stack.length - 2].checked =\n token.type === 'taskListCheckValueChecked'\n}\n\nfunction exitParagraphWithTaskListItem(token) {\n var parent = this.stack[this.stack.length - 2]\n var node = this.stack[this.stack.length - 1]\n var siblings = parent.children\n var head = node.children[0]\n var index = -1\n var firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n if (siblings[index].type === 'paragraph') {\n firstParaghraph = siblings[index]\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 {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n","var autolinkLiteral = require('mdast-util-gfm-autolink-literal/to-markdown')\nvar strikethrough = require('mdast-util-gfm-strikethrough/to-markdown')\nvar table = require('mdast-util-gfm-table/to-markdown')\nvar taskListItem = require('mdast-util-gfm-task-list-item/to-markdown')\nvar configure = require('mdast-util-to-markdown/lib/configure')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var config = configure(\n {handlers: {}, join: [], unsafe: [], options: {}},\n {\n extensions: [autolinkLiteral, strikethrough, table(options), taskListItem]\n }\n )\n\n return Object.assign(config.options, {\n handlers: config.handlers,\n join: config.join,\n unsafe: config.unsafe\n })\n}\n","var inConstruct = 'phrasing'\nvar notInConstruct = ['autolink', 'link', 'image', 'label']\n\nexports.unsafe = [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct: inConstruct,\n notInConstruct: notInConstruct\n }\n]\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\n\nexports.unsafe = [{character: '~', inConstruct: 'phrasing'}]\nexports.handlers = {delete: handleDelete}\n\nhandleDelete.peek = peekDelete\n\nfunction handleDelete(node, _, context) {\n var exit = context.enter('emphasis')\n var value = phrasing(node, context, {before: '~', after: '~'})\n exit()\n return '~~' + value + '~~'\n}\n\nfunction peekDelete() {\n return '~'\n}\n","var phrasing = require('mdast-util-to-markdown/lib/util/container-phrasing')\nvar defaultInlineCode = require('mdast-util-to-markdown/lib/handle/inline-code')\nvar markdownTable = require('markdown-table')\n\nmodule.exports = toMarkdown\n\nfunction toMarkdown(options) {\n var settings = options || {}\n var padding = settings.tableCellPadding\n var alignDelimiters = settings.tablePipeAlign\n var stringLength = settings.stringLength\n var 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 table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n function handleTable(node, _, context) {\n return serializeData(handleTableAsData(node, context), node.align)\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 function handleTableRow(node, _, context) {\n var row = handleTableRowAsData(node, context)\n // `markdown-table` will always add an align row\n var value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n function handleTableCell(node, _, context) {\n var exit = context.enter('tableCell')\n var value = phrasing(node, context, {before: around, after: around})\n exit()\n return value\n }\n\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align: align,\n alignDelimiters: alignDelimiters,\n padding: padding,\n stringLength: stringLength\n })\n }\n\n function handleTableAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('table')\n\n while (++index < length) {\n result[index] = handleTableRowAsData(children[index], context)\n }\n\n subexit()\n\n return result\n }\n\n function handleTableRowAsData(node, context) {\n var children = node.children\n var index = -1\n var length = children.length\n var result = []\n var subexit = context.enter('tableRow')\n\n while (++index < length) {\n result[index] = handleTableCell(children[index], node, context)\n }\n\n subexit()\n\n return result\n }\n\n function inlineCodeWithTable(node, parent, context) {\n var value = defaultInlineCode(node, parent, context)\n\n if (context.stack.indexOf('tableCell') !== -1) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","module.exports = inlineCode\ninlineCode.peek = inlineCodePeek\n\nvar patternCompile = require('../util/pattern-compile')\n\nfunction inlineCode(node, parent, context) {\n var value = node.value || ''\n var sequence = '`'\n var index = -1\n var pattern\n var expression\n var match\n var position\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.charAt(0)) ||\n /[ \\r\\n`]/.test(value.charAt(value.length - 1)))\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 < context.unsafe.length) {\n pattern = context.unsafe[index]\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 expression = patternCompile(pattern)\n\n while ((match = expression.exec(value))) {\n 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\nfunction inlineCodePeek() {\n return '`'\n}\n","'use strict'\n\nvar repeat = require('repeat-string')\n\nmodule.exports = markdownTable\n\nvar trailingWhitespace = / +$/\n\n// Characters.\nvar space = ' '\nvar lineFeed = '\\n'\nvar dash = '-'\nvar colon = ':'\nvar verticalBar = '|'\n\nvar x = 0\nvar C = 67\nvar L = 76\nvar R = 82\nvar c = 99\nvar l = 108\nvar r = 114\n\n// Create a table from a matrix of strings.\nfunction markdownTable(table, options) {\n var settings = options || {}\n var padding = settings.padding !== false\n var start = settings.delimiterStart !== false\n var end = settings.delimiterEnd !== false\n var align = (settings.align || []).concat()\n var alignDelimiters = settings.alignDelimiters !== false\n var alignments = []\n var stringLength = settings.stringLength || defaultStringLength\n var rowIndex = -1\n var rowLength = table.length\n var cellMatrix = []\n var sizeMatrix = []\n var row = []\n var sizes = []\n var longestCellByColumn = []\n var mostCellsPerRow = 0\n var cells\n var columnIndex\n var columnLength\n var largest\n var size\n var cell\n var lines\n var line\n var before\n var after\n var code\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 < rowLength) {\n cells = table[rowIndex]\n columnIndex = -1\n columnLength = cells.length\n row = []\n sizes = []\n\n if (columnLength > mostCellsPerRow) {\n mostCellsPerRow = columnLength\n }\n\n while (++columnIndex < columnLength) {\n cell = serialize(cells[columnIndex])\n\n if (alignDelimiters === true) {\n size = stringLength(cell)\n sizes[columnIndex] = size\n\n largest = longestCellByColumn[columnIndex]\n\n if (largest === undefined || size > largest) {\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 columnIndex = -1\n columnLength = mostCellsPerRow\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n code = toAlignment(align)\n\n while (++columnIndex < columnLength) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n columnLength = mostCellsPerRow\n row = []\n sizes = []\n\n while (++columnIndex < columnLength) {\n code = alignments[columnIndex]\n before = ''\n after = ''\n\n if (code === l) {\n before = colon\n } else if (code === r) {\n after = colon\n } else if (code === c) {\n before = colon\n after = colon\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n size = alignDelimiters\n ? Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n : 1\n\n cell = before + repeat(dash, size) + after\n\n if (alignDelimiters === true) {\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 rowLength = cellMatrix.length\n lines = []\n\n while (++rowIndex < rowLength) {\n row = cellMatrix[rowIndex]\n sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n columnLength = mostCellsPerRow\n line = []\n\n while (++columnIndex < columnLength) {\n cell = row[columnIndex] || ''\n before = ''\n after = ''\n\n if (alignDelimiters === true) {\n size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n code = alignments[columnIndex]\n\n if (code === r) {\n before = repeat(space, size)\n } else if (code === c) {\n if (size % 2 === 0) {\n before = repeat(space, size / 2)\n after = before\n } else {\n before = repeat(space, size / 2 + 0.5)\n after = repeat(space, size / 2 - 0.5)\n }\n } else {\n after = repeat(space, size)\n }\n }\n\n if (start === true && columnIndex === 0) {\n line.push(verticalBar)\n }\n\n if (\n padding === true &&\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 !(alignDelimiters === false && cell === '') &&\n (start === true || columnIndex !== 0)\n ) {\n line.push(space)\n }\n\n if (alignDelimiters === true) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (alignDelimiters === true) {\n line.push(after)\n }\n\n if (padding === true) {\n line.push(space)\n }\n\n if (end === true || columnIndex !== columnLength - 1) {\n line.push(verticalBar)\n }\n }\n\n line = line.join('')\n\n if (end === false) {\n line = line.replace(trailingWhitespace, '')\n }\n\n lines.push(line)\n }\n\n return lines.join(lineFeed)\n}\n\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\nfunction defaultStringLength(value) {\n return value.length\n}\n\nfunction toAlignment(value) {\n var code = typeof value === 'string' ? value.charCodeAt(0) : x\n\n return code === L || code === l\n ? l\n : code === R || code === r\n ? r\n : code === C || code === c\n ? c\n : x\n}\n","var defaultListItem = require('mdast-util-to-markdown/lib/handle/list-item')\n\nexports.unsafe = [{atBreak: true, character: '-', after: '[:|-]'}]\n\nexports.handlers = {\n listItem: listItemWithTaskListItem\n}\n\nfunction listItemWithTaskListItem(node, parent, context) {\n var value = defaultListItem(node, parent, context)\n var head = node.children[0]\n\n if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n function check($0) {\n return $0 + '[' + (node.checked ? 'x' : ' ') + '] '\n }\n}\n","module.exports = listItem\n\nvar repeat = require('repeat-string')\nvar checkBullet = require('../util/check-bullet')\nvar checkListItemIndent = require('../util/check-list-item-indent')\nvar flow = require('../util/container-flow')\nvar indentLines = require('../util/indent-lines')\n\nfunction listItem(node, parent, context) {\n var bullet = checkBullet(context)\n var listItemIndent = checkListItemIndent(context)\n var size\n var value\n var exit\n\n if (parent && parent.ordered) {\n bullet =\n (parent.start > -1 ? parent.start : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n '.'\n }\n\n size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' && ((parent && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n exit = context.enter('listItem')\n value = indentLines(flow(node, context), map)\n exit()\n\n return value\n\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","module.exports = checkBullet\n\nfunction checkBullet(context) {\n var marker = context.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","module.exports = checkListItemIndent\n\nfunction checkListItemIndent(context) {\n var style = context.options.listItemIndent || 'tab'\n\n if (style === 1 || style === '1') {\n return 'one'\n }\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","module.exports = flow\n\nvar repeat = require('repeat-string')\n\nfunction flow(parent, context) {\n var children = parent.children || []\n var results = []\n var index = -1\n var child\n\n while (++index < children.length) {\n child = children[index]\n\n results.push(\n context.handle(child, parent, context, {before: '\\n', after: '\\n'})\n )\n\n if (index + 1 < children.length) {\n results.push(between(child, children[index + 1]))\n }\n }\n\n return results.join('')\n\n function between(left, right) {\n var index = -1\n var result\n\n while (++index < context.join.length) {\n result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return repeat('\\n', 1 + Number(result))\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","module.exports = indentLines\n\nvar eol = /\\r?\\n|\\r/g\n\nfunction indentLines(value, map) {\n var result = []\n var start = 0\n var line = 0\n var match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","module.exports = configure\n\nfunction configure(base, extension) {\n var index = -1\n var key\n\n // First do subextensions.\n if (extension.extensions) {\n while (++index < extension.extensions.length) {\n configure(base, extension.extensions[index])\n }\n }\n\n for (key in extension) {\n if (key === 'extensions') {\n // Empty.\n } else if (key === 'unsafe' || key === 'join') {\n base[key] = base[key].concat(extension[key] || [])\n } else if (key === 'handlers') {\n base[key] = Object.assign(base[key], extension[key] || {})\n } else {\n base.options[key] = extension[key]\n }\n }\n\n return base\n}\n","'use strict'\n\nvar syntax = require('micromark-extension-math')\nvar fromMarkdown = require('mdast-util-math/from-markdown')\nvar toMarkdown = require('mdast-util-math/to-markdown')\nvar warningIssued\n\nmodule.exports = math\n\nfunction math() {\n var data = this.data()\n\n /* istanbul ignore next - old remark. */\n if (\n !warningIssued &&\n ((this.Parser &&\n this.Parser.prototype &&\n this.Parser.prototype.blockTokenizers) ||\n (this.Compiler &&\n this.Compiler.prototype &&\n this.Compiler.prototype.visitors))\n ) {\n warningIssued = true\n console.warn(\n '[remark-math] Warning: please upgrade to remark 13 to use this plugin'\n )\n }\n\n add('micromarkExtensions', syntax)\n add('fromMarkdownExtensions', fromMarkdown)\n add('toMarkdownExtensions', toMarkdown)\n\n function add(field, value) {\n /* istanbul ignore if - other extensions. */\n if (data[field]) data[field].push(value)\n else data[field] = [value]\n }\n}\n","module.exports = require('./lib/syntax')\n","'use strict'\n\nexports.flow = {36: require('./tokenize-math-flow')}\nexports.text = {36: require('./tokenize-math-text')}\n","'use strict'\n\nexports.tokenize = tokenizeMathFenced\nexports.concrete = true\n\nvar prefixSize = require('micromark/dist/util/prefix-size')\nvar createSpace = require('micromark/dist/tokenize/factory-space')\n\nfunction tokenizeMathFenced(effects, ok, nok) {\n var self = this\n var initialPrefix = prefixSize(this.events, 'linePrefix')\n var sizeOpen = 0\n\n return start\n\n function start(code) {\n /* istanbul ignore if - handled by mm */\n if (code !== 36) throw new Error('expected `$`')\n\n effects.enter('mathFlow')\n effects.enter('mathFlowFence')\n effects.enter('mathFlowFenceSequence')\n return sequenceOpen(code)\n }\n\n function sequenceOpen(code) {\n if (code === 36) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('mathFlowFenceSequence')\n return sizeOpen < 2\n ? nok(code)\n : createSpace(effects, metaOpen, 'whitespace')(code)\n }\n\n function metaOpen(code) {\n if (code === null || code === -5 || code === -4 || code === -3) {\n return openAfter(code)\n }\n\n effects.enter('mathFlowFenceMeta')\n effects.enter('chunkString', {contentType: 'string'})\n return meta(code)\n }\n\n function meta(code) {\n if (code === null || code === -5 || code === -4 || code === -3) {\n effects.exit('chunkString')\n effects.exit('mathFlowFenceMeta')\n return openAfter(code)\n }\n\n if (code === 36) return nok(code)\n effects.consume(code)\n return meta\n }\n\n function openAfter(code) {\n effects.exit('mathFlowFence')\n return self.interrupt ? ok(code) : content(code)\n }\n\n function content(code) {\n if (code === null) {\n return after(code)\n }\n\n if (code === -5 || code === -4 || code === -3) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(\n {tokenize: tokenizeClosingFence, partial: true},\n after,\n initialPrefix\n ? createSpace(effects, content, 'linePrefix', initialPrefix + 1)\n : content\n )\n }\n\n effects.enter('mathFlowValue')\n return contentContinue(code)\n }\n\n function contentContinue(code) {\n if (code === null || code === -5 || code === -4 || code === -3) {\n effects.exit('mathFlowValue')\n return content(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n\n function after(code) {\n effects.exit('mathFlow')\n return ok(code)\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0\n\n return createSpace(effects, closingPrefixAfter, 'linePrefix', 4)\n\n function closingPrefixAfter(code) {\n effects.enter('mathFlowFence')\n effects.enter('mathFlowFenceSequence')\n return closingSequence(code)\n }\n\n function closingSequence(code) {\n if (code === 36) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('mathFlowFenceSequence')\n return createSpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n\n function closingSequenceEnd(code) {\n if (code === null || code === -5 || code === -4 || code === -3) {\n effects.exit('mathFlowFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","'use strict'\n\nexports.tokenize = tokenizeMathText\nexports.resolve = resolveMathText\nexports.previous = previous\n\nfunction resolveMathText(events) {\n var tailExitIndex = events.length - 4\n var headEnterIndex = 3\n var index\n var enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'mathTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = 'mathTextPadding'\n events[headEnterIndex][1].type = 'mathTextPadding'\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\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'mathTextData'\n\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\n enter = undefined\n }\n }\n\n return events\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 36 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\nfunction tokenizeMathText(effects, ok, nok) {\n var self = this\n var sizeOpen = 0\n var size\n var token\n\n return start\n\n function start(code) {\n /* istanbul ignore if - handled by mm */\n if (code !== 36) throw new Error('expected `$`')\n\n /* istanbul ignore if - handled by mm */\n if (!previous.call(self, self.previous)) {\n throw new Error('expected correct previous')\n }\n\n effects.enter('mathText')\n effects.enter('mathTextSequence')\n return openingSequence(code)\n }\n\n function openingSequence(code) {\n if (code === 36) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('mathTextSequence')\n return gap(code)\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // Closing fence?\n // Could also be data.\n if (code === 36) {\n token = effects.enter('mathTextSequence')\n size = 0\n return closingSequence(code)\n }\n\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 gap\n }\n\n if (code === -5 || code === -4 || code === -3) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n }\n\n // Data.\n effects.enter('mathTextData')\n return data(code)\n }\n\n // In code.\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 36 ||\n code === -5 ||\n code === -4 ||\n code === -3\n ) {\n effects.exit('mathTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n }\n\n // Closing fence.\n function closingSequence(code) {\n // More.\n if (code === 36) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('mathTextSequence')\n effects.exit('mathText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'mathTextData'\n return data(code)\n }\n}\n","'use strict'\n\nexports.enter = {\n mathFlow: enterMathFlow,\n mathFlowFenceMeta: enterMathFlowMeta,\n mathText: enterMathText\n}\nexports.exit = {\n mathFlow: exitMathFlow,\n mathFlowFence: exitMathFlowFence,\n mathFlowFenceMeta: exitMathFlowMeta,\n mathFlowValue: exitMathData,\n mathText: exitMathText,\n mathTextData: exitMathData\n}\n\nfunction enterMathFlow(token) {\n this.enter(\n {\n type: 'math',\n meta: null,\n value: '',\n data: {\n hName: 'div',\n hProperties: {className: ['math', 'math-display']},\n hChildren: [{type: 'text', value: ''}]\n }\n },\n token\n )\n}\n\nfunction enterMathFlowMeta() {\n this.buffer()\n}\n\nfunction exitMathFlowMeta() {\n var data = this.resume()\n this.stack[this.stack.length - 1].meta = data\n}\n\nfunction exitMathFlowFence() {\n // Exit if this is the closing fence.\n if (this.getData('mathFlowInside')) return\n this.buffer()\n this.setData('mathFlowInside', true)\n}\n\nfunction exitMathFlow(token) {\n var data = this.resume().replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n var node = this.exit(token)\n node.value = data\n node.data.hChildren[0].value = data\n this.setData('mathFlowInside')\n}\n\nfunction enterMathText(token) {\n this.enter(\n {\n type: 'inlineMath',\n value: '',\n data: {\n hName: 'span',\n hProperties: {className: ['math', 'math-inline']},\n hChildren: [{type: 'text', value: ''}]\n }\n },\n token\n )\n this.buffer()\n}\n\nfunction exitMathText(token) {\n var data = this.resume()\n var node = this.exit(token)\n node.value = data\n node.data.hChildren[0].value = data\n}\n\nfunction exitMathData(token) {\n this.config.enter.data.call(this, token)\n this.config.exit.data.call(this, token)\n}\n","'use strict'\n\nexports.unsafe = [\n {character: '\\r', inConstruct: ['mathFlowMeta']},\n {character: '\\r', inConstruct: ['mathFlowMeta']},\n {character: '$', inConstruct: ['mathFlowMeta', 'phrasing']},\n {atBreak: true, character: '$', after: '\\\\$'}\n]\n\nexports.handlers = {math: math, inlineMath: inlineMath}\n\ninlineMath.peek = inlineMathPeek\n\nvar repeat = require('repeat-string')\nvar streak = require('longest-streak')\nvar safe = require('mdast-util-to-markdown/lib/util/safe')\n\nfunction math(node, _, context) {\n var raw = node.value || ''\n var fence = repeat('$', Math.max(streak(raw, '$') + 1, 2))\n var exit = context.enter('mathFlow')\n var value = fence\n var subexit\n\n if (node.meta) {\n subexit = context.enter('mathFlowMeta')\n value += safe(context, node.meta, {before: '$', after: ' ', encode: ['$']})\n subexit()\n }\n\n value += '\\n'\n\n if (raw) {\n value += raw + '\\n'\n }\n\n value += fence\n exit()\n return value\n}\n\nfunction inlineMath(node) {\n var value = node.value || ''\n var size = 1\n var pad = ''\n var sequence\n\n // If there is a single dollar sign on its own in the math, use a fence of\n // two.\n // If there are two in a row, use one.\n while (\n new RegExp('(^|[^$])' + repeat('\\\\$', size) + '([^$]|$)').test(value)\n ) {\n size++\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the first\n // or last character are a space, eol, or dollar sign, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n (/[ \\r\\n$]/.test(value.charAt(0)) ||\n /[ \\r\\n$]/.test(value.charAt(value.length - 1)))\n ) {\n pad = ' '\n }\n\n sequence = repeat('$', size)\n return sequence + pad + value + pad + sequence\n}\n\nfunction inlineMathPeek() {\n return '$'\n}\n","'use strict'\n\nmodule.exports = longestStreak\n\n// Get the count of the longest repeating streak of `character` in `value`.\nfunction longestStreak(value, character) {\n var count = 0\n var maximum = 0\n var expected\n var index\n\n if (typeof character !== 'string' || character.length !== 1) {\n throw new Error('Expected character')\n }\n\n value = String(value)\n index = value.indexOf(character)\n expected = index\n\n while (index !== -1) {\n count++\n\n if (index === expected) {\n if (count > maximum) {\n maximum = count\n }\n } else {\n count = 1\n }\n\n expected = index + 1\n index = value.indexOf(character, expected)\n }\n\n return maximum\n}\n","module.exports = safe\n\nvar patternCompile = require('./pattern-compile')\nvar patternInScope = require('./pattern-in-scope')\n\nfunction safe(context, input, config) {\n var value = (config.before || '') + (input || '') + (config.after || '')\n var positions = []\n var result = []\n var infos = {}\n var index = -1\n var before\n var after\n var position\n var pattern\n var expression\n var match\n var start\n var end\n\n while (++index < context.unsafe.length) {\n pattern = context.unsafe[index]\n\n if (!patternInScope(context.stack, pattern)) {\n continue\n }\n\n expression = patternCompile(pattern)\n\n while ((match = expression.exec(value))) {\n before = 'before' in pattern || pattern.atBreak\n after = 'after' in pattern\n\n position = match.index + (before ? match[1].length : 0)\n\n if (positions.indexOf(position) === -1) {\n positions.push(position)\n infos[position] = {before: before, after: after}\n } else {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n }\n }\n }\n\n positions.sort(numerical)\n\n start = config.before ? config.before.length : 0\n end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n position = positions[index]\n\n if (\n // Character before or after matched:\n position < start ||\n position >= end\n ) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || config.encode.indexOf(value.charAt(position)) === -1)\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\nfunction numerical(a, b) {\n return a - b\n}\n\nfunction escapeBackslashes(value, after) {\n var expression = /\\\\(?=[!-/:-@[-`{-~])/g\n var positions = []\n var results = []\n var index = -1\n var start = 0\n var whole = value + after\n var match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","module.exports = patternInScope\n\nfunction patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct)\n )\n}\n\nfunction listInScope(stack, list, none) {\n var index\n\n if (!list) {\n return none\n }\n\n if (typeof list === 'string') {\n list = [list]\n }\n\n index = -1\n\n while (++index < list.length) {\n if (stack.indexOf(list[index]) !== -1) {\n return true\n }\n }\n\n return false\n}\n","const visit = require('unist-util-visit')\nconst katex = require('katex').renderToString\nconst unified = require('unified')\nconst parse = require('rehype-parse')\nconst toText = require('hast-util-to-text')\n\nmodule.exports = rehypeKatex\n\nconst assign = Object.assign\n\nconst parseHtml = unified().use(parse, {fragment: true, position: false})\n\nconst source = 'rehype-katex'\n\nfunction rehypeKatex(options) {\n const settings = options || {}\n const throwOnError = settings.throwOnError || false\n\n return transformMath\n\n function transformMath(tree, file) {\n visit(tree, 'element', onelement)\n\n function onelement(element) {\n const classes = element.properties.className || []\n const inline = classes.includes('math-inline')\n const displayMode = classes.includes('math-display')\n\n if (!inline && !displayMode) {\n return\n }\n\n const value = toText(element)\n\n let result\n\n try {\n result = katex(\n value,\n assign({}, settings, {displayMode: displayMode, throwOnError: true})\n )\n } catch (error) {\n const fn = throwOnError ? 'fail' : 'message'\n const origin = [source, error.name.toLowerCase()].join(':')\n\n file[fn](error.message, element.position, origin)\n\n result = katex(\n value,\n assign({}, settings, {\n displayMode: displayMode,\n throwOnError: false,\n strict: 'ignore'\n })\n )\n }\n\n element.children = parseHtml.parse(result).children\n }\n }\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"katex\"] = factory();\n\telse\n\t\troot[\"katex\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \t// The require scope\n/******/ \tvar __webpack_require__ = {};\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ katex_webpack; }\n});\n\n;// CONCATENATED MODULE: ./src/ParseError.js\n\n\n/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n *\n * If possible, a caller should provide a Token or ParseNode with information\n * about where in the source string the problem occurred.\n */\nvar ParseError = // Error position based on passed-in Token or ParseNode.\nfunction ParseError(message, // The error message\ntoken // An object providing position information\n) {\n this.position = void 0;\n var error = \"KaTeX parse error: \" + message;\n var start;\n var loc = token && token.loc;\n\n if (loc && loc.start <= loc.end) {\n // If we have the input and a position, make the error a bit fancier\n // Get the input\n var input = loc.lexer.input; // Prepend some information\n\n start = loc.start;\n var end = loc.end;\n\n if (start === input.length) {\n error += \" at end of input: \";\n } else {\n error += \" at position \" + (start + 1) + \": \";\n } // Underline token in question using combining underscores\n\n\n var underlined = input.slice(start, end).replace(/[^]/g, \"$&\\u0332\"); // Extract some context from the input and add it to the error\n\n var left;\n\n if (start > 15) {\n left = \"…\" + input.slice(start - 15, start);\n } else {\n left = input.slice(0, start);\n }\n\n var right;\n\n if (end + 15 < input.length) {\n right = input.slice(end, end + 15) + \"…\";\n } else {\n right = input.slice(end);\n }\n\n error += left + underlined + right;\n } // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n\n\n var self = new Error(error);\n self.name = \"ParseError\"; // $FlowFixMe\n\n self.__proto__ = ParseError.prototype; // $FlowFixMe\n\n self.position = start;\n return self;\n}; // $FlowFixMe More hackery\n\n\nParseError.prototype.__proto__ = Error.prototype;\n/* harmony default export */ var src_ParseError = (ParseError);\n;// CONCATENATED MODULE: ./src/utils.js\n/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Return whether an element is contained in a list\n */\nvar contains = function contains(list, elem) {\n return list.indexOf(elem) !== -1;\n};\n/**\n * Provide a default value if a setting is undefined\n * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022.\n */\n\n\nvar deflt = function deflt(setting, defaultIfUndefined) {\n return setting === undefined ? defaultIfUndefined : setting;\n}; // hyphenate and escape adapted from Facebook's React under Apache 2 license\n\n\nvar uppercase = /([A-Z])/g;\n\nvar hyphenate = function hyphenate(str) {\n return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nvar ESCAPE_LOOKUP = {\n \"&\": \"&\",\n \">\": \">\",\n \"<\": \"<\",\n \"\\\"\": \""\",\n \"'\": \"'\"\n};\nvar ESCAPE_REGEX = /[&><\"']/g;\n/**\n * Escapes text to prevent scripting attacks.\n */\n\nfunction utils_escape(text) {\n return String(text).replace(ESCAPE_REGEX, function (match) {\n return ESCAPE_LOOKUP[match];\n });\n}\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\n\n\nvar getBaseElem = function getBaseElem(group) {\n if (group.type === \"ordgroup\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"font\") {\n return getBaseElem(group.body);\n } else {\n return group;\n }\n};\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\n\n\nvar isCharacterBox = function isCharacterBox(group) {\n var baseElem = getBaseElem(group); // These are all they types of groups which hold single characters\n\n return baseElem.type === \"mathord\" || baseElem.type === \"textord\" || baseElem.type === \"atom\";\n};\n\nvar assert = function assert(value) {\n if (!value) {\n throw new Error('Expected non-null, but got ' + String(value));\n }\n\n return value;\n};\n/**\n * Return the protocol of a URL, or \"_relative\" if the URL does not specify a\n * protocol (and thus is relative).\n */\n\nvar protocolFromUrl = function protocolFromUrl(url) {\n var protocol = /^\\s*([^\\\\/#]*?)(?::|�*58|�*3a)/i.exec(url);\n return protocol != null ? protocol[1] : \"_relative\";\n};\n/* harmony default export */ var utils = ({\n contains: contains,\n deflt: deflt,\n escape: utils_escape,\n hyphenate: hyphenate,\n getBaseElem: getBaseElem,\n isCharacterBox: isCharacterBox,\n protocolFromUrl: protocolFromUrl\n});\n;// CONCATENATED MODULE: ./src/Settings.js\n/* eslint no-console:0 */\n\n/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n\n\n\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset as inline math\n * (false, the default), meaning that the math starts in\n * \\textstyle and is placed in an inline-block); or as display\n * math (true), meaning that the math starts in \\displaystyle\n * and is placed in a block with vertical margin.\n */\nvar Settings = /*#__PURE__*/function () {\n function Settings(options) {\n this.displayMode = void 0;\n this.output = void 0;\n this.leqno = void 0;\n this.fleqn = void 0;\n this.throwOnError = void 0;\n this.errorColor = void 0;\n this.macros = void 0;\n this.minRuleThickness = void 0;\n this.colorIsTextColor = void 0;\n this.strict = void 0;\n this.trust = void 0;\n this.maxSize = void 0;\n this.maxExpand = void 0;\n this.globalGroup = void 0;\n // allow null options\n options = options || {};\n this.displayMode = utils.deflt(options.displayMode, false);\n this.output = utils.deflt(options.output, \"htmlAndMathml\");\n this.leqno = utils.deflt(options.leqno, false);\n this.fleqn = utils.deflt(options.fleqn, false);\n this.throwOnError = utils.deflt(options.throwOnError, true);\n this.errorColor = utils.deflt(options.errorColor, \"#cc0000\");\n this.macros = options.macros || {};\n this.minRuleThickness = Math.max(0, utils.deflt(options.minRuleThickness, 0));\n this.colorIsTextColor = utils.deflt(options.colorIsTextColor, false);\n this.strict = utils.deflt(options.strict, \"warn\");\n this.trust = utils.deflt(options.trust, false);\n this.maxSize = Math.max(0, utils.deflt(options.maxSize, Infinity));\n this.maxExpand = Math.max(0, utils.deflt(options.maxExpand, 1000));\n this.globalGroup = utils.deflt(options.globalGroup, false);\n }\n /**\n * Report nonstrict (non-LaTeX-compatible) input.\n * Can safely not be called if `this.strict` is false in JavaScript.\n */\n\n\n var _proto = Settings.prototype;\n\n _proto.reportNonstrict = function reportNonstrict(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n strict = strict(errorCode, errorMsg, token);\n }\n\n if (!strict || strict === \"ignore\") {\n return;\n } else if (strict === true || strict === \"error\") {\n throw new src_ParseError(\"LaTeX-incompatible input and strict mode is set to 'error': \" + (errorMsg + \" [\" + errorCode + \"]\"), token);\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n }\n }\n /**\n * Check whether to apply strict (LaTeX-adhering) behavior for unusual\n * input (like `\\\\`). Unlike `nonstrict`, will not throw an error;\n * instead, \"error\" translates to a return value of `true`, while \"ignore\"\n * translates to a return value of `false`. May still print a warning:\n * \"warn\" prints a warning and returns `false`.\n * This is for the second category of `errorCode`s listed in the README.\n */\n ;\n\n _proto.useStrictBehavior = function useStrictBehavior(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n // But catch any exceptions thrown by function, treating them\n // like \"error\".\n try {\n strict = strict(errorCode, errorMsg, token);\n } catch (error) {\n strict = \"error\";\n }\n }\n\n if (!strict || strict === \"ignore\") {\n return false;\n } else if (strict === true || strict === \"error\") {\n return true;\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n }\n }\n /**\n * Check whether to test potentially dangerous input, and return\n * `true` (trusted) or `false` (untrusted). The sole argument `context`\n * should be an object with `command` field specifying the relevant LaTeX\n * command (as a string starting with `\\`), and any other arguments, etc.\n * If `context` has a `url` field, a `protocol` field will automatically\n * get added by this function (changing the specified object).\n */\n ;\n\n _proto.isTrusted = function isTrusted(context) {\n if (context.url && !context.protocol) {\n context.protocol = utils.protocolFromUrl(context.url);\n }\n\n var trust = typeof this.trust === \"function\" ? this.trust(context) : this.trust;\n return Boolean(trust);\n };\n\n return Settings;\n}();\n\n\n;// CONCATENATED MODULE: ./src/Style.js\n/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), and a cramped flag.\n */\nvar Style = /*#__PURE__*/function () {\n function Style(id, size, cramped) {\n this.id = void 0;\n this.size = void 0;\n this.cramped = void 0;\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n }\n /**\n * Get the style of a superscript given a base in the current style.\n */\n\n\n var _proto = Style.prototype;\n\n _proto.sup = function sup() {\n return styles[_sup[this.id]];\n }\n /**\n * Get the style of a subscript given a base in the current style.\n */\n ;\n\n _proto.sub = function sub() {\n return styles[_sub[this.id]];\n }\n /**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\n ;\n\n _proto.fracNum = function fracNum() {\n return styles[_fracNum[this.id]];\n }\n /**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\n ;\n\n _proto.fracDen = function fracDen() {\n return styles[_fracDen[this.id]];\n }\n /**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\n ;\n\n _proto.cramp = function cramp() {\n return styles[_cramp[this.id]];\n }\n /**\n * Get a text or display version of this style.\n */\n ;\n\n _proto.text = function text() {\n return styles[_text[this.id]];\n }\n /**\n * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)\n */\n ;\n\n _proto.isTight = function isTight() {\n return this.size >= 2;\n };\n\n return Style;\n}(); // Export an interface for type checking, but don't expose the implementation.\n// This way, no more styles can be generated.\n\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7; // Instances of the different styles\n\nvar styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; // Lookup tables for switching from one style to another\n\nvar _sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar _sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar _fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar _fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar _cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\nvar _text = [D, Dc, T, Tc, T, Tc, T, Tc]; // We only export some of the styles.\n\n/* harmony default export */ var src_Style = ({\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS]\n});\n;// CONCATENATED MODULE: ./src/unicodeScripts.js\n/*\n * This file defines the Unicode scripts and script families that we\n * support. To add new scripts or families, just add a new entry to the\n * scriptData array below. Adding scripts to the scriptData array allows\n * characters from that script to appear in \\text{} environments.\n */\n\n/**\n * Each script or script family has a name and an array of blocks.\n * Each block is an array of two numbers which specify the start and\n * end points (inclusive) of a block of Unicode codepoints.\n */\n\n/**\n * Unicode block data for the families of scripts we support in \\text{}.\n * Scripts only need to appear here if they do not have font metrics.\n */\nvar scriptData = [{\n // Latin characters beyond the Latin-1 characters we have metrics for.\n // Needed for Czech, Hungarian and Turkish text, for example.\n name: 'latin',\n blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B\n [0x0300, 0x036f] // Combining Diacritical marks\n ]\n}, {\n // The Cyrillic script used by Russian and related languages.\n // A Cyrillic subset used to be supported as explicitly defined\n // symbols in symbols.js\n name: 'cyrillic',\n blocks: [[0x0400, 0x04ff]]\n}, {\n // Armenian\n name: 'armenian',\n blocks: [[0x0530, 0x058F]]\n}, {\n // The Brahmic scripts of South and Southeast Asia\n // Devanagari (0900–097F)\n // Bengali (0980–09FF)\n // Gurmukhi (0A00–0A7F)\n // Gujarati (0A80–0AFF)\n // Oriya (0B00–0B7F)\n // Tamil (0B80–0BFF)\n // Telugu (0C00–0C7F)\n // Kannada (0C80–0CFF)\n // Malayalam (0D00–0D7F)\n // Sinhala (0D80–0DFF)\n // Thai (0E00–0E7F)\n // Lao (0E80–0EFF)\n // Tibetan (0F00–0FFF)\n // Myanmar (1000–109F)\n name: 'brahmic',\n blocks: [[0x0900, 0x109F]]\n}, {\n name: 'georgian',\n blocks: [[0x10A0, 0x10ff]]\n}, {\n // Chinese and Japanese.\n // The \"k\" in cjk is for Korean, but we've separated Korean out\n name: \"cjk\",\n blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana\n [0x4E00, 0x9FAF], // CJK ideograms\n [0xFF00, 0xFF60] // Fullwidth punctuation\n // TODO: add halfwidth Katakana and Romanji glyphs\n ]\n}, {\n // Korean\n name: 'hangul',\n blocks: [[0xAC00, 0xD7AF]]\n}];\n/**\n * Given a codepoint, return the name of the script or script family\n * it is from, or null if it is not part of a known block\n */\n\nfunction scriptFromCodepoint(codepoint) {\n for (var i = 0; i < scriptData.length; i++) {\n var script = scriptData[i];\n\n for (var _i = 0; _i < script.blocks.length; _i++) {\n var block = script.blocks[_i];\n\n if (codepoint >= block[0] && codepoint <= block[1]) {\n return script.name;\n }\n }\n }\n\n return null;\n}\n/**\n * A flattened version of all the supported blocks in a single array.\n * This is an optimization to make supportedCodepoint() fast.\n */\n\nvar allBlocks = [];\nscriptData.forEach(function (s) {\n return s.blocks.forEach(function (b) {\n return allBlocks.push.apply(allBlocks, b);\n });\n});\n/**\n * Given a codepoint, return true if it falls within one of the\n * scripts or script families defined above and false otherwise.\n *\n * Micro benchmarks shows that this is faster than\n * /[\\u3000-\\u30FF\\u4E00-\\u9FAF\\uFF00-\\uFF60\\uAC00-\\uD7AF\\u0900-\\u109F]/.test()\n * in Firefox, Chrome and Node.\n */\n\nfunction supportedCodepoint(codepoint) {\n for (var i = 0; i < allBlocks.length; i += 2) {\n if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) {\n return true;\n }\n }\n\n return false;\n}\n;// CONCATENATED MODULE: ./src/svgGeometry.js\n/**\n * This file provides support to domTree.js and delimiter.js.\n * It's a storehouse of path geometry for SVG images.\n */\n// In all paths below, the viewBox-to-em scale is 1000:1.\nvar hLinePad = 80; // padding above a sqrt viniculum. Prevents image cropping.\n// The viniculum of a \\sqrt can be made thicker by a KaTeX rendering option.\n// Think of variable extraViniculum as two detours in the SVG path.\n// The detour begins at the lower left of the area labeled extraViniculum below.\n// The detour proceeds one extraViniculum distance up and slightly to the right,\n// displacing the radiused corner between surd and viniculum. The radius is\n// traversed as usual, then the detour resumes. It goes right, to the end of\n// the very long viniculumn, then down one extraViniculum distance,\n// after which it resumes regular path geometry for the radical.\n\n/* viniculum\n /\n /â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â†extraViniculum\n / █████████████████████â†0.04em (40 unit) std viniculum thickness\n / /\n / /\n / /\\\n / / surd\n*/\n\nvar sqrtMain = function sqrtMain(extraViniculum, hLinePad) {\n // sqrtMain path geometry is from glyph U221A in the font KaTeX Main\n return \"M95,\" + (622 + extraViniculum + hLinePad) + \"\\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\\nc69,-144,104.5,-217.7,106.5,-221\\nl\" + extraViniculum / 2.075 + \" -\" + extraViniculum + \"\\nc5.3,-9.3,12,-14,20,-14\\nH400000v\" + (40 + extraViniculum) + \"H845.2724\\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\\nM\" + (834 + extraViniculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraViniculum) + \"h-400000z\";\n};\n\nvar sqrtSize1 = function sqrtSize1(extraViniculum, hLinePad) {\n // size1 is from glyph U221A in the font KaTeX_Size1-Regular\n return \"M263,\" + (601 + extraViniculum + hLinePad) + \"c0.7,0,18,39.7,52,119\\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\\nc340,-704.7,510.7,-1060.3,512,-1067\\nl\" + extraViniculum / 2.084 + \" -\" + extraViniculum + \"\\nc4.7,-7.3,11,-11,19,-11\\nH40000v\" + (40 + extraViniculum) + \"H1012.3\\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\\nM\" + (1001 + extraViniculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraViniculum) + \"h-400000z\";\n};\n\nvar sqrtSize2 = function sqrtSize2(extraViniculum, hLinePad) {\n // size2 is from glyph U221A in the font KaTeX_Size2-Regular\n return \"M983 \" + (10 + extraViniculum + hLinePad) + \"\\nl\" + extraViniculum / 3.13 + \" -\" + extraViniculum + \"\\nc4,-6.7,10,-10,18,-10 H400000v\" + (40 + extraViniculum) + \"\\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\\nM\" + (1001 + extraViniculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraViniculum) + \"h-400000z\";\n};\n\nvar sqrtSize3 = function sqrtSize3(extraViniculum, hLinePad) {\n // size3 is from glyph U221A in the font KaTeX_Size3-Regular\n return \"M424,\" + (2398 + extraViniculum + hLinePad) + \"\\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\\nl\" + extraViniculum / 4.223 + \" -\" + extraViniculum + \"c4,-6.7,10,-10,18,-10 H400000\\nv\" + (40 + extraViniculum) + \"H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\\nc-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M\" + (1001 + extraViniculum) + \" \" + hLinePad + \"\\nh400000v\" + (40 + extraViniculum) + \"h-400000z\";\n};\n\nvar sqrtSize4 = function sqrtSize4(extraViniculum, hLinePad) {\n // size4 is from glyph U221A in the font KaTeX_Size4-Regular\n return \"M473,\" + (2713 + extraViniculum + hLinePad) + \"\\nc339.3,-1799.3,509.3,-2700,510,-2702 l\" + extraViniculum / 5.298 + \" -\" + extraViniculum + \"\\nc3.3,-7.3,9.3,-11,18,-11 H400000v\" + (40 + extraViniculum) + \"H1017.7\\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\\n606zM\" + (1001 + extraViniculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraViniculum) + \"H1017.7z\";\n};\n\nvar phasePath = function phasePath(y) {\n var x = y / 2; // x coordinate at top of angle\n\n return \"M400000 \" + y + \" H0 L\" + x + \" 0 l65 45 L145 \" + (y - 80) + \" H400000z\";\n};\n\nvar sqrtTall = function sqrtTall(extraViniculum, hLinePad, viewBoxHeight) {\n // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular\n // One path edge has a variable length. It runs vertically from the viniculumn\n // to a point near (14 units) the bottom of the surd. The viniculum\n // is normally 40 units thick. So the length of the line in question is:\n var vertSegment = viewBoxHeight - 54 - hLinePad - extraViniculum;\n return \"M702 \" + (extraViniculum + hLinePad) + \"H400000\" + (40 + extraViniculum) + \"\\nH742v\" + vertSegment + \"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\\n219 661 l218 661zM702 \" + hLinePad + \"H400000v\" + (40 + extraViniculum) + \"H742z\";\n};\n\nvar sqrtPath = function sqrtPath(size, extraViniculum, viewBoxHeight) {\n extraViniculum = 1000 * extraViniculum; // Convert from document ems to viewBox.\n\n var path = \"\";\n\n switch (size) {\n case \"sqrtMain\":\n path = sqrtMain(extraViniculum, hLinePad);\n break;\n\n case \"sqrtSize1\":\n path = sqrtSize1(extraViniculum, hLinePad);\n break;\n\n case \"sqrtSize2\":\n path = sqrtSize2(extraViniculum, hLinePad);\n break;\n\n case \"sqrtSize3\":\n path = sqrtSize3(extraViniculum, hLinePad);\n break;\n\n case \"sqrtSize4\":\n path = sqrtSize4(extraViniculum, hLinePad);\n break;\n\n case \"sqrtTall\":\n path = sqrtTall(extraViniculum, hLinePad, viewBoxHeight);\n }\n\n return path;\n};\nvar innerPath = function innerPath(name, height) {\n // The inner part of stretchy tall delimiters\n switch (name) {\n case \"\\u239C\":\n return \"M291 0 H417 V\" + height + \" H291z M291 0 H417 V\" + height + \" H291z\";\n\n case \"\\u2223\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\";\n\n case \"\\u2225\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\" + (\"M367 0 H410 V\" + height + \" H367z M367 0 H410 V\" + height + \" H367z\");\n\n case \"\\u239F\":\n return \"M457 0 H583 V\" + height + \" H457z M457 0 H583 V\" + height + \" H457z\";\n\n case \"\\u23A2\":\n return \"M319 0 H403 V\" + height + \" H319z M319 0 H403 V\" + height + \" H319z\";\n\n case \"\\u23A5\":\n return \"M263 0 H347 V\" + height + \" H263z M263 0 H347 V\" + height + \" H263z\";\n\n case \"\\u23AA\":\n return \"M384 0 H504 V\" + height + \" H384z M384 0 H504 V\" + height + \" H384z\";\n\n case \"\\u23D0\":\n return \"M312 0 H355 V\" + height + \" H312z M312 0 H355 V\" + height + \" H312z\";\n\n case \"\\u2016\":\n return \"M257 0 H300 V\" + height + \" H257z M257 0 H300 V\" + height + \" H257z\" + (\"M478 0 H521 V\" + height + \" H478z M478 0 H521 V\" + height + \" H478z\");\n\n default:\n return \"\";\n }\n};\nvar path = {\n // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main\n doubleleftarrow: \"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",\n // doublerightarrow is from glyph U+21D2 in font KaTeX Main\n doublerightarrow: \"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",\n // leftarrow is from glyph U+2190 in font KaTeX Main\n leftarrow: \"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",\n // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular\n leftbrace: \"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",\n leftbraceunder: \"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",\n // overgroup is from the MnSymbol package (public domain)\n leftgroup: \"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",\n leftgroupunder: \"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",\n // Harpoons are from glyph U+21BD in font KaTeX Main\n leftharpoon: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",\n leftharpoonplus: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",\n leftharpoondown: \"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",\n leftharpoondownplus: \"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",\n // hook is from glyph U+21A9 in font KaTeX Main\n lefthook: \"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",\n leftlinesegment: \"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",\n leftmapsto: \"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",\n // tofrom is from glyph U+21C4 in font KaTeX AMS Regular\n leftToFrom: \"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",\n longequal: \"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",\n midbrace: \"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",\n midbraceunder: \"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",\n oiintSize1: \"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z\",\n oiintSize2: \"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\\nc0 110 84 276 504 276s502.4-166 502.4-276z\",\n oiiintSize1: \"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z\",\n oiiintSize2: \"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z\",\n rightarrow: \"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",\n rightbrace: \"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",\n rightbraceunder: \"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",\n rightgroup: \"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",\n rightgroupunder: \"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",\n rightharpoon: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",\n rightharpoonplus: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",\n rightharpoondown: \"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",\n rightharpoondownplus: \"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",\n righthook: \"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",\n rightlinesegment: \"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",\n rightToFrom: \"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",\n // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular\n twoheadleftarrow: \"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",\n twoheadrightarrow: \"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",\n // tilde1 is a modified version of a glyph from the MnSymbol package\n tilde1: \"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",\n // ditto tilde2, tilde3, & tilde4\n tilde2: \"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",\n tilde3: \"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",\n tilde4: \"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",\n // vec is from glyph U+20D7 in font KaTeX Main\n vec: \"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",\n // widehat1 is a modified version of a glyph from the MnSymbol package\n widehat1: \"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",\n // ditto widehat2, widehat3, & widehat4\n widehat2: \"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat3: \"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat4: \"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n // widecheck paths are all inverted versions of widehat\n widecheck1: \"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z\",\n widecheck2: \"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck3: \"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck4: \"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n // The next ten paths support reaction arrows from the mhchem package.\n // Arrows for \\ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX\n // baraboveleftarrow is mostly from from glyph U+2190 in font KaTeX Main\n baraboveleftarrow: \"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z\",\n // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main\n rightarrowabovebar: \"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z\",\n // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.\n // Ref from mhchem.sty: \\rlap{\\raisebox{-.22ex}{$\\kern0.5em\n baraboveshortleftharpoon: \"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",\n rightharpoonaboveshortbar: \"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",\n shortbaraboveleftharpoon: \"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",\n shortrightharpoonabovebar: \"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"\n};\n;// CONCATENATED MODULE: ./src/tree.js\n\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. It only contains\n * children and doesn't have any DOM node properties.\n */\nvar DocumentFragment = /*#__PURE__*/function () {\n // HtmlDomNode\n // Never used; needed for satisfying interface.\n function DocumentFragment(children) {\n this.children = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.children = children;\n this.classes = [];\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = {};\n }\n\n var _proto = DocumentFragment.prototype;\n\n _proto.hasClass = function hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /** Convert the fragment into a node. */\n ;\n\n _proto.toNode = function toNode() {\n var frag = document.createDocumentFragment();\n\n for (var i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n }\n /** Convert the fragment into HTML markup. */\n ;\n\n _proto.toMarkup = function toMarkup() {\n var markup = \"\"; // Simply concatenate the markup for the children together.\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText. Applies to\n * MathDomNode's only.\n */\n ;\n\n _proto.toText = function toText() {\n // To avoid this, we would subclass documentFragment separately for\n // MathML, but polyfills for subclassing is expensive per PR 1469.\n // $FlowFixMe: Only works for ChildType = MathDomNode.\n var toText = function toText(child) {\n return child.toText();\n };\n\n return this.children.map(toText).join(\"\");\n };\n\n return DocumentFragment;\n}();\n;// CONCATENATED MODULE: ./src/domTree.js\n/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n *\n * TODO: refactor `span` and `anchor` into common superclass when\n * target environments support class inheritance\n */\n\n\n\n\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove empty classes.\n */\nvar createClass = function createClass(classes) {\n return classes.filter(function (cls) {\n return cls;\n }).join(\" \");\n};\n\nvar initNode = function initNode(classes, options, style) {\n this.classes = classes || [];\n this.attributes = {};\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = style || {};\n\n if (options) {\n if (options.style.isTight()) {\n this.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n this.style.color = color;\n }\n }\n};\n/**\n * Convert into an HTML node\n */\n\n\nvar _toNode = function toNode(tagName) {\n var node = document.createElement(tagName); // Apply the class\n\n node.className = createClass(this.classes); // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe Flow doesn't seem to understand span.style's type.\n node.style[style] = this.style[style];\n }\n } // Apply attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n } // Append the children, also as HTML nodes\n\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n};\n/**\n * Convert into an HTML markup string\n */\n\n\nvar _toMarkup = function toMarkup(tagName) {\n var markup = \"<\" + tagName; // Add the class\n\n if (this.classes.length) {\n markup += \" class=\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n var styles = \"\"; // Add the styles, after hyphenation\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n } // Add the attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \">\"; // Add the markup of the children, also as markup\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + tagName + \">\";\n return markup;\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n// This type does not include all CSS properties. Additional properties should\n// be added as needed.\n\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n *\n * Represents two types with different uses: SvgSpan to wrap an SVG and DomSpan\n * otherwise. This typesafety is important when HTML builders access a span's\n * children.\n */\nvar Span = /*#__PURE__*/function () {\n function Span(classes, children, options, style) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options, style);\n this.children = children || [];\n }\n /**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not\n * all browsers support attributes the same, and having too many custom\n * attributes is probably bad.\n */\n\n\n var _proto = Span.prototype;\n\n _proto.setAttribute = function setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n };\n\n _proto.hasClass = function hasClass(className) {\n return utils.contains(this.classes, className);\n };\n\n _proto.toNode = function toNode() {\n return _toNode.call(this, \"span\");\n };\n\n _proto.toMarkup = function toMarkup() {\n return _toMarkup.call(this, \"span\");\n };\n\n return Span;\n}();\n/**\n * This node represents an anchor (<a>) element with a hyperlink. See `span`\n * for further details.\n */\n\nvar Anchor = /*#__PURE__*/function () {\n function Anchor(href, classes, children, options) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options);\n this.children = children || [];\n this.setAttribute('href', href);\n }\n\n var _proto2 = Anchor.prototype;\n\n _proto2.setAttribute = function setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n };\n\n _proto2.hasClass = function hasClass(className) {\n return utils.contains(this.classes, className);\n };\n\n _proto2.toNode = function toNode() {\n return _toNode.call(this, \"a\");\n };\n\n _proto2.toMarkup = function toMarkup() {\n return _toMarkup.call(this, \"a\");\n };\n\n return Anchor;\n}();\n/**\n * This node represents an image embed (<img>) element.\n */\n\nvar Img = /*#__PURE__*/function () {\n function Img(src, alt, style) {\n this.src = void 0;\n this.alt = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.alt = alt;\n this.src = src;\n this.classes = [\"mord\"];\n this.style = style;\n }\n\n var _proto3 = Img.prototype;\n\n _proto3.hasClass = function hasClass(className) {\n return utils.contains(this.classes, className);\n };\n\n _proto3.toNode = function toNode() {\n var node = document.createElement(\"img\");\n node.src = this.src;\n node.alt = this.alt;\n node.className = \"mord\"; // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe\n node.style[style] = this.style[style];\n }\n }\n\n return node;\n };\n\n _proto3.toMarkup = function toMarkup() {\n var markup = \"<img src='\" + this.src + \" 'alt='\" + this.alt + \"' \"; // Add the styles, after hyphenation\n\n var styles = \"\";\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n markup += \"'/>\";\n return markup;\n };\n\n return Img;\n}();\nvar iCombinations = {\n 'î': \"\\u0131\\u0302\",\n 'ï': \"\\u0131\\u0308\",\n 'Ã': \"\\u0131\\u0301\",\n // 'Ä«': '\\u0131\\u0304', // enable when we add Extended Latin\n 'ì': \"\\u0131\\u0300\"\n};\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\n\nvar SymbolNode = /*#__PURE__*/function () {\n function SymbolNode(text, height, depth, italic, skew, width, classes, style) {\n this.text = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.italic = void 0;\n this.skew = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.classes = void 0;\n this.style = void 0;\n this.text = text;\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.width = width || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0; // Mark text from non-Latin scripts with specific classes so that we\n // can specify which fonts to use. This allows us to render these\n // characters with a serif font in situations where the browser would\n // either default to a sans serif or render a placeholder character.\n // We use CSS class names like cjk_fallback, hangul_fallback and\n // brahmic_fallback. See ./unicodeScripts.js for the set of possible\n // script names\n\n var script = scriptFromCodepoint(this.text.charCodeAt(0));\n\n if (script) {\n this.classes.push(script + \"_fallback\");\n }\n\n if (/[îïÃì]/.test(this.text)) {\n // add Ä« when we add Extended Latin\n this.text = iCombinations[this.text];\n }\n }\n\n var _proto4 = SymbolNode.prototype;\n\n _proto4.hasClass = function hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\n ;\n\n _proto4.toNode = function toNode() {\n var node = document.createTextNode(this.text);\n var span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = this.italic + \"em\";\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\"); // $FlowFixMe Flow doesn't seem to understand span.style's type.\n\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n }\n /**\n * Creates markup for a symbol node.\n */\n ;\n\n _proto4.toMarkup = function toMarkup() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n var needsSpan = false;\n var markup = \"<span\";\n\n if (this.classes.length) {\n needsSpan = true;\n markup += \" class=\\\"\";\n markup += utils.escape(createClass(this.classes));\n markup += \"\\\"\";\n }\n\n var styles = \"\";\n\n if (this.italic > 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n var escaped = utils.escape(this.text);\n\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"</span>\";\n return markup;\n } else {\n return escaped;\n }\n };\n\n return SymbolNode;\n}();\n/**\n * SVG nodes are used to render stretchy wide elements.\n */\n\nvar SvgNode = /*#__PURE__*/function () {\n function SvgNode(children, attributes) {\n this.children = void 0;\n this.attributes = void 0;\n this.children = children || [];\n this.attributes = attributes || {};\n }\n\n var _proto5 = SvgNode.prototype;\n\n _proto5.toNode = function toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"svg\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n };\n\n _proto5.toMarkup = function toMarkup() {\n var markup = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\"; // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n }\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</svg>\";\n return markup;\n };\n\n return SvgNode;\n}();\nvar PathNode = /*#__PURE__*/function () {\n function PathNode(pathName, alternate) {\n this.pathName = void 0;\n this.alternate = void 0;\n this.pathName = pathName;\n this.alternate = alternate; // Used only for \\sqrt, \\phase, & tall delims\n }\n\n var _proto6 = PathNode.prototype;\n\n _proto6.toNode = function toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"path\");\n\n if (this.alternate) {\n node.setAttribute(\"d\", this.alternate);\n } else {\n node.setAttribute(\"d\", path[this.pathName]);\n }\n\n return node;\n };\n\n _proto6.toMarkup = function toMarkup() {\n if (this.alternate) {\n return \"<path d='\" + this.alternate + \"'/>\";\n } else {\n return \"<path d='\" + path[this.pathName] + \"'/>\";\n }\n };\n\n return PathNode;\n}();\nvar LineNode = /*#__PURE__*/function () {\n function LineNode(attributes) {\n this.attributes = void 0;\n this.attributes = attributes || {};\n }\n\n var _proto7 = LineNode.prototype;\n\n _proto7.toNode = function toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"line\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n return node;\n };\n\n _proto7.toMarkup = function toMarkup() {\n var markup = \"<line\";\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n }\n }\n\n markup += \"/>\";\n return markup;\n };\n\n return LineNode;\n}();\nfunction assertSymbolDomNode(group) {\n if (group instanceof SymbolNode) {\n return group;\n } else {\n throw new Error(\"Expected symbolNode but got \" + String(group) + \".\");\n }\n}\nfunction assertSpan(group) {\n if (group instanceof Span) {\n return group;\n } else {\n throw new Error(\"Expected span<HtmlDomNode> but got \" + String(group) + \".\");\n }\n}\n;// CONCATENATED MODULE: ./src/fontMetricsData.js\n// This file is GENERATED by buildMetrics.sh. DO NOT MODIFY.\n/* harmony default export */ var fontMetricsData = ({\n \"AMS-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68889, 0, 0, 0.72222],\n \"66\": [0, 0.68889, 0, 0, 0.66667],\n \"67\": [0, 0.68889, 0, 0, 0.72222],\n \"68\": [0, 0.68889, 0, 0, 0.72222],\n \"69\": [0, 0.68889, 0, 0, 0.66667],\n \"70\": [0, 0.68889, 0, 0, 0.61111],\n \"71\": [0, 0.68889, 0, 0, 0.77778],\n \"72\": [0, 0.68889, 0, 0, 0.77778],\n \"73\": [0, 0.68889, 0, 0, 0.38889],\n \"74\": [0.16667, 0.68889, 0, 0, 0.5],\n \"75\": [0, 0.68889, 0, 0, 0.77778],\n \"76\": [0, 0.68889, 0, 0, 0.66667],\n \"77\": [0, 0.68889, 0, 0, 0.94445],\n \"78\": [0, 0.68889, 0, 0, 0.72222],\n \"79\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"80\": [0, 0.68889, 0, 0, 0.61111],\n \"81\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"82\": [0, 0.68889, 0, 0, 0.72222],\n \"83\": [0, 0.68889, 0, 0, 0.55556],\n \"84\": [0, 0.68889, 0, 0, 0.66667],\n \"85\": [0, 0.68889, 0, 0, 0.72222],\n \"86\": [0, 0.68889, 0, 0, 0.72222],\n \"87\": [0, 0.68889, 0, 0, 1.0],\n \"88\": [0, 0.68889, 0, 0, 0.72222],\n \"89\": [0, 0.68889, 0, 0, 0.72222],\n \"90\": [0, 0.68889, 0, 0, 0.66667],\n \"107\": [0, 0.68889, 0, 0, 0.55556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"165\": [0, 0.675, 0.025, 0, 0.75],\n \"174\": [0.15559, 0.69224, 0, 0, 0.94666],\n \"240\": [0, 0.68889, 0, 0, 0.55556],\n \"295\": [0, 0.68889, 0, 0, 0.54028],\n \"710\": [0, 0.825, 0, 0, 2.33334],\n \"732\": [0, 0.9, 0, 0, 2.33334],\n \"770\": [0, 0.825, 0, 0, 2.33334],\n \"771\": [0, 0.9, 0, 0, 2.33334],\n \"989\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"1008\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"8245\": [0, 0.54986, 0, 0, 0.275],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8487\": [0, 0.68889, 0, 0, 0.72222],\n \"8498\": [0, 0.68889, 0, 0, 0.55556],\n \"8502\": [0, 0.68889, 0, 0, 0.66667],\n \"8503\": [0, 0.68889, 0, 0, 0.44445],\n \"8504\": [0, 0.68889, 0, 0, 0.66667],\n \"8513\": [0, 0.68889, 0, 0, 0.63889],\n \"8592\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8594\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8602\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8603\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8606\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8608\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8610\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8611\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8619\": [0, 0.54986, 0, 0, 1.0],\n \"8620\": [0, 0.54986, 0, 0, 1.0],\n \"8621\": [-0.13313, 0.37788, 0, 0, 1.38889],\n \"8622\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8624\": [0, 0.69224, 0, 0, 0.5],\n \"8625\": [0, 0.69224, 0, 0, 0.5],\n \"8630\": [0, 0.43056, 0, 0, 1.0],\n \"8631\": [0, 0.43056, 0, 0, 1.0],\n \"8634\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8635\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8638\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8639\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8642\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8643\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8644\": [0.1808, 0.675, 0, 0, 1.0],\n \"8646\": [0.1808, 0.675, 0, 0, 1.0],\n \"8647\": [0.1808, 0.675, 0, 0, 1.0],\n \"8648\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8649\": [0.1808, 0.675, 0, 0, 1.0],\n \"8650\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8651\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8652\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8653\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8654\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8655\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8666\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8667\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8669\": [-0.13313, 0.37788, 0, 0, 1.0],\n \"8672\": [-0.064, 0.437, 0, 0, 1.334],\n \"8674\": [-0.064, 0.437, 0, 0, 1.334],\n \"8705\": [0, 0.825, 0, 0, 0.5],\n \"8708\": [0, 0.68889, 0, 0, 0.55556],\n \"8709\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8717\": [0, 0.43056, 0, 0, 0.42917],\n \"8722\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8724\": [0.08198, 0.69224, 0, 0, 0.77778],\n \"8726\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8733\": [0, 0.69224, 0, 0, 0.77778],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8737\": [0, 0.69224, 0, 0, 0.72222],\n \"8738\": [0.03517, 0.52239, 0, 0, 0.72222],\n \"8739\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"8740\": [0.25142, 0.74111, 0, 0, 0.27778],\n \"8741\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"8742\": [0.25142, 0.74111, 0, 0, 0.5],\n \"8756\": [0, 0.69224, 0, 0, 0.66667],\n \"8757\": [0, 0.69224, 0, 0, 0.66667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8765\": [-0.13313, 0.37788, 0, 0, 0.77778],\n \"8769\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8770\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8774\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8778\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8782\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8783\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8785\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8786\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8787\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8790\": [0, 0.69224, 0, 0, 0.77778],\n \"8791\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8796\": [0.08198, 0.91667, 0, 0, 0.77778],\n \"8806\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8807\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8808\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8809\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8812\": [0.25583, 0.75583, 0, 0, 0.5],\n \"8814\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8815\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8816\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8817\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8818\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8819\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8822\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8823\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8828\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8829\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8830\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8831\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8832\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8833\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8840\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8841\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8842\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8843\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8847\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8848\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8858\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8859\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8861\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8862\": [0, 0.675, 0, 0, 0.77778],\n \"8863\": [0, 0.675, 0, 0, 0.77778],\n \"8864\": [0, 0.675, 0, 0, 0.77778],\n \"8865\": [0, 0.675, 0, 0, 0.77778],\n \"8872\": [0, 0.69224, 0, 0, 0.61111],\n \"8873\": [0, 0.69224, 0, 0, 0.72222],\n \"8874\": [0, 0.69224, 0, 0, 0.88889],\n \"8876\": [0, 0.68889, 0, 0, 0.61111],\n \"8877\": [0, 0.68889, 0, 0, 0.61111],\n \"8878\": [0, 0.68889, 0, 0, 0.72222],\n \"8879\": [0, 0.68889, 0, 0, 0.72222],\n \"8882\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8883\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8884\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8885\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8888\": [0, 0.54986, 0, 0, 1.11111],\n \"8890\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"8891\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8892\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8901\": [0, 0.54986, 0, 0, 0.27778],\n \"8903\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8905\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8906\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8907\": [0, 0.69224, 0, 0, 0.77778],\n \"8908\": [0, 0.69224, 0, 0, 0.77778],\n \"8909\": [-0.03598, 0.46402, 0, 0, 0.77778],\n \"8910\": [0, 0.54986, 0, 0, 0.76042],\n \"8911\": [0, 0.54986, 0, 0, 0.76042],\n \"8912\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8913\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8914\": [0, 0.54986, 0, 0, 0.66667],\n \"8915\": [0, 0.54986, 0, 0, 0.66667],\n \"8916\": [0, 0.69224, 0, 0, 0.66667],\n \"8918\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8919\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8920\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8921\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8922\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8923\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8926\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8927\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8928\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8929\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8934\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8935\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8936\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8937\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8938\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8939\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8940\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8941\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8994\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"8995\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"9416\": [0.15559, 0.69224, 0, 0, 0.90222],\n \"9484\": [0, 0.69224, 0, 0, 0.5],\n \"9488\": [0, 0.69224, 0, 0, 0.5],\n \"9492\": [0, 0.37788, 0, 0, 0.5],\n \"9496\": [0, 0.37788, 0, 0, 0.5],\n \"9585\": [0.19444, 0.68889, 0, 0, 0.88889],\n \"9586\": [0.19444, 0.74111, 0, 0, 0.88889],\n \"9632\": [0, 0.675, 0, 0, 0.77778],\n \"9633\": [0, 0.675, 0, 0, 0.77778],\n \"9650\": [0, 0.54986, 0, 0, 0.72222],\n \"9651\": [0, 0.54986, 0, 0, 0.72222],\n \"9654\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9660\": [0, 0.54986, 0, 0, 0.72222],\n \"9661\": [0, 0.54986, 0, 0, 0.72222],\n \"9664\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9674\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"9733\": [0.19444, 0.69224, 0, 0, 0.94445],\n \"10003\": [0, 0.69224, 0, 0, 0.83334],\n \"10016\": [0, 0.69224, 0, 0, 0.83334],\n \"10731\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"10846\": [0.19444, 0.75583, 0, 0, 0.61111],\n \"10877\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10878\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10885\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10886\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10887\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10888\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10889\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10890\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10891\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10892\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10901\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10902\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10933\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10934\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10935\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10936\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10937\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10938\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10949\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10950\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10955\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"10956\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"57350\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"57351\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"57352\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"57353\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"57356\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57357\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57358\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57359\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57360\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57361\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57366\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57367\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57368\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57369\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57370\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57371\": [0.13597, 0.63597, 0, 0, 0.77778]\n },\n \"Caligraphic-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68333, 0, 0.19445, 0.79847],\n \"66\": [0, 0.68333, 0.03041, 0.13889, 0.65681],\n \"67\": [0, 0.68333, 0.05834, 0.13889, 0.52653],\n \"68\": [0, 0.68333, 0.02778, 0.08334, 0.77139],\n \"69\": [0, 0.68333, 0.08944, 0.11111, 0.52778],\n \"70\": [0, 0.68333, 0.09931, 0.11111, 0.71875],\n \"71\": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],\n \"72\": [0, 0.68333, 0.00965, 0.11111, 0.84452],\n \"73\": [0, 0.68333, 0.07382, 0, 0.54452],\n \"74\": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],\n \"75\": [0, 0.68333, 0.01445, 0.05556, 0.76195],\n \"76\": [0, 0.68333, 0, 0.13889, 0.68972],\n \"77\": [0, 0.68333, 0, 0.13889, 1.2009],\n \"78\": [0, 0.68333, 0.14736, 0.08334, 0.82049],\n \"79\": [0, 0.68333, 0.02778, 0.11111, 0.79611],\n \"80\": [0, 0.68333, 0.08222, 0.08334, 0.69556],\n \"81\": [0.09722, 0.68333, 0, 0.11111, 0.81667],\n \"82\": [0, 0.68333, 0, 0.08334, 0.8475],\n \"83\": [0, 0.68333, 0.075, 0.13889, 0.60556],\n \"84\": [0, 0.68333, 0.25417, 0, 0.54464],\n \"85\": [0, 0.68333, 0.09931, 0.08334, 0.62583],\n \"86\": [0, 0.68333, 0.08222, 0, 0.61278],\n \"87\": [0, 0.68333, 0.08222, 0.08334, 0.98778],\n \"88\": [0, 0.68333, 0.14643, 0.13889, 0.7133],\n \"89\": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],\n \"90\": [0, 0.68333, 0.07944, 0.13889, 0.72473],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Fraktur-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69141, 0, 0, 0.29574],\n \"34\": [0, 0.69141, 0, 0, 0.21471],\n \"38\": [0, 0.69141, 0, 0, 0.73786],\n \"39\": [0, 0.69141, 0, 0, 0.21201],\n \"40\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"41\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"42\": [0, 0.62119, 0, 0, 0.27764],\n \"43\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"44\": [0, 0.10803, 0, 0, 0.27764],\n \"45\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"46\": [0, 0.10803, 0, 0, 0.27764],\n \"47\": [0.24982, 0.74947, 0, 0, 0.50181],\n \"48\": [0, 0.47534, 0, 0, 0.50181],\n \"49\": [0, 0.47534, 0, 0, 0.50181],\n \"50\": [0, 0.47534, 0, 0, 0.50181],\n \"51\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"52\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"53\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"54\": [0, 0.69141, 0, 0, 0.50181],\n \"55\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"56\": [0, 0.69141, 0, 0, 0.50181],\n \"57\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"58\": [0, 0.47534, 0, 0, 0.21606],\n \"59\": [0.12604, 0.47534, 0, 0, 0.21606],\n \"61\": [-0.13099, 0.36866, 0, 0, 0.75623],\n \"63\": [0, 0.69141, 0, 0, 0.36245],\n \"65\": [0, 0.69141, 0, 0, 0.7176],\n \"66\": [0, 0.69141, 0, 0, 0.88397],\n \"67\": [0, 0.69141, 0, 0, 0.61254],\n \"68\": [0, 0.69141, 0, 0, 0.83158],\n \"69\": [0, 0.69141, 0, 0, 0.66278],\n \"70\": [0.12604, 0.69141, 0, 0, 0.61119],\n \"71\": [0, 0.69141, 0, 0, 0.78539],\n \"72\": [0.06302, 0.69141, 0, 0, 0.7203],\n \"73\": [0, 0.69141, 0, 0, 0.55448],\n \"74\": [0.12604, 0.69141, 0, 0, 0.55231],\n \"75\": [0, 0.69141, 0, 0, 0.66845],\n \"76\": [0, 0.69141, 0, 0, 0.66602],\n \"77\": [0, 0.69141, 0, 0, 1.04953],\n \"78\": [0, 0.69141, 0, 0, 0.83212],\n \"79\": [0, 0.69141, 0, 0, 0.82699],\n \"80\": [0.18906, 0.69141, 0, 0, 0.82753],\n \"81\": [0.03781, 0.69141, 0, 0, 0.82699],\n \"82\": [0, 0.69141, 0, 0, 0.82807],\n \"83\": [0, 0.69141, 0, 0, 0.82861],\n \"84\": [0, 0.69141, 0, 0, 0.66899],\n \"85\": [0, 0.69141, 0, 0, 0.64576],\n \"86\": [0, 0.69141, 0, 0, 0.83131],\n \"87\": [0, 0.69141, 0, 0, 1.04602],\n \"88\": [0, 0.69141, 0, 0, 0.71922],\n \"89\": [0.18906, 0.69141, 0, 0, 0.83293],\n \"90\": [0.12604, 0.69141, 0, 0, 0.60201],\n \"91\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"93\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"94\": [0, 0.69141, 0, 0, 0.49965],\n \"97\": [0, 0.47534, 0, 0, 0.50046],\n \"98\": [0, 0.69141, 0, 0, 0.51315],\n \"99\": [0, 0.47534, 0, 0, 0.38946],\n \"100\": [0, 0.62119, 0, 0, 0.49857],\n \"101\": [0, 0.47534, 0, 0, 0.40053],\n \"102\": [0.18906, 0.69141, 0, 0, 0.32626],\n \"103\": [0.18906, 0.47534, 0, 0, 0.5037],\n \"104\": [0.18906, 0.69141, 0, 0, 0.52126],\n \"105\": [0, 0.69141, 0, 0, 0.27899],\n \"106\": [0, 0.69141, 0, 0, 0.28088],\n \"107\": [0, 0.69141, 0, 0, 0.38946],\n \"108\": [0, 0.69141, 0, 0, 0.27953],\n \"109\": [0, 0.47534, 0, 0, 0.76676],\n \"110\": [0, 0.47534, 0, 0, 0.52666],\n \"111\": [0, 0.47534, 0, 0, 0.48885],\n \"112\": [0.18906, 0.52396, 0, 0, 0.50046],\n \"113\": [0.18906, 0.47534, 0, 0, 0.48912],\n \"114\": [0, 0.47534, 0, 0, 0.38919],\n \"115\": [0, 0.47534, 0, 0, 0.44266],\n \"116\": [0, 0.62119, 0, 0, 0.33301],\n \"117\": [0, 0.47534, 0, 0, 0.5172],\n \"118\": [0, 0.52396, 0, 0, 0.5118],\n \"119\": [0, 0.52396, 0, 0, 0.77351],\n \"120\": [0.18906, 0.47534, 0, 0, 0.38865],\n \"121\": [0.18906, 0.47534, 0, 0, 0.49884],\n \"122\": [0.18906, 0.47534, 0, 0, 0.39054],\n \"160\": [0, 0, 0, 0, 0.25],\n \"8216\": [0, 0.69141, 0, 0, 0.21471],\n \"8217\": [0, 0.69141, 0, 0, 0.21471],\n \"58112\": [0, 0.62119, 0, 0, 0.49749],\n \"58113\": [0, 0.62119, 0, 0, 0.4983],\n \"58114\": [0.18906, 0.69141, 0, 0, 0.33328],\n \"58115\": [0.18906, 0.69141, 0, 0, 0.32923],\n \"58116\": [0.18906, 0.47534, 0, 0, 0.50343],\n \"58117\": [0, 0.69141, 0, 0, 0.33301],\n \"58118\": [0, 0.62119, 0, 0, 0.33409],\n \"58119\": [0, 0.47534, 0, 0, 0.50073]\n },\n \"Main-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.35],\n \"34\": [0, 0.69444, 0, 0, 0.60278],\n \"35\": [0.19444, 0.69444, 0, 0, 0.95833],\n \"36\": [0.05556, 0.75, 0, 0, 0.575],\n \"37\": [0.05556, 0.75, 0, 0, 0.95833],\n \"38\": [0, 0.69444, 0, 0, 0.89444],\n \"39\": [0, 0.69444, 0, 0, 0.31944],\n \"40\": [0.25, 0.75, 0, 0, 0.44722],\n \"41\": [0.25, 0.75, 0, 0, 0.44722],\n \"42\": [0, 0.75, 0, 0, 0.575],\n \"43\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"44\": [0.19444, 0.15556, 0, 0, 0.31944],\n \"45\": [0, 0.44444, 0, 0, 0.38333],\n \"46\": [0, 0.15556, 0, 0, 0.31944],\n \"47\": [0.25, 0.75, 0, 0, 0.575],\n \"48\": [0, 0.64444, 0, 0, 0.575],\n \"49\": [0, 0.64444, 0, 0, 0.575],\n \"50\": [0, 0.64444, 0, 0, 0.575],\n \"51\": [0, 0.64444, 0, 0, 0.575],\n \"52\": [0, 0.64444, 0, 0, 0.575],\n \"53\": [0, 0.64444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0, 0.64444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0, 0.64444, 0, 0, 0.575],\n \"58\": [0, 0.44444, 0, 0, 0.31944],\n \"59\": [0.19444, 0.44444, 0, 0, 0.31944],\n \"60\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"61\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"62\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"63\": [0, 0.69444, 0, 0, 0.54305],\n \"64\": [0, 0.69444, 0, 0, 0.89444],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0, 0, 0.81805],\n \"67\": [0, 0.68611, 0, 0, 0.83055],\n \"68\": [0, 0.68611, 0, 0, 0.88194],\n \"69\": [0, 0.68611, 0, 0, 0.75555],\n \"70\": [0, 0.68611, 0, 0, 0.72361],\n \"71\": [0, 0.68611, 0, 0, 0.90416],\n \"72\": [0, 0.68611, 0, 0, 0.9],\n \"73\": [0, 0.68611, 0, 0, 0.43611],\n \"74\": [0, 0.68611, 0, 0, 0.59444],\n \"75\": [0, 0.68611, 0, 0, 0.90138],\n \"76\": [0, 0.68611, 0, 0, 0.69166],\n \"77\": [0, 0.68611, 0, 0, 1.09166],\n \"78\": [0, 0.68611, 0, 0, 0.9],\n \"79\": [0, 0.68611, 0, 0, 0.86388],\n \"80\": [0, 0.68611, 0, 0, 0.78611],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86388],\n \"82\": [0, 0.68611, 0, 0, 0.8625],\n \"83\": [0, 0.68611, 0, 0, 0.63889],\n \"84\": [0, 0.68611, 0, 0, 0.8],\n \"85\": [0, 0.68611, 0, 0, 0.88472],\n \"86\": [0, 0.68611, 0.01597, 0, 0.86944],\n \"87\": [0, 0.68611, 0.01597, 0, 1.18888],\n \"88\": [0, 0.68611, 0, 0, 0.86944],\n \"89\": [0, 0.68611, 0.02875, 0, 0.86944],\n \"90\": [0, 0.68611, 0, 0, 0.70277],\n \"91\": [0.25, 0.75, 0, 0, 0.31944],\n \"92\": [0.25, 0.75, 0, 0, 0.575],\n \"93\": [0.25, 0.75, 0, 0, 0.31944],\n \"94\": [0, 0.69444, 0, 0, 0.575],\n \"95\": [0.31, 0.13444, 0.03194, 0, 0.575],\n \"97\": [0, 0.44444, 0, 0, 0.55902],\n \"98\": [0, 0.69444, 0, 0, 0.63889],\n \"99\": [0, 0.44444, 0, 0, 0.51111],\n \"100\": [0, 0.69444, 0, 0, 0.63889],\n \"101\": [0, 0.44444, 0, 0, 0.52708],\n \"102\": [0, 0.69444, 0.10903, 0, 0.35139],\n \"103\": [0.19444, 0.44444, 0.01597, 0, 0.575],\n \"104\": [0, 0.69444, 0, 0, 0.63889],\n \"105\": [0, 0.69444, 0, 0, 0.31944],\n \"106\": [0.19444, 0.69444, 0, 0, 0.35139],\n \"107\": [0, 0.69444, 0, 0, 0.60694],\n \"108\": [0, 0.69444, 0, 0, 0.31944],\n \"109\": [0, 0.44444, 0, 0, 0.95833],\n \"110\": [0, 0.44444, 0, 0, 0.63889],\n \"111\": [0, 0.44444, 0, 0, 0.575],\n \"112\": [0.19444, 0.44444, 0, 0, 0.63889],\n \"113\": [0.19444, 0.44444, 0, 0, 0.60694],\n \"114\": [0, 0.44444, 0, 0, 0.47361],\n \"115\": [0, 0.44444, 0, 0, 0.45361],\n \"116\": [0, 0.63492, 0, 0, 0.44722],\n \"117\": [0, 0.44444, 0, 0, 0.63889],\n \"118\": [0, 0.44444, 0.01597, 0, 0.60694],\n \"119\": [0, 0.44444, 0.01597, 0, 0.83055],\n \"120\": [0, 0.44444, 0, 0, 0.60694],\n \"121\": [0.19444, 0.44444, 0.01597, 0, 0.60694],\n \"122\": [0, 0.44444, 0, 0, 0.51111],\n \"123\": [0.25, 0.75, 0, 0, 0.575],\n \"124\": [0.25, 0.75, 0, 0, 0.31944],\n \"125\": [0.25, 0.75, 0, 0, 0.575],\n \"126\": [0.35, 0.34444, 0, 0, 0.575],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.86853],\n \"168\": [0, 0.69444, 0, 0, 0.575],\n \"172\": [0, 0.44444, 0, 0, 0.76666],\n \"176\": [0, 0.69444, 0, 0, 0.86944],\n \"177\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"184\": [0.17014, 0, 0, 0, 0.51111],\n \"198\": [0, 0.68611, 0, 0, 1.04166],\n \"215\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"216\": [0.04861, 0.73472, 0, 0, 0.89444],\n \"223\": [0, 0.69444, 0, 0, 0.59722],\n \"230\": [0, 0.44444, 0, 0, 0.83055],\n \"247\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"248\": [0.09722, 0.54167, 0, 0, 0.575],\n \"305\": [0, 0.44444, 0, 0, 0.31944],\n \"338\": [0, 0.68611, 0, 0, 1.16944],\n \"339\": [0, 0.44444, 0, 0, 0.89444],\n \"567\": [0.19444, 0.44444, 0, 0, 0.35139],\n \"710\": [0, 0.69444, 0, 0, 0.575],\n \"711\": [0, 0.63194, 0, 0, 0.575],\n \"713\": [0, 0.59611, 0, 0, 0.575],\n \"714\": [0, 0.69444, 0, 0, 0.575],\n \"715\": [0, 0.69444, 0, 0, 0.575],\n \"728\": [0, 0.69444, 0, 0, 0.575],\n \"729\": [0, 0.69444, 0, 0, 0.31944],\n \"730\": [0, 0.69444, 0, 0, 0.86944],\n \"732\": [0, 0.69444, 0, 0, 0.575],\n \"733\": [0, 0.69444, 0, 0, 0.575],\n \"915\": [0, 0.68611, 0, 0, 0.69166],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0, 0, 0.89444],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0, 0, 0.76666],\n \"928\": [0, 0.68611, 0, 0, 0.9],\n \"931\": [0, 0.68611, 0, 0, 0.83055],\n \"933\": [0, 0.68611, 0, 0, 0.89444],\n \"934\": [0, 0.68611, 0, 0, 0.83055],\n \"936\": [0, 0.68611, 0, 0, 0.89444],\n \"937\": [0, 0.68611, 0, 0, 0.83055],\n \"8211\": [0, 0.44444, 0.03194, 0, 0.575],\n \"8212\": [0, 0.44444, 0.03194, 0, 1.14999],\n \"8216\": [0, 0.69444, 0, 0, 0.31944],\n \"8217\": [0, 0.69444, 0, 0, 0.31944],\n \"8220\": [0, 0.69444, 0, 0, 0.60278],\n \"8221\": [0, 0.69444, 0, 0, 0.60278],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8242\": [0, 0.55556, 0, 0, 0.34444],\n \"8407\": [0, 0.72444, 0.15486, 0, 0.575],\n \"8463\": [0, 0.69444, 0, 0, 0.66759],\n \"8465\": [0, 0.69444, 0, 0, 0.83055],\n \"8467\": [0, 0.69444, 0, 0, 0.47361],\n \"8472\": [0.19444, 0.44444, 0, 0, 0.74027],\n \"8476\": [0, 0.69444, 0, 0, 0.83055],\n \"8501\": [0, 0.69444, 0, 0, 0.70277],\n \"8592\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8594\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8596\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8597\": [0.25, 0.75, 0, 0, 0.575],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8636\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8637\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8640\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8641\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8656\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8658\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8660\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8661\": [0.25, 0.75, 0, 0, 0.70277],\n \"8704\": [0, 0.69444, 0, 0, 0.63889],\n \"8706\": [0, 0.69444, 0.06389, 0, 0.62847],\n \"8707\": [0, 0.69444, 0, 0, 0.63889],\n \"8709\": [0.05556, 0.75, 0, 0, 0.575],\n \"8711\": [0, 0.68611, 0, 0, 0.95833],\n \"8712\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8715\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8722\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8723\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8725\": [0.25, 0.75, 0, 0, 0.575],\n \"8726\": [0.25, 0.75, 0, 0, 0.575],\n \"8727\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8728\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8729\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8730\": [0.18, 0.82, 0, 0, 0.95833],\n \"8733\": [0, 0.44444, 0, 0, 0.89444],\n \"8734\": [0, 0.44444, 0, 0, 1.14999],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.31944],\n \"8741\": [0.25, 0.75, 0, 0, 0.575],\n \"8743\": [0, 0.55556, 0, 0, 0.76666],\n \"8744\": [0, 0.55556, 0, 0, 0.76666],\n \"8745\": [0, 0.55556, 0, 0, 0.76666],\n \"8746\": [0, 0.55556, 0, 0, 0.76666],\n \"8747\": [0.19444, 0.69444, 0.12778, 0, 0.56875],\n \"8764\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.31944],\n \"8771\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8776\": [0.02444, 0.52444, 0, 0, 0.89444],\n \"8781\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8801\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8804\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8805\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8810\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8811\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8826\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8827\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8834\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8835\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8838\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8839\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8846\": [0, 0.55556, 0, 0, 0.76666],\n \"8849\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8850\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8851\": [0, 0.55556, 0, 0, 0.76666],\n \"8852\": [0, 0.55556, 0, 0, 0.76666],\n \"8853\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8854\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8855\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8856\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8857\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8866\": [0, 0.69444, 0, 0, 0.70277],\n \"8867\": [0, 0.69444, 0, 0, 0.70277],\n \"8868\": [0, 0.69444, 0, 0, 0.89444],\n \"8869\": [0, 0.69444, 0, 0, 0.89444],\n \"8900\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8901\": [-0.02639, 0.47361, 0, 0, 0.31944],\n \"8902\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8968\": [0.25, 0.75, 0, 0, 0.51111],\n \"8969\": [0.25, 0.75, 0, 0, 0.51111],\n \"8970\": [0.25, 0.75, 0, 0, 0.51111],\n \"8971\": [0.25, 0.75, 0, 0, 0.51111],\n \"8994\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"8995\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"9651\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9657\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9661\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9667\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9837\": [0, 0.75, 0, 0, 0.44722],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"10216\": [0.25, 0.75, 0, 0, 0.44722],\n \"10217\": [0.25, 0.75, 0, 0, 0.44722],\n \"10815\": [0, 0.68611, 0, 0, 0.9],\n \"10927\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"10928\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Main-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.11417, 0, 0.38611],\n \"34\": [0, 0.69444, 0.07939, 0, 0.62055],\n \"35\": [0.19444, 0.69444, 0.06833, 0, 0.94444],\n \"37\": [0.05556, 0.75, 0.12861, 0, 0.94444],\n \"38\": [0, 0.69444, 0.08528, 0, 0.88555],\n \"39\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"40\": [0.25, 0.75, 0.15806, 0, 0.47333],\n \"41\": [0.25, 0.75, 0.03306, 0, 0.47333],\n \"42\": [0, 0.75, 0.14333, 0, 0.59111],\n \"43\": [0.10333, 0.60333, 0.03306, 0, 0.88555],\n \"44\": [0.19444, 0.14722, 0, 0, 0.35555],\n \"45\": [0, 0.44444, 0.02611, 0, 0.41444],\n \"46\": [0, 0.14722, 0, 0, 0.35555],\n \"47\": [0.25, 0.75, 0.15806, 0, 0.59111],\n \"48\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"49\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"50\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"51\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"52\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"53\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"54\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"55\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"56\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"57\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"58\": [0, 0.44444, 0.06695, 0, 0.35555],\n \"59\": [0.19444, 0.44444, 0.06695, 0, 0.35555],\n \"61\": [-0.10889, 0.39111, 0.06833, 0, 0.88555],\n \"63\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"64\": [0, 0.69444, 0.09208, 0, 0.88555],\n \"65\": [0, 0.68611, 0, 0, 0.86555],\n \"66\": [0, 0.68611, 0.0992, 0, 0.81666],\n \"67\": [0, 0.68611, 0.14208, 0, 0.82666],\n \"68\": [0, 0.68611, 0.09062, 0, 0.87555],\n \"69\": [0, 0.68611, 0.11431, 0, 0.75666],\n \"70\": [0, 0.68611, 0.12903, 0, 0.72722],\n \"71\": [0, 0.68611, 0.07347, 0, 0.89527],\n \"72\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"73\": [0, 0.68611, 0.15681, 0, 0.47166],\n \"74\": [0, 0.68611, 0.145, 0, 0.61055],\n \"75\": [0, 0.68611, 0.14208, 0, 0.89499],\n \"76\": [0, 0.68611, 0, 0, 0.69777],\n \"77\": [0, 0.68611, 0.17208, 0, 1.07277],\n \"78\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"79\": [0, 0.68611, 0.09062, 0, 0.85499],\n \"80\": [0, 0.68611, 0.0992, 0, 0.78721],\n \"81\": [0.19444, 0.68611, 0.09062, 0, 0.85499],\n \"82\": [0, 0.68611, 0.02559, 0, 0.85944],\n \"83\": [0, 0.68611, 0.11264, 0, 0.64999],\n \"84\": [0, 0.68611, 0.12903, 0, 0.7961],\n \"85\": [0, 0.68611, 0.17208, 0, 0.88083],\n \"86\": [0, 0.68611, 0.18625, 0, 0.86555],\n \"87\": [0, 0.68611, 0.18625, 0, 1.15999],\n \"88\": [0, 0.68611, 0.15681, 0, 0.86555],\n \"89\": [0, 0.68611, 0.19803, 0, 0.86555],\n \"90\": [0, 0.68611, 0.14208, 0, 0.70888],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.35611],\n \"93\": [0.25, 0.75, 0.09972, 0, 0.35611],\n \"94\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"95\": [0.31, 0.13444, 0.09811, 0, 0.59111],\n \"97\": [0, 0.44444, 0.09426, 0, 0.59111],\n \"98\": [0, 0.69444, 0.07861, 0, 0.53222],\n \"99\": [0, 0.44444, 0.05222, 0, 0.53222],\n \"100\": [0, 0.69444, 0.10861, 0, 0.59111],\n \"101\": [0, 0.44444, 0.085, 0, 0.53222],\n \"102\": [0.19444, 0.69444, 0.21778, 0, 0.4],\n \"103\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"104\": [0, 0.69444, 0.09426, 0, 0.59111],\n \"105\": [0, 0.69326, 0.11387, 0, 0.35555],\n \"106\": [0.19444, 0.69326, 0.1672, 0, 0.35555],\n \"107\": [0, 0.69444, 0.11111, 0, 0.53222],\n \"108\": [0, 0.69444, 0.10861, 0, 0.29666],\n \"109\": [0, 0.44444, 0.09426, 0, 0.94444],\n \"110\": [0, 0.44444, 0.09426, 0, 0.64999],\n \"111\": [0, 0.44444, 0.07861, 0, 0.59111],\n \"112\": [0.19444, 0.44444, 0.07861, 0, 0.59111],\n \"113\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"114\": [0, 0.44444, 0.11111, 0, 0.50167],\n \"115\": [0, 0.44444, 0.08167, 0, 0.48694],\n \"116\": [0, 0.63492, 0.09639, 0, 0.385],\n \"117\": [0, 0.44444, 0.09426, 0, 0.62055],\n \"118\": [0, 0.44444, 0.11111, 0, 0.53222],\n \"119\": [0, 0.44444, 0.11111, 0, 0.76777],\n \"120\": [0, 0.44444, 0.12583, 0, 0.56055],\n \"121\": [0.19444, 0.44444, 0.105, 0, 0.56166],\n \"122\": [0, 0.44444, 0.13889, 0, 0.49055],\n \"126\": [0.35, 0.34444, 0.11472, 0, 0.59111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0.11473, 0, 0.59111],\n \"176\": [0, 0.69444, 0, 0, 0.94888],\n \"184\": [0.17014, 0, 0, 0, 0.53222],\n \"198\": [0, 0.68611, 0.11431, 0, 1.02277],\n \"216\": [0.04861, 0.73472, 0.09062, 0, 0.88555],\n \"223\": [0.19444, 0.69444, 0.09736, 0, 0.665],\n \"230\": [0, 0.44444, 0.085, 0, 0.82666],\n \"248\": [0.09722, 0.54167, 0.09458, 0, 0.59111],\n \"305\": [0, 0.44444, 0.09426, 0, 0.35555],\n \"338\": [0, 0.68611, 0.11431, 0, 1.14054],\n \"339\": [0, 0.44444, 0.085, 0, 0.82666],\n \"567\": [0.19444, 0.44444, 0.04611, 0, 0.385],\n \"710\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"711\": [0, 0.63194, 0.08271, 0, 0.59111],\n \"713\": [0, 0.59444, 0.10444, 0, 0.59111],\n \"714\": [0, 0.69444, 0.08528, 0, 0.59111],\n \"715\": [0, 0.69444, 0, 0, 0.59111],\n \"728\": [0, 0.69444, 0.10333, 0, 0.59111],\n \"729\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"730\": [0, 0.69444, 0, 0, 0.94888],\n \"732\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"733\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"915\": [0, 0.68611, 0.12903, 0, 0.69777],\n \"916\": [0, 0.68611, 0, 0, 0.94444],\n \"920\": [0, 0.68611, 0.09062, 0, 0.88555],\n \"923\": [0, 0.68611, 0, 0, 0.80666],\n \"926\": [0, 0.68611, 0.15092, 0, 0.76777],\n \"928\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"931\": [0, 0.68611, 0.11431, 0, 0.82666],\n \"933\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"934\": [0, 0.68611, 0.05632, 0, 0.82666],\n \"936\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"937\": [0, 0.68611, 0.0992, 0, 0.82666],\n \"8211\": [0, 0.44444, 0.09811, 0, 0.59111],\n \"8212\": [0, 0.44444, 0.09811, 0, 1.18221],\n \"8216\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8217\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8220\": [0, 0.69444, 0.16772, 0, 0.62055],\n \"8221\": [0, 0.69444, 0.07939, 0, 0.62055]\n },\n \"Main-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"34\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"35\": [0.19444, 0.69444, 0.06616, 0, 0.81777],\n \"37\": [0.05556, 0.75, 0.13639, 0, 0.81777],\n \"38\": [0, 0.69444, 0.09694, 0, 0.76666],\n \"39\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"40\": [0.25, 0.75, 0.16194, 0, 0.40889],\n \"41\": [0.25, 0.75, 0.03694, 0, 0.40889],\n \"42\": [0, 0.75, 0.14917, 0, 0.51111],\n \"43\": [0.05667, 0.56167, 0.03694, 0, 0.76666],\n \"44\": [0.19444, 0.10556, 0, 0, 0.30667],\n \"45\": [0, 0.43056, 0.02826, 0, 0.35778],\n \"46\": [0, 0.10556, 0, 0, 0.30667],\n \"47\": [0.25, 0.75, 0.16194, 0, 0.51111],\n \"48\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"49\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"50\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"51\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"52\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"53\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"54\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"55\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"56\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"57\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"58\": [0, 0.43056, 0.0582, 0, 0.30667],\n \"59\": [0.19444, 0.43056, 0.0582, 0, 0.30667],\n \"61\": [-0.13313, 0.36687, 0.06616, 0, 0.76666],\n \"63\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"64\": [0, 0.69444, 0.09597, 0, 0.76666],\n \"65\": [0, 0.68333, 0, 0, 0.74333],\n \"66\": [0, 0.68333, 0.10257, 0, 0.70389],\n \"67\": [0, 0.68333, 0.14528, 0, 0.71555],\n \"68\": [0, 0.68333, 0.09403, 0, 0.755],\n \"69\": [0, 0.68333, 0.12028, 0, 0.67833],\n \"70\": [0, 0.68333, 0.13305, 0, 0.65277],\n \"71\": [0, 0.68333, 0.08722, 0, 0.77361],\n \"72\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"73\": [0, 0.68333, 0.15806, 0, 0.38555],\n \"74\": [0, 0.68333, 0.14028, 0, 0.525],\n \"75\": [0, 0.68333, 0.14528, 0, 0.76888],\n \"76\": [0, 0.68333, 0, 0, 0.62722],\n \"77\": [0, 0.68333, 0.16389, 0, 0.89666],\n \"78\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"79\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"80\": [0, 0.68333, 0.10257, 0, 0.67833],\n \"81\": [0.19444, 0.68333, 0.09403, 0, 0.76666],\n \"82\": [0, 0.68333, 0.03868, 0, 0.72944],\n \"83\": [0, 0.68333, 0.11972, 0, 0.56222],\n \"84\": [0, 0.68333, 0.13305, 0, 0.71555],\n \"85\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"86\": [0, 0.68333, 0.18361, 0, 0.74333],\n \"87\": [0, 0.68333, 0.18361, 0, 0.99888],\n \"88\": [0, 0.68333, 0.15806, 0, 0.74333],\n \"89\": [0, 0.68333, 0.19383, 0, 0.74333],\n \"90\": [0, 0.68333, 0.14528, 0, 0.61333],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.30667],\n \"93\": [0.25, 0.75, 0.10528, 0, 0.30667],\n \"94\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"95\": [0.31, 0.12056, 0.09208, 0, 0.51111],\n \"97\": [0, 0.43056, 0.07671, 0, 0.51111],\n \"98\": [0, 0.69444, 0.06312, 0, 0.46],\n \"99\": [0, 0.43056, 0.05653, 0, 0.46],\n \"100\": [0, 0.69444, 0.10333, 0, 0.51111],\n \"101\": [0, 0.43056, 0.07514, 0, 0.46],\n \"102\": [0.19444, 0.69444, 0.21194, 0, 0.30667],\n \"103\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"104\": [0, 0.69444, 0.07671, 0, 0.51111],\n \"105\": [0, 0.65536, 0.1019, 0, 0.30667],\n \"106\": [0.19444, 0.65536, 0.14467, 0, 0.30667],\n \"107\": [0, 0.69444, 0.10764, 0, 0.46],\n \"108\": [0, 0.69444, 0.10333, 0, 0.25555],\n \"109\": [0, 0.43056, 0.07671, 0, 0.81777],\n \"110\": [0, 0.43056, 0.07671, 0, 0.56222],\n \"111\": [0, 0.43056, 0.06312, 0, 0.51111],\n \"112\": [0.19444, 0.43056, 0.06312, 0, 0.51111],\n \"113\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"114\": [0, 0.43056, 0.10764, 0, 0.42166],\n \"115\": [0, 0.43056, 0.08208, 0, 0.40889],\n \"116\": [0, 0.61508, 0.09486, 0, 0.33222],\n \"117\": [0, 0.43056, 0.07671, 0, 0.53666],\n \"118\": [0, 0.43056, 0.10764, 0, 0.46],\n \"119\": [0, 0.43056, 0.10764, 0, 0.66444],\n \"120\": [0, 0.43056, 0.12042, 0, 0.46389],\n \"121\": [0.19444, 0.43056, 0.08847, 0, 0.48555],\n \"122\": [0, 0.43056, 0.12292, 0, 0.40889],\n \"126\": [0.35, 0.31786, 0.11585, 0, 0.51111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.66786, 0.10474, 0, 0.51111],\n \"176\": [0, 0.69444, 0, 0, 0.83129],\n \"184\": [0.17014, 0, 0, 0, 0.46],\n \"198\": [0, 0.68333, 0.12028, 0, 0.88277],\n \"216\": [0.04861, 0.73194, 0.09403, 0, 0.76666],\n \"223\": [0.19444, 0.69444, 0.10514, 0, 0.53666],\n \"230\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"248\": [0.09722, 0.52778, 0.09194, 0, 0.51111],\n \"338\": [0, 0.68333, 0.12028, 0, 0.98499],\n \"339\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"710\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"711\": [0, 0.62847, 0.08295, 0, 0.51111],\n \"713\": [0, 0.56167, 0.10333, 0, 0.51111],\n \"714\": [0, 0.69444, 0.09694, 0, 0.51111],\n \"715\": [0, 0.69444, 0, 0, 0.51111],\n \"728\": [0, 0.69444, 0.10806, 0, 0.51111],\n \"729\": [0, 0.66786, 0.11752, 0, 0.30667],\n \"730\": [0, 0.69444, 0, 0, 0.83129],\n \"732\": [0, 0.66786, 0.11585, 0, 0.51111],\n \"733\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"915\": [0, 0.68333, 0.13305, 0, 0.62722],\n \"916\": [0, 0.68333, 0, 0, 0.81777],\n \"920\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"923\": [0, 0.68333, 0, 0, 0.69222],\n \"926\": [0, 0.68333, 0.15294, 0, 0.66444],\n \"928\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"931\": [0, 0.68333, 0.12028, 0, 0.71555],\n \"933\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"934\": [0, 0.68333, 0.05986, 0, 0.71555],\n \"936\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"937\": [0, 0.68333, 0.10257, 0, 0.71555],\n \"8211\": [0, 0.43056, 0.09208, 0, 0.51111],\n \"8212\": [0, 0.43056, 0.09208, 0, 1.02222],\n \"8216\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8217\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8220\": [0, 0.69444, 0.1685, 0, 0.51444],\n \"8221\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"8463\": [0, 0.68889, 0, 0, 0.54028]\n },\n \"Main-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.27778],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.77778],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.19444, 0.10556, 0, 0, 0.27778],\n \"45\": [0, 0.43056, 0, 0, 0.33333],\n \"46\": [0, 0.10556, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.64444, 0, 0, 0.5],\n \"49\": [0, 0.64444, 0, 0, 0.5],\n \"50\": [0, 0.64444, 0, 0, 0.5],\n \"51\": [0, 0.64444, 0, 0, 0.5],\n \"52\": [0, 0.64444, 0, 0, 0.5],\n \"53\": [0, 0.64444, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0, 0.64444, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0, 0.64444, 0, 0, 0.5],\n \"58\": [0, 0.43056, 0, 0, 0.27778],\n \"59\": [0.19444, 0.43056, 0, 0, 0.27778],\n \"60\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"61\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"62\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.77778],\n \"65\": [0, 0.68333, 0, 0, 0.75],\n \"66\": [0, 0.68333, 0, 0, 0.70834],\n \"67\": [0, 0.68333, 0, 0, 0.72222],\n \"68\": [0, 0.68333, 0, 0, 0.76389],\n \"69\": [0, 0.68333, 0, 0, 0.68056],\n \"70\": [0, 0.68333, 0, 0, 0.65278],\n \"71\": [0, 0.68333, 0, 0, 0.78472],\n \"72\": [0, 0.68333, 0, 0, 0.75],\n \"73\": [0, 0.68333, 0, 0, 0.36111],\n \"74\": [0, 0.68333, 0, 0, 0.51389],\n \"75\": [0, 0.68333, 0, 0, 0.77778],\n \"76\": [0, 0.68333, 0, 0, 0.625],\n \"77\": [0, 0.68333, 0, 0, 0.91667],\n \"78\": [0, 0.68333, 0, 0, 0.75],\n \"79\": [0, 0.68333, 0, 0, 0.77778],\n \"80\": [0, 0.68333, 0, 0, 0.68056],\n \"81\": [0.19444, 0.68333, 0, 0, 0.77778],\n \"82\": [0, 0.68333, 0, 0, 0.73611],\n \"83\": [0, 0.68333, 0, 0, 0.55556],\n \"84\": [0, 0.68333, 0, 0, 0.72222],\n \"85\": [0, 0.68333, 0, 0, 0.75],\n \"86\": [0, 0.68333, 0.01389, 0, 0.75],\n \"87\": [0, 0.68333, 0.01389, 0, 1.02778],\n \"88\": [0, 0.68333, 0, 0, 0.75],\n \"89\": [0, 0.68333, 0.025, 0, 0.75],\n \"90\": [0, 0.68333, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.27778],\n \"92\": [0.25, 0.75, 0, 0, 0.5],\n \"93\": [0.25, 0.75, 0, 0, 0.27778],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.31, 0.12056, 0.02778, 0, 0.5],\n \"97\": [0, 0.43056, 0, 0, 0.5],\n \"98\": [0, 0.69444, 0, 0, 0.55556],\n \"99\": [0, 0.43056, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.55556],\n \"101\": [0, 0.43056, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.07778, 0, 0.30556],\n \"103\": [0.19444, 0.43056, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.55556],\n \"105\": [0, 0.66786, 0, 0, 0.27778],\n \"106\": [0.19444, 0.66786, 0, 0, 0.30556],\n \"107\": [0, 0.69444, 0, 0, 0.52778],\n \"108\": [0, 0.69444, 0, 0, 0.27778],\n \"109\": [0, 0.43056, 0, 0, 0.83334],\n \"110\": [0, 0.43056, 0, 0, 0.55556],\n \"111\": [0, 0.43056, 0, 0, 0.5],\n \"112\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"113\": [0.19444, 0.43056, 0, 0, 0.52778],\n \"114\": [0, 0.43056, 0, 0, 0.39167],\n \"115\": [0, 0.43056, 0, 0, 0.39445],\n \"116\": [0, 0.61508, 0, 0, 0.38889],\n \"117\": [0, 0.43056, 0, 0, 0.55556],\n \"118\": [0, 0.43056, 0.01389, 0, 0.52778],\n \"119\": [0, 0.43056, 0.01389, 0, 0.72222],\n \"120\": [0, 0.43056, 0, 0, 0.52778],\n \"121\": [0.19444, 0.43056, 0.01389, 0, 0.52778],\n \"122\": [0, 0.43056, 0, 0, 0.44445],\n \"123\": [0.25, 0.75, 0, 0, 0.5],\n \"124\": [0.25, 0.75, 0, 0, 0.27778],\n \"125\": [0.25, 0.75, 0, 0, 0.5],\n \"126\": [0.35, 0.31786, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.76909],\n \"167\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"168\": [0, 0.66786, 0, 0, 0.5],\n \"172\": [0, 0.43056, 0, 0, 0.66667],\n \"176\": [0, 0.69444, 0, 0, 0.75],\n \"177\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"182\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"198\": [0, 0.68333, 0, 0, 0.90278],\n \"215\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"216\": [0.04861, 0.73194, 0, 0, 0.77778],\n \"223\": [0, 0.69444, 0, 0, 0.5],\n \"230\": [0, 0.43056, 0, 0, 0.72222],\n \"247\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"248\": [0.09722, 0.52778, 0, 0, 0.5],\n \"305\": [0, 0.43056, 0, 0, 0.27778],\n \"338\": [0, 0.68333, 0, 0, 1.01389],\n \"339\": [0, 0.43056, 0, 0, 0.77778],\n \"567\": [0.19444, 0.43056, 0, 0, 0.30556],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.62847, 0, 0, 0.5],\n \"713\": [0, 0.56778, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.66786, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.75],\n \"732\": [0, 0.66786, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.68333, 0, 0, 0.625],\n \"916\": [0, 0.68333, 0, 0, 0.83334],\n \"920\": [0, 0.68333, 0, 0, 0.77778],\n \"923\": [0, 0.68333, 0, 0, 0.69445],\n \"926\": [0, 0.68333, 0, 0, 0.66667],\n \"928\": [0, 0.68333, 0, 0, 0.75],\n \"931\": [0, 0.68333, 0, 0, 0.72222],\n \"933\": [0, 0.68333, 0, 0, 0.77778],\n \"934\": [0, 0.68333, 0, 0, 0.72222],\n \"936\": [0, 0.68333, 0, 0, 0.77778],\n \"937\": [0, 0.68333, 0, 0, 0.72222],\n \"8211\": [0, 0.43056, 0.02778, 0, 0.5],\n \"8212\": [0, 0.43056, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8230\": [0, 0.123, 0, 0, 1.172],\n \"8242\": [0, 0.55556, 0, 0, 0.275],\n \"8407\": [0, 0.71444, 0.15382, 0, 0.5],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8465\": [0, 0.69444, 0, 0, 0.72222],\n \"8467\": [0, 0.69444, 0, 0.11111, 0.41667],\n \"8472\": [0.19444, 0.43056, 0, 0.11111, 0.63646],\n \"8476\": [0, 0.69444, 0, 0, 0.72222],\n \"8501\": [0, 0.69444, 0, 0, 0.61111],\n \"8592\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8594\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8596\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8597\": [0.25, 0.75, 0, 0, 0.5],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8614\": [0.011, 0.511, 0, 0, 1.0],\n \"8617\": [0.011, 0.511, 0, 0, 1.126],\n \"8618\": [0.011, 0.511, 0, 0, 1.126],\n \"8636\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8637\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8640\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8641\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8652\": [0.011, 0.671, 0, 0, 1.0],\n \"8656\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8658\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8660\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8661\": [0.25, 0.75, 0, 0, 0.61111],\n \"8704\": [0, 0.69444, 0, 0, 0.55556],\n \"8706\": [0, 0.69444, 0.05556, 0.08334, 0.5309],\n \"8707\": [0, 0.69444, 0, 0, 0.55556],\n \"8709\": [0.05556, 0.75, 0, 0, 0.5],\n \"8711\": [0, 0.68333, 0, 0, 0.83334],\n \"8712\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8715\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8722\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8723\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8725\": [0.25, 0.75, 0, 0, 0.5],\n \"8726\": [0.25, 0.75, 0, 0, 0.5],\n \"8727\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8728\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8729\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8730\": [0.2, 0.8, 0, 0, 0.83334],\n \"8733\": [0, 0.43056, 0, 0, 0.77778],\n \"8734\": [0, 0.43056, 0, 0, 1.0],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.27778],\n \"8741\": [0.25, 0.75, 0, 0, 0.5],\n \"8743\": [0, 0.55556, 0, 0, 0.66667],\n \"8744\": [0, 0.55556, 0, 0, 0.66667],\n \"8745\": [0, 0.55556, 0, 0, 0.66667],\n \"8746\": [0, 0.55556, 0, 0, 0.66667],\n \"8747\": [0.19444, 0.69444, 0.11111, 0, 0.41667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.27778],\n \"8771\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8773\": [-0.022, 0.589, 0, 0, 1.0],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8781\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8784\": [-0.133, 0.673, 0, 0, 0.778],\n \"8801\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8804\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8805\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8810\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8811\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8826\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8827\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8834\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8835\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8838\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8839\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8846\": [0, 0.55556, 0, 0, 0.66667],\n \"8849\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8850\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8851\": [0, 0.55556, 0, 0, 0.66667],\n \"8852\": [0, 0.55556, 0, 0, 0.66667],\n \"8853\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8854\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8855\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8856\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8857\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8866\": [0, 0.69444, 0, 0, 0.61111],\n \"8867\": [0, 0.69444, 0, 0, 0.61111],\n \"8868\": [0, 0.69444, 0, 0, 0.77778],\n \"8869\": [0, 0.69444, 0, 0, 0.77778],\n \"8872\": [0.249, 0.75, 0, 0, 0.867],\n \"8900\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8901\": [-0.05555, 0.44445, 0, 0, 0.27778],\n \"8902\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8904\": [0.005, 0.505, 0, 0, 0.9],\n \"8942\": [0.03, 0.903, 0, 0, 0.278],\n \"8943\": [-0.19, 0.313, 0, 0, 1.172],\n \"8945\": [-0.1, 0.823, 0, 0, 1.282],\n \"8968\": [0.25, 0.75, 0, 0, 0.44445],\n \"8969\": [0.25, 0.75, 0, 0, 0.44445],\n \"8970\": [0.25, 0.75, 0, 0, 0.44445],\n \"8971\": [0.25, 0.75, 0, 0, 0.44445],\n \"8994\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"8995\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"9136\": [0.244, 0.744, 0, 0, 0.412],\n \"9137\": [0.244, 0.745, 0, 0, 0.412],\n \"9651\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9657\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9661\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9667\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.0],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9837\": [0, 0.75, 0, 0, 0.38889],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"10216\": [0.25, 0.75, 0, 0, 0.38889],\n \"10217\": [0.25, 0.75, 0, 0, 0.38889],\n \"10222\": [0.244, 0.744, 0, 0, 0.412],\n \"10223\": [0.244, 0.745, 0, 0, 0.412],\n \"10229\": [0.011, 0.511, 0, 0, 1.609],\n \"10230\": [0.011, 0.511, 0, 0, 1.638],\n \"10231\": [0.011, 0.511, 0, 0, 1.859],\n \"10232\": [0.024, 0.525, 0, 0, 1.609],\n \"10233\": [0.024, 0.525, 0, 0, 1.638],\n \"10234\": [0.024, 0.525, 0, 0, 1.858],\n \"10236\": [0.011, 0.511, 0, 0, 1.638],\n \"10815\": [0, 0.68333, 0, 0, 0.75],\n \"10927\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10928\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Math-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.44444, 0, 0, 0.575],\n \"49\": [0, 0.44444, 0, 0, 0.575],\n \"50\": [0, 0.44444, 0, 0, 0.575],\n \"51\": [0.19444, 0.44444, 0, 0, 0.575],\n \"52\": [0.19444, 0.44444, 0, 0, 0.575],\n \"53\": [0.19444, 0.44444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0.19444, 0.44444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0.19444, 0.44444, 0, 0, 0.575],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0.04835, 0, 0.8664],\n \"67\": [0, 0.68611, 0.06979, 0, 0.81694],\n \"68\": [0, 0.68611, 0.03194, 0, 0.93812],\n \"69\": [0, 0.68611, 0.05451, 0, 0.81007],\n \"70\": [0, 0.68611, 0.15972, 0, 0.68889],\n \"71\": [0, 0.68611, 0, 0, 0.88673],\n \"72\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"73\": [0, 0.68611, 0.07778, 0, 0.51111],\n \"74\": [0, 0.68611, 0.10069, 0, 0.63125],\n \"75\": [0, 0.68611, 0.06979, 0, 0.97118],\n \"76\": [0, 0.68611, 0, 0, 0.75555],\n \"77\": [0, 0.68611, 0.11424, 0, 1.14201],\n \"78\": [0, 0.68611, 0.11424, 0, 0.95034],\n \"79\": [0, 0.68611, 0.03194, 0, 0.83666],\n \"80\": [0, 0.68611, 0.15972, 0, 0.72309],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86861],\n \"82\": [0, 0.68611, 0.00421, 0, 0.87235],\n \"83\": [0, 0.68611, 0.05382, 0, 0.69271],\n \"84\": [0, 0.68611, 0.15972, 0, 0.63663],\n \"85\": [0, 0.68611, 0.11424, 0, 0.80027],\n \"86\": [0, 0.68611, 0.25555, 0, 0.67778],\n \"87\": [0, 0.68611, 0.15972, 0, 1.09305],\n \"88\": [0, 0.68611, 0.07778, 0, 0.94722],\n \"89\": [0, 0.68611, 0.25555, 0, 0.67458],\n \"90\": [0, 0.68611, 0.06979, 0, 0.77257],\n \"97\": [0, 0.44444, 0, 0, 0.63287],\n \"98\": [0, 0.69444, 0, 0, 0.52083],\n \"99\": [0, 0.44444, 0, 0, 0.51342],\n \"100\": [0, 0.69444, 0, 0, 0.60972],\n \"101\": [0, 0.44444, 0, 0, 0.55361],\n \"102\": [0.19444, 0.69444, 0.11042, 0, 0.56806],\n \"103\": [0.19444, 0.44444, 0.03704, 0, 0.5449],\n \"104\": [0, 0.69444, 0, 0, 0.66759],\n \"105\": [0, 0.69326, 0, 0, 0.4048],\n \"106\": [0.19444, 0.69326, 0.0622, 0, 0.47083],\n \"107\": [0, 0.69444, 0.01852, 0, 0.6037],\n \"108\": [0, 0.69444, 0.0088, 0, 0.34815],\n \"109\": [0, 0.44444, 0, 0, 1.0324],\n \"110\": [0, 0.44444, 0, 0, 0.71296],\n \"111\": [0, 0.44444, 0, 0, 0.58472],\n \"112\": [0.19444, 0.44444, 0, 0, 0.60092],\n \"113\": [0.19444, 0.44444, 0.03704, 0, 0.54213],\n \"114\": [0, 0.44444, 0.03194, 0, 0.5287],\n \"115\": [0, 0.44444, 0, 0, 0.53125],\n \"116\": [0, 0.63492, 0, 0, 0.41528],\n \"117\": [0, 0.44444, 0, 0, 0.68102],\n \"118\": [0, 0.44444, 0.03704, 0, 0.56666],\n \"119\": [0, 0.44444, 0.02778, 0, 0.83148],\n \"120\": [0, 0.44444, 0, 0, 0.65903],\n \"121\": [0.19444, 0.44444, 0.03704, 0, 0.59028],\n \"122\": [0, 0.44444, 0.04213, 0, 0.55509],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68611, 0.15972, 0, 0.65694],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0.03194, 0, 0.86722],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0.07458, 0, 0.84125],\n \"928\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"931\": [0, 0.68611, 0.05451, 0, 0.88507],\n \"933\": [0, 0.68611, 0.15972, 0, 0.67083],\n \"934\": [0, 0.68611, 0, 0, 0.76666],\n \"936\": [0, 0.68611, 0.11653, 0, 0.71402],\n \"937\": [0, 0.68611, 0.04835, 0, 0.8789],\n \"945\": [0, 0.44444, 0, 0, 0.76064],\n \"946\": [0.19444, 0.69444, 0.03403, 0, 0.65972],\n \"947\": [0.19444, 0.44444, 0.06389, 0, 0.59003],\n \"948\": [0, 0.69444, 0.03819, 0, 0.52222],\n \"949\": [0, 0.44444, 0, 0, 0.52882],\n \"950\": [0.19444, 0.69444, 0.06215, 0, 0.50833],\n \"951\": [0.19444, 0.44444, 0.03704, 0, 0.6],\n \"952\": [0, 0.69444, 0.03194, 0, 0.5618],\n \"953\": [0, 0.44444, 0, 0, 0.41204],\n \"954\": [0, 0.44444, 0, 0, 0.66759],\n \"955\": [0, 0.69444, 0, 0, 0.67083],\n \"956\": [0.19444, 0.44444, 0, 0, 0.70787],\n \"957\": [0, 0.44444, 0.06898, 0, 0.57685],\n \"958\": [0.19444, 0.69444, 0.03021, 0, 0.50833],\n \"959\": [0, 0.44444, 0, 0, 0.58472],\n \"960\": [0, 0.44444, 0.03704, 0, 0.68241],\n \"961\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"962\": [0.09722, 0.44444, 0.07917, 0, 0.42361],\n \"963\": [0, 0.44444, 0.03704, 0, 0.68588],\n \"964\": [0, 0.44444, 0.13472, 0, 0.52083],\n \"965\": [0, 0.44444, 0.03704, 0, 0.63055],\n \"966\": [0.19444, 0.44444, 0, 0, 0.74722],\n \"967\": [0.19444, 0.44444, 0, 0, 0.71805],\n \"968\": [0.19444, 0.69444, 0.03704, 0, 0.75833],\n \"969\": [0, 0.44444, 0.03704, 0, 0.71782],\n \"977\": [0, 0.69444, 0, 0, 0.69155],\n \"981\": [0.19444, 0.69444, 0, 0, 0.7125],\n \"982\": [0, 0.44444, 0.03194, 0, 0.975],\n \"1009\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"1013\": [0, 0.44444, 0, 0, 0.48333],\n \"57649\": [0, 0.44444, 0, 0, 0.39352],\n \"57911\": [0.19444, 0.44444, 0, 0, 0.43889]\n },\n \"Math-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.43056, 0, 0, 0.5],\n \"49\": [0, 0.43056, 0, 0, 0.5],\n \"50\": [0, 0.43056, 0, 0, 0.5],\n \"51\": [0.19444, 0.43056, 0, 0, 0.5],\n \"52\": [0.19444, 0.43056, 0, 0, 0.5],\n \"53\": [0.19444, 0.43056, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0.19444, 0.43056, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0.19444, 0.43056, 0, 0, 0.5],\n \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n \"97\": [0, 0.43056, 0, 0, 0.52859],\n \"98\": [0, 0.69444, 0, 0, 0.42917],\n \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n \"104\": [0, 0.69444, 0, 0, 0.57616],\n \"105\": [0, 0.65952, 0, 0, 0.34451],\n \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n \"109\": [0, 0.43056, 0, 0, 0.87801],\n \"110\": [0, 0.43056, 0, 0, 0.60023],\n \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n \"954\": [0, 0.43056, 0, 0, 0.57616],\n \"955\": [0, 0.69444, 0, 0, 0.58334],\n \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"1013\": [0, 0.43056, 0, 0.05556, 0.4059],\n \"57649\": [0, 0.43056, 0, 0.02778, 0.32246],\n \"57911\": [0.19444, 0.43056, 0, 0.08334, 0.38403]\n },\n \"SansSerif-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.36667],\n \"34\": [0, 0.69444, 0, 0, 0.55834],\n \"35\": [0.19444, 0.69444, 0, 0, 0.91667],\n \"36\": [0.05556, 0.75, 0, 0, 0.55],\n \"37\": [0.05556, 0.75, 0, 0, 1.02912],\n \"38\": [0, 0.69444, 0, 0, 0.83056],\n \"39\": [0, 0.69444, 0, 0, 0.30556],\n \"40\": [0.25, 0.75, 0, 0, 0.42778],\n \"41\": [0.25, 0.75, 0, 0, 0.42778],\n \"42\": [0, 0.75, 0, 0, 0.55],\n \"43\": [0.11667, 0.61667, 0, 0, 0.85556],\n \"44\": [0.10556, 0.13056, 0, 0, 0.30556],\n \"45\": [0, 0.45833, 0, 0, 0.36667],\n \"46\": [0, 0.13056, 0, 0, 0.30556],\n \"47\": [0.25, 0.75, 0, 0, 0.55],\n \"48\": [0, 0.69444, 0, 0, 0.55],\n \"49\": [0, 0.69444, 0, 0, 0.55],\n \"50\": [0, 0.69444, 0, 0, 0.55],\n \"51\": [0, 0.69444, 0, 0, 0.55],\n \"52\": [0, 0.69444, 0, 0, 0.55],\n \"53\": [0, 0.69444, 0, 0, 0.55],\n \"54\": [0, 0.69444, 0, 0, 0.55],\n \"55\": [0, 0.69444, 0, 0, 0.55],\n \"56\": [0, 0.69444, 0, 0, 0.55],\n \"57\": [0, 0.69444, 0, 0, 0.55],\n \"58\": [0, 0.45833, 0, 0, 0.30556],\n \"59\": [0.10556, 0.45833, 0, 0, 0.30556],\n \"61\": [-0.09375, 0.40625, 0, 0, 0.85556],\n \"63\": [0, 0.69444, 0, 0, 0.51945],\n \"64\": [0, 0.69444, 0, 0, 0.73334],\n \"65\": [0, 0.69444, 0, 0, 0.73334],\n \"66\": [0, 0.69444, 0, 0, 0.73334],\n \"67\": [0, 0.69444, 0, 0, 0.70278],\n \"68\": [0, 0.69444, 0, 0, 0.79445],\n \"69\": [0, 0.69444, 0, 0, 0.64167],\n \"70\": [0, 0.69444, 0, 0, 0.61111],\n \"71\": [0, 0.69444, 0, 0, 0.73334],\n \"72\": [0, 0.69444, 0, 0, 0.79445],\n \"73\": [0, 0.69444, 0, 0, 0.33056],\n \"74\": [0, 0.69444, 0, 0, 0.51945],\n \"75\": [0, 0.69444, 0, 0, 0.76389],\n \"76\": [0, 0.69444, 0, 0, 0.58056],\n \"77\": [0, 0.69444, 0, 0, 0.97778],\n \"78\": [0, 0.69444, 0, 0, 0.79445],\n \"79\": [0, 0.69444, 0, 0, 0.79445],\n \"80\": [0, 0.69444, 0, 0, 0.70278],\n \"81\": [0.10556, 0.69444, 0, 0, 0.79445],\n \"82\": [0, 0.69444, 0, 0, 0.70278],\n \"83\": [0, 0.69444, 0, 0, 0.61111],\n \"84\": [0, 0.69444, 0, 0, 0.73334],\n \"85\": [0, 0.69444, 0, 0, 0.76389],\n \"86\": [0, 0.69444, 0.01528, 0, 0.73334],\n \"87\": [0, 0.69444, 0.01528, 0, 1.03889],\n \"88\": [0, 0.69444, 0, 0, 0.73334],\n \"89\": [0, 0.69444, 0.0275, 0, 0.73334],\n \"90\": [0, 0.69444, 0, 0, 0.67223],\n \"91\": [0.25, 0.75, 0, 0, 0.34306],\n \"93\": [0.25, 0.75, 0, 0, 0.34306],\n \"94\": [0, 0.69444, 0, 0, 0.55],\n \"95\": [0.35, 0.10833, 0.03056, 0, 0.55],\n \"97\": [0, 0.45833, 0, 0, 0.525],\n \"98\": [0, 0.69444, 0, 0, 0.56111],\n \"99\": [0, 0.45833, 0, 0, 0.48889],\n \"100\": [0, 0.69444, 0, 0, 0.56111],\n \"101\": [0, 0.45833, 0, 0, 0.51111],\n \"102\": [0, 0.69444, 0.07639, 0, 0.33611],\n \"103\": [0.19444, 0.45833, 0.01528, 0, 0.55],\n \"104\": [0, 0.69444, 0, 0, 0.56111],\n \"105\": [0, 0.69444, 0, 0, 0.25556],\n \"106\": [0.19444, 0.69444, 0, 0, 0.28611],\n \"107\": [0, 0.69444, 0, 0, 0.53056],\n \"108\": [0, 0.69444, 0, 0, 0.25556],\n \"109\": [0, 0.45833, 0, 0, 0.86667],\n \"110\": [0, 0.45833, 0, 0, 0.56111],\n \"111\": [0, 0.45833, 0, 0, 0.55],\n \"112\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"113\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"114\": [0, 0.45833, 0.01528, 0, 0.37222],\n \"115\": [0, 0.45833, 0, 0, 0.42167],\n \"116\": [0, 0.58929, 0, 0, 0.40417],\n \"117\": [0, 0.45833, 0, 0, 0.56111],\n \"118\": [0, 0.45833, 0.01528, 0, 0.5],\n \"119\": [0, 0.45833, 0.01528, 0, 0.74445],\n \"120\": [0, 0.45833, 0, 0, 0.5],\n \"121\": [0.19444, 0.45833, 0.01528, 0, 0.5],\n \"122\": [0, 0.45833, 0, 0, 0.47639],\n \"126\": [0.35, 0.34444, 0, 0, 0.55],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0, 0, 0.55],\n \"176\": [0, 0.69444, 0, 0, 0.73334],\n \"180\": [0, 0.69444, 0, 0, 0.55],\n \"184\": [0.17014, 0, 0, 0, 0.48889],\n \"305\": [0, 0.45833, 0, 0, 0.25556],\n \"567\": [0.19444, 0.45833, 0, 0, 0.28611],\n \"710\": [0, 0.69444, 0, 0, 0.55],\n \"711\": [0, 0.63542, 0, 0, 0.55],\n \"713\": [0, 0.63778, 0, 0, 0.55],\n \"728\": [0, 0.69444, 0, 0, 0.55],\n \"729\": [0, 0.69444, 0, 0, 0.30556],\n \"730\": [0, 0.69444, 0, 0, 0.73334],\n \"732\": [0, 0.69444, 0, 0, 0.55],\n \"733\": [0, 0.69444, 0, 0, 0.55],\n \"915\": [0, 0.69444, 0, 0, 0.58056],\n \"916\": [0, 0.69444, 0, 0, 0.91667],\n \"920\": [0, 0.69444, 0, 0, 0.85556],\n \"923\": [0, 0.69444, 0, 0, 0.67223],\n \"926\": [0, 0.69444, 0, 0, 0.73334],\n \"928\": [0, 0.69444, 0, 0, 0.79445],\n \"931\": [0, 0.69444, 0, 0, 0.79445],\n \"933\": [0, 0.69444, 0, 0, 0.85556],\n \"934\": [0, 0.69444, 0, 0, 0.79445],\n \"936\": [0, 0.69444, 0, 0, 0.85556],\n \"937\": [0, 0.69444, 0, 0, 0.79445],\n \"8211\": [0, 0.45833, 0.03056, 0, 0.55],\n \"8212\": [0, 0.45833, 0.03056, 0, 1.10001],\n \"8216\": [0, 0.69444, 0, 0, 0.30556],\n \"8217\": [0, 0.69444, 0, 0, 0.30556],\n \"8220\": [0, 0.69444, 0, 0, 0.55834],\n \"8221\": [0, 0.69444, 0, 0, 0.55834]\n },\n \"SansSerif-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.05733, 0, 0.31945],\n \"34\": [0, 0.69444, 0.00316, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0.05087, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0.11156, 0, 0.5],\n \"37\": [0.05556, 0.75, 0.03126, 0, 0.83334],\n \"38\": [0, 0.69444, 0.03058, 0, 0.75834],\n \"39\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"40\": [0.25, 0.75, 0.13164, 0, 0.38889],\n \"41\": [0.25, 0.75, 0.02536, 0, 0.38889],\n \"42\": [0, 0.75, 0.11775, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0.02536, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0.01946, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0.13164, 0, 0.5],\n \"48\": [0, 0.65556, 0.11156, 0, 0.5],\n \"49\": [0, 0.65556, 0.11156, 0, 0.5],\n \"50\": [0, 0.65556, 0.11156, 0, 0.5],\n \"51\": [0, 0.65556, 0.11156, 0, 0.5],\n \"52\": [0, 0.65556, 0.11156, 0, 0.5],\n \"53\": [0, 0.65556, 0.11156, 0, 0.5],\n \"54\": [0, 0.65556, 0.11156, 0, 0.5],\n \"55\": [0, 0.65556, 0.11156, 0, 0.5],\n \"56\": [0, 0.65556, 0.11156, 0, 0.5],\n \"57\": [0, 0.65556, 0.11156, 0, 0.5],\n \"58\": [0, 0.44444, 0.02502, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0.02502, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0.05087, 0, 0.77778],\n \"63\": [0, 0.69444, 0.11809, 0, 0.47222],\n \"64\": [0, 0.69444, 0.07555, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0.08293, 0, 0.66667],\n \"67\": [0, 0.69444, 0.11983, 0, 0.63889],\n \"68\": [0, 0.69444, 0.07555, 0, 0.72223],\n \"69\": [0, 0.69444, 0.11983, 0, 0.59722],\n \"70\": [0, 0.69444, 0.13372, 0, 0.56945],\n \"71\": [0, 0.69444, 0.11983, 0, 0.66667],\n \"72\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"73\": [0, 0.69444, 0.13372, 0, 0.27778],\n \"74\": [0, 0.69444, 0.08094, 0, 0.47222],\n \"75\": [0, 0.69444, 0.11983, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0.08094, 0, 0.875],\n \"78\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"79\": [0, 0.69444, 0.07555, 0, 0.73611],\n \"80\": [0, 0.69444, 0.08293, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0.07555, 0, 0.73611],\n \"82\": [0, 0.69444, 0.08293, 0, 0.64584],\n \"83\": [0, 0.69444, 0.09205, 0, 0.55556],\n \"84\": [0, 0.69444, 0.13372, 0, 0.68056],\n \"85\": [0, 0.69444, 0.08094, 0, 0.6875],\n \"86\": [0, 0.69444, 0.1615, 0, 0.66667],\n \"87\": [0, 0.69444, 0.1615, 0, 0.94445],\n \"88\": [0, 0.69444, 0.13372, 0, 0.66667],\n \"89\": [0, 0.69444, 0.17261, 0, 0.66667],\n \"90\": [0, 0.69444, 0.11983, 0, 0.61111],\n \"91\": [0.25, 0.75, 0.15942, 0, 0.28889],\n \"93\": [0.25, 0.75, 0.08719, 0, 0.28889],\n \"94\": [0, 0.69444, 0.0799, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.08616, 0, 0.5],\n \"97\": [0, 0.44444, 0.00981, 0, 0.48056],\n \"98\": [0, 0.69444, 0.03057, 0, 0.51667],\n \"99\": [0, 0.44444, 0.08336, 0, 0.44445],\n \"100\": [0, 0.69444, 0.09483, 0, 0.51667],\n \"101\": [0, 0.44444, 0.06778, 0, 0.44445],\n \"102\": [0, 0.69444, 0.21705, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.10836, 0, 0.5],\n \"104\": [0, 0.69444, 0.01778, 0, 0.51667],\n \"105\": [0, 0.67937, 0.09718, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0.09162, 0, 0.26667],\n \"107\": [0, 0.69444, 0.08336, 0, 0.48889],\n \"108\": [0, 0.69444, 0.09483, 0, 0.23889],\n \"109\": [0, 0.44444, 0.01778, 0, 0.79445],\n \"110\": [0, 0.44444, 0.01778, 0, 0.51667],\n \"111\": [0, 0.44444, 0.06613, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0.0389, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0.04169, 0, 0.51667],\n \"114\": [0, 0.44444, 0.10836, 0, 0.34167],\n \"115\": [0, 0.44444, 0.0778, 0, 0.38333],\n \"116\": [0, 0.57143, 0.07225, 0, 0.36111],\n \"117\": [0, 0.44444, 0.04169, 0, 0.51667],\n \"118\": [0, 0.44444, 0.10836, 0, 0.46111],\n \"119\": [0, 0.44444, 0.10836, 0, 0.68334],\n \"120\": [0, 0.44444, 0.09169, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.10836, 0, 0.46111],\n \"122\": [0, 0.44444, 0.08752, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0.08826, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0.06385, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.73752],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0.04169, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0.04169, 0, 0.26667],\n \"710\": [0, 0.69444, 0.0799, 0, 0.5],\n \"711\": [0, 0.63194, 0.08432, 0, 0.5],\n \"713\": [0, 0.60889, 0.08776, 0, 0.5],\n \"714\": [0, 0.69444, 0.09205, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0.09483, 0, 0.5],\n \"729\": [0, 0.67937, 0.07774, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.73752],\n \"732\": [0, 0.67659, 0.08826, 0, 0.5],\n \"733\": [0, 0.69444, 0.09205, 0, 0.5],\n \"915\": [0, 0.69444, 0.13372, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0.07555, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0.12816, 0, 0.66667],\n \"928\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"931\": [0, 0.69444, 0.11983, 0, 0.72222],\n \"933\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"934\": [0, 0.69444, 0.04603, 0, 0.72222],\n \"936\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"937\": [0, 0.69444, 0.08293, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.08616, 0, 0.5],\n \"8212\": [0, 0.44444, 0.08616, 0, 1.0],\n \"8216\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8217\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8220\": [0, 0.69444, 0.14205, 0, 0.5],\n \"8221\": [0, 0.69444, 0.00316, 0, 0.5]\n },\n \"SansSerif-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.31945],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.75834],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.65556, 0, 0, 0.5],\n \"49\": [0, 0.65556, 0, 0, 0.5],\n \"50\": [0, 0.65556, 0, 0, 0.5],\n \"51\": [0, 0.65556, 0, 0, 0.5],\n \"52\": [0, 0.65556, 0, 0, 0.5],\n \"53\": [0, 0.65556, 0, 0, 0.5],\n \"54\": [0, 0.65556, 0, 0, 0.5],\n \"55\": [0, 0.65556, 0, 0, 0.5],\n \"56\": [0, 0.65556, 0, 0, 0.5],\n \"57\": [0, 0.65556, 0, 0, 0.5],\n \"58\": [0, 0.44444, 0, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0, 0, 0.66667],\n \"67\": [0, 0.69444, 0, 0, 0.63889],\n \"68\": [0, 0.69444, 0, 0, 0.72223],\n \"69\": [0, 0.69444, 0, 0, 0.59722],\n \"70\": [0, 0.69444, 0, 0, 0.56945],\n \"71\": [0, 0.69444, 0, 0, 0.66667],\n \"72\": [0, 0.69444, 0, 0, 0.70834],\n \"73\": [0, 0.69444, 0, 0, 0.27778],\n \"74\": [0, 0.69444, 0, 0, 0.47222],\n \"75\": [0, 0.69444, 0, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0, 0, 0.875],\n \"78\": [0, 0.69444, 0, 0, 0.70834],\n \"79\": [0, 0.69444, 0, 0, 0.73611],\n \"80\": [0, 0.69444, 0, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0, 0, 0.73611],\n \"82\": [0, 0.69444, 0, 0, 0.64584],\n \"83\": [0, 0.69444, 0, 0, 0.55556],\n \"84\": [0, 0.69444, 0, 0, 0.68056],\n \"85\": [0, 0.69444, 0, 0, 0.6875],\n \"86\": [0, 0.69444, 0.01389, 0, 0.66667],\n \"87\": [0, 0.69444, 0.01389, 0, 0.94445],\n \"88\": [0, 0.69444, 0, 0, 0.66667],\n \"89\": [0, 0.69444, 0.025, 0, 0.66667],\n \"90\": [0, 0.69444, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.28889],\n \"93\": [0.25, 0.75, 0, 0, 0.28889],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.02778, 0, 0.5],\n \"97\": [0, 0.44444, 0, 0, 0.48056],\n \"98\": [0, 0.69444, 0, 0, 0.51667],\n \"99\": [0, 0.44444, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.51667],\n \"101\": [0, 0.44444, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.06944, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.51667],\n \"105\": [0, 0.67937, 0, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0, 0, 0.26667],\n \"107\": [0, 0.69444, 0, 0, 0.48889],\n \"108\": [0, 0.69444, 0, 0, 0.23889],\n \"109\": [0, 0.44444, 0, 0, 0.79445],\n \"110\": [0, 0.44444, 0, 0, 0.51667],\n \"111\": [0, 0.44444, 0, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"114\": [0, 0.44444, 0.01389, 0, 0.34167],\n \"115\": [0, 0.44444, 0, 0, 0.38333],\n \"116\": [0, 0.57143, 0, 0, 0.36111],\n \"117\": [0, 0.44444, 0, 0, 0.51667],\n \"118\": [0, 0.44444, 0.01389, 0, 0.46111],\n \"119\": [0, 0.44444, 0.01389, 0, 0.68334],\n \"120\": [0, 0.44444, 0, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.01389, 0, 0.46111],\n \"122\": [0, 0.44444, 0, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.66667],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0, 0, 0.26667],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.63194, 0, 0, 0.5],\n \"713\": [0, 0.60889, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.67937, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.66667],\n \"732\": [0, 0.67659, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.69444, 0, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0, 0, 0.66667],\n \"928\": [0, 0.69444, 0, 0, 0.70834],\n \"931\": [0, 0.69444, 0, 0, 0.72222],\n \"933\": [0, 0.69444, 0, 0, 0.77778],\n \"934\": [0, 0.69444, 0, 0, 0.72222],\n \"936\": [0, 0.69444, 0, 0, 0.77778],\n \"937\": [0, 0.69444, 0, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.02778, 0, 0.5],\n \"8212\": [0, 0.44444, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5]\n },\n \"Script-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.7, 0.22925, 0, 0.80253],\n \"66\": [0, 0.7, 0.04087, 0, 0.90757],\n \"67\": [0, 0.7, 0.1689, 0, 0.66619],\n \"68\": [0, 0.7, 0.09371, 0, 0.77443],\n \"69\": [0, 0.7, 0.18583, 0, 0.56162],\n \"70\": [0, 0.7, 0.13634, 0, 0.89544],\n \"71\": [0, 0.7, 0.17322, 0, 0.60961],\n \"72\": [0, 0.7, 0.29694, 0, 0.96919],\n \"73\": [0, 0.7, 0.19189, 0, 0.80907],\n \"74\": [0.27778, 0.7, 0.19189, 0, 1.05159],\n \"75\": [0, 0.7, 0.31259, 0, 0.91364],\n \"76\": [0, 0.7, 0.19189, 0, 0.87373],\n \"77\": [0, 0.7, 0.15981, 0, 1.08031],\n \"78\": [0, 0.7, 0.3525, 0, 0.9015],\n \"79\": [0, 0.7, 0.08078, 0, 0.73787],\n \"80\": [0, 0.7, 0.08078, 0, 1.01262],\n \"81\": [0, 0.7, 0.03305, 0, 0.88282],\n \"82\": [0, 0.7, 0.06259, 0, 0.85],\n \"83\": [0, 0.7, 0.19189, 0, 0.86767],\n \"84\": [0, 0.7, 0.29087, 0, 0.74697],\n \"85\": [0, 0.7, 0.25815, 0, 0.79996],\n \"86\": [0, 0.7, 0.27523, 0, 0.62204],\n \"87\": [0, 0.7, 0.27523, 0, 0.80532],\n \"88\": [0, 0.7, 0.26006, 0, 0.94445],\n \"89\": [0, 0.7, 0.2939, 0, 0.70961],\n \"90\": [0, 0.7, 0.24037, 0, 0.8212],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Size1-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.35001, 0.85, 0, 0, 0.45834],\n \"41\": [0.35001, 0.85, 0, 0, 0.45834],\n \"47\": [0.35001, 0.85, 0, 0, 0.57778],\n \"91\": [0.35001, 0.85, 0, 0, 0.41667],\n \"92\": [0.35001, 0.85, 0, 0, 0.57778],\n \"93\": [0.35001, 0.85, 0, 0, 0.41667],\n \"123\": [0.35001, 0.85, 0, 0, 0.58334],\n \"125\": [0.35001, 0.85, 0, 0, 0.58334],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.72222, 0, 0, 0.55556],\n \"732\": [0, 0.72222, 0, 0, 0.55556],\n \"770\": [0, 0.72222, 0, 0, 0.55556],\n \"771\": [0, 0.72222, 0, 0, 0.55556],\n \"8214\": [-0.00099, 0.601, 0, 0, 0.77778],\n \"8593\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8595\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8657\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8659\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8719\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8720\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8721\": [0.25001, 0.75, 0, 0, 1.05556],\n \"8730\": [0.35001, 0.85, 0, 0, 1.0],\n \"8739\": [-0.00599, 0.606, 0, 0, 0.33333],\n \"8741\": [-0.00599, 0.606, 0, 0, 0.55556],\n \"8747\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8748\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8749\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8750\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8896\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8897\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8898\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8899\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8968\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8969\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8970\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8971\": [0.35001, 0.85, 0, 0, 0.47222],\n \"9168\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"10216\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10217\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10752\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10753\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10754\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10756\": [0.25001, 0.75, 0, 0, 0.83334],\n \"10758\": [0.25001, 0.75, 0, 0, 0.83334]\n },\n \"Size2-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.65002, 1.15, 0, 0, 0.59722],\n \"41\": [0.65002, 1.15, 0, 0, 0.59722],\n \"47\": [0.65002, 1.15, 0, 0, 0.81111],\n \"91\": [0.65002, 1.15, 0, 0, 0.47222],\n \"92\": [0.65002, 1.15, 0, 0, 0.81111],\n \"93\": [0.65002, 1.15, 0, 0, 0.47222],\n \"123\": [0.65002, 1.15, 0, 0, 0.66667],\n \"125\": [0.65002, 1.15, 0, 0, 0.66667],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.0],\n \"732\": [0, 0.75, 0, 0, 1.0],\n \"770\": [0, 0.75, 0, 0, 1.0],\n \"771\": [0, 0.75, 0, 0, 1.0],\n \"8719\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8720\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8721\": [0.55001, 1.05, 0, 0, 1.44445],\n \"8730\": [0.65002, 1.15, 0, 0, 1.0],\n \"8747\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8748\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8749\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8750\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8896\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8897\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8898\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8899\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8968\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8969\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8970\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8971\": [0.65002, 1.15, 0, 0, 0.52778],\n \"10216\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10217\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10752\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10753\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10754\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10756\": [0.55001, 1.05, 0, 0, 1.11111],\n \"10758\": [0.55001, 1.05, 0, 0, 1.11111]\n },\n \"Size3-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.95003, 1.45, 0, 0, 0.73611],\n \"41\": [0.95003, 1.45, 0, 0, 0.73611],\n \"47\": [0.95003, 1.45, 0, 0, 1.04445],\n \"91\": [0.95003, 1.45, 0, 0, 0.52778],\n \"92\": [0.95003, 1.45, 0, 0, 1.04445],\n \"93\": [0.95003, 1.45, 0, 0, 0.52778],\n \"123\": [0.95003, 1.45, 0, 0, 0.75],\n \"125\": [0.95003, 1.45, 0, 0, 0.75],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.44445],\n \"732\": [0, 0.75, 0, 0, 1.44445],\n \"770\": [0, 0.75, 0, 0, 1.44445],\n \"771\": [0, 0.75, 0, 0, 1.44445],\n \"8730\": [0.95003, 1.45, 0, 0, 1.0],\n \"8968\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8969\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8970\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8971\": [0.95003, 1.45, 0, 0, 0.58334],\n \"10216\": [0.95003, 1.45, 0, 0, 0.75],\n \"10217\": [0.95003, 1.45, 0, 0, 0.75]\n },\n \"Size4-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [1.25003, 1.75, 0, 0, 0.79167],\n \"41\": [1.25003, 1.75, 0, 0, 0.79167],\n \"47\": [1.25003, 1.75, 0, 0, 1.27778],\n \"91\": [1.25003, 1.75, 0, 0, 0.58334],\n \"92\": [1.25003, 1.75, 0, 0, 1.27778],\n \"93\": [1.25003, 1.75, 0, 0, 0.58334],\n \"123\": [1.25003, 1.75, 0, 0, 0.80556],\n \"125\": [1.25003, 1.75, 0, 0, 0.80556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.825, 0, 0, 1.8889],\n \"732\": [0, 0.825, 0, 0, 1.8889],\n \"770\": [0, 0.825, 0, 0, 1.8889],\n \"771\": [0, 0.825, 0, 0, 1.8889],\n \"8730\": [1.25003, 1.75, 0, 0, 1.0],\n \"8968\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8969\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8970\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8971\": [1.25003, 1.75, 0, 0, 0.63889],\n \"9115\": [0.64502, 1.155, 0, 0, 0.875],\n \"9116\": [1e-05, 0.6, 0, 0, 0.875],\n \"9117\": [0.64502, 1.155, 0, 0, 0.875],\n \"9118\": [0.64502, 1.155, 0, 0, 0.875],\n \"9119\": [1e-05, 0.6, 0, 0, 0.875],\n \"9120\": [0.64502, 1.155, 0, 0, 0.875],\n \"9121\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9122\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9123\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9124\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9125\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9126\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9127\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9128\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9129\": [0.90001, 0, 0, 0, 0.88889],\n \"9130\": [0, 0.3, 0, 0, 0.88889],\n \"9131\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9132\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9133\": [0.90001, 0, 0, 0, 0.88889],\n \"9143\": [0.88502, 0.915, 0, 0, 1.05556],\n \"10216\": [1.25003, 1.75, 0, 0, 0.80556],\n \"10217\": [1.25003, 1.75, 0, 0, 0.80556],\n \"57344\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57345\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57680\": [0, 0.12, 0, 0, 0.45],\n \"57681\": [0, 0.12, 0, 0, 0.45],\n \"57682\": [0, 0.12, 0, 0, 0.45],\n \"57683\": [0, 0.12, 0, 0, 0.45]\n },\n \"Typewriter-Regular\": {\n \"32\": [0, 0, 0, 0, 0.525],\n \"33\": [0, 0.61111, 0, 0, 0.525],\n \"34\": [0, 0.61111, 0, 0, 0.525],\n \"35\": [0, 0.61111, 0, 0, 0.525],\n \"36\": [0.08333, 0.69444, 0, 0, 0.525],\n \"37\": [0.08333, 0.69444, 0, 0, 0.525],\n \"38\": [0, 0.61111, 0, 0, 0.525],\n \"39\": [0, 0.61111, 0, 0, 0.525],\n \"40\": [0.08333, 0.69444, 0, 0, 0.525],\n \"41\": [0.08333, 0.69444, 0, 0, 0.525],\n \"42\": [0, 0.52083, 0, 0, 0.525],\n \"43\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"44\": [0.13889, 0.125, 0, 0, 0.525],\n \"45\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"46\": [0, 0.125, 0, 0, 0.525],\n \"47\": [0.08333, 0.69444, 0, 0, 0.525],\n \"48\": [0, 0.61111, 0, 0, 0.525],\n \"49\": [0, 0.61111, 0, 0, 0.525],\n \"50\": [0, 0.61111, 0, 0, 0.525],\n \"51\": [0, 0.61111, 0, 0, 0.525],\n \"52\": [0, 0.61111, 0, 0, 0.525],\n \"53\": [0, 0.61111, 0, 0, 0.525],\n \"54\": [0, 0.61111, 0, 0, 0.525],\n \"55\": [0, 0.61111, 0, 0, 0.525],\n \"56\": [0, 0.61111, 0, 0, 0.525],\n \"57\": [0, 0.61111, 0, 0, 0.525],\n \"58\": [0, 0.43056, 0, 0, 0.525],\n \"59\": [0.13889, 0.43056, 0, 0, 0.525],\n \"60\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"61\": [-0.19549, 0.41562, 0, 0, 0.525],\n \"62\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"63\": [0, 0.61111, 0, 0, 0.525],\n \"64\": [0, 0.61111, 0, 0, 0.525],\n \"65\": [0, 0.61111, 0, 0, 0.525],\n \"66\": [0, 0.61111, 0, 0, 0.525],\n \"67\": [0, 0.61111, 0, 0, 0.525],\n \"68\": [0, 0.61111, 0, 0, 0.525],\n \"69\": [0, 0.61111, 0, 0, 0.525],\n \"70\": [0, 0.61111, 0, 0, 0.525],\n \"71\": [0, 0.61111, 0, 0, 0.525],\n \"72\": [0, 0.61111, 0, 0, 0.525],\n \"73\": [0, 0.61111, 0, 0, 0.525],\n \"74\": [0, 0.61111, 0, 0, 0.525],\n \"75\": [0, 0.61111, 0, 0, 0.525],\n \"76\": [0, 0.61111, 0, 0, 0.525],\n \"77\": [0, 0.61111, 0, 0, 0.525],\n \"78\": [0, 0.61111, 0, 0, 0.525],\n \"79\": [0, 0.61111, 0, 0, 0.525],\n \"80\": [0, 0.61111, 0, 0, 0.525],\n \"81\": [0.13889, 0.61111, 0, 0, 0.525],\n \"82\": [0, 0.61111, 0, 0, 0.525],\n \"83\": [0, 0.61111, 0, 0, 0.525],\n \"84\": [0, 0.61111, 0, 0, 0.525],\n \"85\": [0, 0.61111, 0, 0, 0.525],\n \"86\": [0, 0.61111, 0, 0, 0.525],\n \"87\": [0, 0.61111, 0, 0, 0.525],\n \"88\": [0, 0.61111, 0, 0, 0.525],\n \"89\": [0, 0.61111, 0, 0, 0.525],\n \"90\": [0, 0.61111, 0, 0, 0.525],\n \"91\": [0.08333, 0.69444, 0, 0, 0.525],\n \"92\": [0.08333, 0.69444, 0, 0, 0.525],\n \"93\": [0.08333, 0.69444, 0, 0, 0.525],\n \"94\": [0, 0.61111, 0, 0, 0.525],\n \"95\": [0.09514, 0, 0, 0, 0.525],\n \"96\": [0, 0.61111, 0, 0, 0.525],\n \"97\": [0, 0.43056, 0, 0, 0.525],\n \"98\": [0, 0.61111, 0, 0, 0.525],\n \"99\": [0, 0.43056, 0, 0, 0.525],\n \"100\": [0, 0.61111, 0, 0, 0.525],\n \"101\": [0, 0.43056, 0, 0, 0.525],\n \"102\": [0, 0.61111, 0, 0, 0.525],\n \"103\": [0.22222, 0.43056, 0, 0, 0.525],\n \"104\": [0, 0.61111, 0, 0, 0.525],\n \"105\": [0, 0.61111, 0, 0, 0.525],\n \"106\": [0.22222, 0.61111, 0, 0, 0.525],\n \"107\": [0, 0.61111, 0, 0, 0.525],\n \"108\": [0, 0.61111, 0, 0, 0.525],\n \"109\": [0, 0.43056, 0, 0, 0.525],\n \"110\": [0, 0.43056, 0, 0, 0.525],\n \"111\": [0, 0.43056, 0, 0, 0.525],\n \"112\": [0.22222, 0.43056, 0, 0, 0.525],\n \"113\": [0.22222, 0.43056, 0, 0, 0.525],\n \"114\": [0, 0.43056, 0, 0, 0.525],\n \"115\": [0, 0.43056, 0, 0, 0.525],\n \"116\": [0, 0.55358, 0, 0, 0.525],\n \"117\": [0, 0.43056, 0, 0, 0.525],\n \"118\": [0, 0.43056, 0, 0, 0.525],\n \"119\": [0, 0.43056, 0, 0, 0.525],\n \"120\": [0, 0.43056, 0, 0, 0.525],\n \"121\": [0.22222, 0.43056, 0, 0, 0.525],\n \"122\": [0, 0.43056, 0, 0, 0.525],\n \"123\": [0.08333, 0.69444, 0, 0, 0.525],\n \"124\": [0.08333, 0.69444, 0, 0, 0.525],\n \"125\": [0.08333, 0.69444, 0, 0, 0.525],\n \"126\": [0, 0.61111, 0, 0, 0.525],\n \"127\": [0, 0.61111, 0, 0, 0.525],\n \"160\": [0, 0, 0, 0, 0.525],\n \"176\": [0, 0.61111, 0, 0, 0.525],\n \"184\": [0.19445, 0, 0, 0, 0.525],\n \"305\": [0, 0.43056, 0, 0, 0.525],\n \"567\": [0.22222, 0.43056, 0, 0, 0.525],\n \"711\": [0, 0.56597, 0, 0, 0.525],\n \"713\": [0, 0.56555, 0, 0, 0.525],\n \"714\": [0, 0.61111, 0, 0, 0.525],\n \"715\": [0, 0.61111, 0, 0, 0.525],\n \"728\": [0, 0.61111, 0, 0, 0.525],\n \"730\": [0, 0.61111, 0, 0, 0.525],\n \"770\": [0, 0.61111, 0, 0, 0.525],\n \"771\": [0, 0.61111, 0, 0, 0.525],\n \"776\": [0, 0.61111, 0, 0, 0.525],\n \"915\": [0, 0.61111, 0, 0, 0.525],\n \"916\": [0, 0.61111, 0, 0, 0.525],\n \"920\": [0, 0.61111, 0, 0, 0.525],\n \"923\": [0, 0.61111, 0, 0, 0.525],\n \"926\": [0, 0.61111, 0, 0, 0.525],\n \"928\": [0, 0.61111, 0, 0, 0.525],\n \"931\": [0, 0.61111, 0, 0, 0.525],\n \"933\": [0, 0.61111, 0, 0, 0.525],\n \"934\": [0, 0.61111, 0, 0, 0.525],\n \"936\": [0, 0.61111, 0, 0, 0.525],\n \"937\": [0, 0.61111, 0, 0, 0.525],\n \"8216\": [0, 0.61111, 0, 0, 0.525],\n \"8217\": [0, 0.61111, 0, 0, 0.525],\n \"8242\": [0, 0.61111, 0, 0, 0.525],\n \"9251\": [0.11111, 0.21944, 0, 0, 0.525]\n }\n});\n;// CONCATENATED MODULE: ./src/fontMetrics.js\n\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n// In TeX, there are actually three sets of dimensions, one for each of\n// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4:\n// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are\n// provided in the the arrays below, in that order.\n//\n// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respsectively.\n// This was determined by running the following script:\n//\n// latex -interaction=nonstopmode \\\n// '\\documentclass{article}\\usepackage{amsmath}\\begin{document}' \\\n// '$a$ \\expandafter\\show\\the\\textfont2' \\\n// '\\expandafter\\show\\the\\scriptfont2' \\\n// '\\expandafter\\show\\the\\scriptscriptfont2' \\\n// '\\stop'\n//\n// The metrics themselves were retreived using the following commands:\n//\n// tftopl cmsy10\n// tftopl cmsy7\n// tftopl cmsy5\n//\n// The output of each of these commands is quite lengthy. The only part we\n// care about is the FONTDIMEN section. Each value is measured in EMs.\nvar sigmasAndXis = {\n slant: [0.250, 0.250, 0.250],\n // sigma1\n space: [0.000, 0.000, 0.000],\n // sigma2\n stretch: [0.000, 0.000, 0.000],\n // sigma3\n shrink: [0.000, 0.000, 0.000],\n // sigma4\n xHeight: [0.431, 0.431, 0.431],\n // sigma5\n quad: [1.000, 1.171, 1.472],\n // sigma6\n extraSpace: [0.000, 0.000, 0.000],\n // sigma7\n num1: [0.677, 0.732, 0.925],\n // sigma8\n num2: [0.394, 0.384, 0.387],\n // sigma9\n num3: [0.444, 0.471, 0.504],\n // sigma10\n denom1: [0.686, 0.752, 1.025],\n // sigma11\n denom2: [0.345, 0.344, 0.532],\n // sigma12\n sup1: [0.413, 0.503, 0.504],\n // sigma13\n sup2: [0.363, 0.431, 0.404],\n // sigma14\n sup3: [0.289, 0.286, 0.294],\n // sigma15\n sub1: [0.150, 0.143, 0.200],\n // sigma16\n sub2: [0.247, 0.286, 0.400],\n // sigma17\n supDrop: [0.386, 0.353, 0.494],\n // sigma18\n subDrop: [0.050, 0.071, 0.100],\n // sigma19\n delim1: [2.390, 1.700, 1.980],\n // sigma20\n delim2: [1.010, 1.157, 1.420],\n // sigma21\n axisHeight: [0.250, 0.250, 0.250],\n // sigma22\n // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;\n // they correspond to the font parameters of the extension fonts (family 3).\n // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to\n // match cmex7, we'd use cmex7.tfm values for script and scriptscript\n // values.\n defaultRuleThickness: [0.04, 0.049, 0.049],\n // xi8; cmex7: 0.049\n bigOpSpacing1: [0.111, 0.111, 0.111],\n // xi9\n bigOpSpacing2: [0.166, 0.166, 0.166],\n // xi10\n bigOpSpacing3: [0.2, 0.2, 0.2],\n // xi11\n bigOpSpacing4: [0.6, 0.611, 0.611],\n // xi12; cmex7: 0.611\n bigOpSpacing5: [0.1, 0.143, 0.143],\n // xi13; cmex7: 0.143\n // The \\sqrt rule width is taken from the height of the surd character.\n // Since we use the same font at all sizes, this thickness doesn't scale.\n sqrtRuleThickness: [0.04, 0.04, 0.04],\n // This value determines how large a pt is, for metrics which are defined\n // in terms of pts.\n // This value is also used in katex.less; if you change it make sure the\n // values match.\n ptPerEm: [10.0, 10.0, 10.0],\n // The space between adjacent `|` columns in an array definition. From\n // `\\showthe\\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.\n doubleRuleSep: [0.2, 0.2, 0.2],\n // The width of separator lines in {array} environments. From\n // `\\showthe\\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.\n arrayRuleWidth: [0.04, 0.04, 0.04],\n // Two values from LaTeX source2e:\n fboxsep: [0.3, 0.3, 0.3],\n // 3 pt / ptPerEm\n fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm\n\n}; // This map contains a mapping from font name and character code to character\n// metrics, including height, depth, italic correction, and skew (kern from the\n// character to the corresponding \\skewchar)\n// This map is generated via `make metrics`. It should not be changed manually.\n\n // These are very rough approximations. We default to Times New Roman which\n// should have Latin-1 and Cyrillic characters, but may not depending on the\n// operating system. The metrics do not account for extra height from the\n// accents. In the case of Cyrillic characters which have both ascenders and\n// descenders we prefer approximations with ascenders, primarily to prevent\n// the fraction bar or root line from intersecting the glyph.\n// TODO(kevinb) allow union of multiple glyph metrics for better accuracy.\n\nvar extraCharacterMap = {\n // Latin-1\n 'Ã…': 'A',\n 'Ã': 'D',\n 'Þ': 'o',\n 'Ã¥': 'a',\n 'ð': 'd',\n 'þ': 'o',\n // Cyrillic\n 'Ð': 'A',\n 'Б': 'B',\n 'Ð’': 'B',\n 'Г': 'F',\n 'Д': 'A',\n 'Е': 'E',\n 'Ж': 'K',\n 'З': '3',\n 'И': 'N',\n 'Й': 'N',\n 'К': 'K',\n 'Л': 'N',\n 'М': 'M',\n 'Ð': 'H',\n 'О': 'O',\n 'П': 'N',\n 'Ð ': 'P',\n 'С': 'C',\n 'Т': 'T',\n 'У': 'y',\n 'Ф': 'O',\n 'Ð¥': 'X',\n 'Ц': 'U',\n 'Ч': 'h',\n 'Ш': 'W',\n 'Щ': 'W',\n 'Ъ': 'B',\n 'Ы': 'X',\n 'Ь': 'B',\n 'Ð': '3',\n 'Ю': 'X',\n 'Я': 'R',\n 'а': 'a',\n 'б': 'b',\n 'в': 'a',\n 'г': 'r',\n 'д': 'y',\n 'е': 'e',\n 'ж': 'm',\n 'з': 'e',\n 'и': 'n',\n 'й': 'n',\n 'к': 'n',\n 'л': 'n',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'n',\n 'Ñ€': 'p',\n 'Ñ': 'c',\n 'Ñ‚': 'o',\n 'у': 'y',\n 'Ñ„': 'b',\n 'Ñ…': 'x',\n 'ц': 'n',\n 'ч': 'n',\n 'ш': 'w',\n 'щ': 'w',\n 'ÑŠ': 'a',\n 'Ñ‹': 'm',\n 'ÑŒ': 'a',\n 'Ñ': 'e',\n 'ÑŽ': 'm',\n 'Ñ': 'r'\n};\n\n/**\n * This function adds new font metrics to default metricMap\n * It can also override existing metrics\n */\nfunction setFontMetrics(fontName, metrics) {\n fontMetricsData[fontName] = metrics;\n}\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a font.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\n\nfunction getCharacterMetrics(character, font, mode) {\n if (!fontMetricsData[font]) {\n throw new Error(\"Font metrics not found for font: \" + font + \".\");\n }\n\n var ch = character.charCodeAt(0);\n var metrics = fontMetricsData[font][ch];\n\n if (!metrics && character[0] in extraCharacterMap) {\n ch = extraCharacterMap[character[0]].charCodeAt(0);\n metrics = fontMetricsData[font][ch];\n }\n\n if (!metrics && mode === 'text') {\n // We don't typically have font metrics for Asian scripts.\n // But since we support them in text mode, we need to return\n // some sort of metrics.\n // So if the character is in a script we support but we\n // don't have metrics for it, just use the metrics for\n // the Latin capital letter M. This is close enough because\n // we (currently) only care about the height of the glpyh\n // not its width.\n if (supportedCodepoint(ch)) {\n metrics = fontMetricsData[font][77]; // 77 is the charcode for 'M'\n }\n }\n\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4]\n };\n }\n}\nvar fontMetricsBySizeIndex = {};\n/**\n * Get the font metrics for a given size.\n */\n\nfunction getGlobalMetrics(size) {\n var sizeIndex;\n\n if (size >= 5) {\n sizeIndex = 0;\n } else if (size >= 3) {\n sizeIndex = 1;\n } else {\n sizeIndex = 2;\n }\n\n if (!fontMetricsBySizeIndex[sizeIndex]) {\n var metrics = fontMetricsBySizeIndex[sizeIndex] = {\n cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18\n };\n\n for (var key in sigmasAndXis) {\n if (sigmasAndXis.hasOwnProperty(key)) {\n metrics[key] = sigmasAndXis[key][sizeIndex];\n }\n }\n }\n\n return fontMetricsBySizeIndex[sizeIndex];\n}\n;// CONCATENATED MODULE: ./src/symbols.js\n/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n// Some of these have a \"-token\" suffix since these are also used as `ParseNode`\n// types for raw text tokens, and we want to avoid conflicts with higher-level\n// `ParseNode` types. These `ParseNode`s are constructed within `Parser` by\n// looking up the `symbols` map.\nvar ATOMS = {\n \"bin\": 1,\n \"close\": 1,\n \"inner\": 1,\n \"open\": 1,\n \"punct\": 1,\n \"rel\": 1\n};\nvar NON_ATOMS = {\n \"accent-token\": 1,\n \"mathord\": 1,\n \"op-token\": 1,\n \"spacing\": 1,\n \"textord\": 1\n};\nvar symbols = {\n \"math\": {},\n \"text\": {}\n};\n/* harmony default export */ var src_symbols = (symbols);\n/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */\n\nfunction defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {\n symbols[mode][name] = {\n font: font,\n group: group,\n replace: replace\n };\n\n if (acceptUnicodeChar && replace) {\n symbols[mode][replace] = symbols[mode][name];\n }\n} // Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n// modes:\n\nvar math = \"math\";\nvar symbols_text = \"text\"; // fonts:\n\nvar main = \"main\";\nvar ams = \"ams\"; // groups:\n\nvar accent = \"accent-token\";\nvar bin = \"bin\";\nvar symbols_close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op-token\";\nvar symbols_open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\"; // Now comes the symbol table\n// Relation Symbols\n\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\", true);\ndefineSymbol(math, main, rel, \"\\u227A\", \"\\\\prec\", true);\ndefineSymbol(math, main, rel, \"\\u227B\", \"\\\\succ\", true);\ndefineSymbol(math, main, rel, \"\\u223C\", \"\\\\sim\", true);\ndefineSymbol(math, main, rel, \"\\u22A5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2AAF\", \"\\\\preceq\", true);\ndefineSymbol(math, main, rel, \"\\u2AB0\", \"\\\\succeq\", true);\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\", true);\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\", true);\ndefineSymbol(math, main, rel, \"\\u226A\", \"\\\\ll\", true);\ndefineSymbol(math, main, rel, \"\\u226B\", \"\\\\gg\", true);\ndefineSymbol(math, main, rel, \"\\u224D\", \"\\\\asymp\", true);\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22C8\", \"\\\\bowtie\", true);\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\", true);\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\", true);\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\", true);\ndefineSymbol(math, main, rel, \"\\u220B\", \"\\\\ni\", true);\ndefineSymbol(math, main, rel, \"\\u221D\", \"\\\\propto\", true);\ndefineSymbol(math, main, rel, \"\\u22A2\", \"\\\\vdash\", true);\ndefineSymbol(math, main, rel, \"\\u22A3\", \"\\\\dashv\", true);\ndefineSymbol(math, main, rel, \"\\u220B\", \"\\\\owns\"); // Punctuation\n\ndefineSymbol(math, main, punct, \".\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22C5\", \"\\\\cdotp\"); // Misc Symbols\n\ndefineSymbol(math, main, textord, \"#\", \"\\\\#\");\ndefineSymbol(symbols_text, main, textord, \"#\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"&\", \"\\\\&\");\ndefineSymbol(symbols_text, main, textord, \"&\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\", true);\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\", true);\ndefineSymbol(math, main, textord, \"\\u210F\", \"\\\\hbar\", true);\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\", true);\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\", true);\ndefineSymbol(math, main, textord, \"\\u266D\", \"\\\\flat\", true);\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\", true);\ndefineSymbol(math, main, textord, \"\\u266E\", \"\\\\natural\", true);\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\", true);\ndefineSymbol(math, main, textord, \"\\u266F\", \"\\\\sharp\", true);\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\", true);\ndefineSymbol(math, main, textord, \"\\u211C\", \"\\\\Re\", true);\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\", true);\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\", true);\ndefineSymbol(math, main, textord, \"\\xA7\", \"\\\\S\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xA7\", \"\\\\S\");\ndefineSymbol(math, main, textord, \"\\xB6\", \"\\\\P\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xB6\", \"\\\\P\"); // Math and Text\n\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2020\", \"\\\\textdagger\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(symbols_text, main, textord, \"\\u2021\", \"\\\\textdaggerdbl\"); // Large Delimiters\n\ndefineSymbol(math, main, symbols_close, \"\\u23B1\", \"\\\\rmoustache\", true);\ndefineSymbol(math, main, symbols_open, \"\\u23B0\", \"\\\\lmoustache\", true);\ndefineSymbol(math, main, symbols_close, \"\\u27EF\", \"\\\\rgroup\", true);\ndefineSymbol(math, main, symbols_open, \"\\u27EE\", \"\\\\lgroup\", true); // Binary Operators\n\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\", true);\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\", true);\ndefineSymbol(math, main, bin, \"\\u228E\", \"\\\\uplus\", true);\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\", true);\ndefineSymbol(math, main, bin, \"\\u25EF\", \"\\\\bigcirc\", true);\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\");\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\", true);\ndefineSymbol(math, main, bin, \"\\u2A3F\", \"\\\\amalg\");\ndefineSymbol(math, main, bin, \"&\", \"\\\\And\"); // from amsmath\n// Arrow Symbols\n\ndefineSymbol(math, main, rel, \"\\u27F5\", \"\\\\longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D0\", \"\\\\Leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F8\", \"\\\\Longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F6\", \"\\\\longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D2\", \"\\\\Rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F9\", \"\\\\Longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27F7\", \"\\\\longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D4\", \"\\\\Leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27FA\", \"\\\\Longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21A6\", \"\\\\mapsto\", true);\ndefineSymbol(math, main, rel, \"\\u27FC\", \"\\\\longmapsto\", true);\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\", true);\ndefineSymbol(math, main, rel, \"\\u21A9\", \"\\\\hookleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21AA\", \"\\\\hookrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\", true);\ndefineSymbol(math, main, rel, \"\\u21BC\", \"\\\\leftharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u21C0\", \"\\\\rightharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21BD\", \"\\\\leftharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u21C1\", \"\\\\rightharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21CC\", \"\\\\rightleftharpoons\", true); // AMS Negated Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u226E\", \"\\\\nless\", true); // Symbol names preceeded by \"@\" each have a corresponding macro.\n\ndefineSymbol(math, ams, rel, \"\\uE010\", \"\\\\@nleqslant\");\ndefineSymbol(math, ams, rel, \"\\uE011\", \"\\\\@nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2A87\", \"\\\\lneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE00C\", \"\\\\@lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22E6\", \"\\\\lnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A89\", \"\\\\lnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\", true); // unicode-math maps \\u22e0 to \\npreccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22E0\", \"\\\\npreceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22E8\", \"\\\\precnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB9\", \"\\\\precnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\", true);\ndefineSymbol(math, ams, rel, \"\\uE006\", \"\\\\@nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\", true);\ndefineSymbol(math, ams, rel, \"\\u22AC\", \"\\\\nvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u22AD\", \"\\\\nvDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22EA\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22EC\", \"\\\\ntrianglelefteq\", true);\ndefineSymbol(math, ams, rel, \"\\u228A\", \"\\\\subsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\uE01A\", \"\\\\@varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2ACB\", \"\\\\subsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE017\", \"\\\\@varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226F\", \"\\\\ngtr\", true);\ndefineSymbol(math, ams, rel, \"\\uE00F\", \"\\\\@ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\uE00E\", \"\\\\@ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2A88\", \"\\\\gneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE00D\", \"\\\\@gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22E7\", \"\\\\gnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A8A\", \"\\\\gnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\", true); // unicode-math maps \\u22e1 to \\nsucccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22E1\", \"\\\\nsucceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22E9\", \"\\\\succnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ABA\", \"\\\\succnapprox\", true); // unicode-math maps \\u2246 to \\simneqq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\", true);\ndefineSymbol(math, ams, rel, \"\\uE007\", \"\\\\@nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\", true);\ndefineSymbol(math, ams, rel, \"\\u22AF\", \"\\\\nVDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22EB\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ED\", \"\\\\ntrianglerighteq\", true);\ndefineSymbol(math, ams, rel, \"\\uE018\", \"\\\\@nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228B\", \"\\\\supsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\uE01B\", \"\\\\@varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2ACC\", \"\\\\supsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE019\", \"\\\\@varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22AE\", \"\\\\nVdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB5\", \"\\\\precneqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB6\", \"\\\\succneqq\", true);\ndefineSymbol(math, ams, rel, \"\\uE016\", \"\\\\@nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22B4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22B5\", \"\\\\unrhd\"); // AMS Negated Arrows\n\ndefineSymbol(math, ams, rel, \"\\u219A\", \"\\\\nleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219B\", \"\\\\nrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CD\", \"\\\\nLeftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CF\", \"\\\\nRightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21AE\", \"\\\\nleftrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21CE\", \"\\\\nLeftrightarrow\", true); // AMS Misc\n\ndefineSymbol(math, ams, rel, \"\\u25B3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210F\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25BD\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25CA\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24C8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\xAE\", \"\\\\circledR\");\ndefineSymbol(symbols_text, ams, textord, \"\\xAE\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\", true);\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\", true);\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25B2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25BC\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25A0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29EB\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\", true); // unicode-math maps U+F0 to \\matheth. We map to AMS function \\eth\n\ndefineSymbol(math, ams, textord, \"\\xF0\", \"\\\\eth\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xF0\", \"\\xF0\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25A1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25A1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25CA\", \"\\\\Diamond\"); // unicode-math maps U+A5 to \\mathyen. We map to AMS function \\yen\n\ndefineSymbol(math, ams, textord, \"\\xA5\", \"\\\\yen\", true);\ndefineSymbol(symbols_text, ams, textord, \"\\xA5\", \"\\\\yen\", true);\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\", true);\ndefineSymbol(symbols_text, ams, textord, \"\\u2713\", \"\\\\checkmark\"); // AMS Hebrew\n\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\", true);\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\", true);\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\", true); // AMS Greek\n\ndefineSymbol(math, ams, textord, \"\\u03DD\", \"\\\\digamma\", true);\ndefineSymbol(math, ams, textord, \"\\u03F0\", \"\\\\varkappa\"); // AMS Delimiters\n\ndefineSymbol(math, ams, symbols_open, \"\\u250C\", \"\\\\@ulcorner\", true);\ndefineSymbol(math, ams, symbols_close, \"\\u2510\", \"\\\\@urcorner\", true);\ndefineSymbol(math, ams, symbols_open, \"\\u2514\", \"\\\\@llcorner\", true);\ndefineSymbol(math, ams, symbols_close, \"\\u2518\", \"\\\\@lrcorner\", true); // AMS Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2A7D\", \"\\\\leqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2A95\", \"\\\\eqslantless\", true);\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A85\", \"\\\\lessapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u224A\", \"\\\\approxeq\", true);\ndefineSymbol(math, ams, bin, \"\\u22D6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22D8\", \"\\\\lll\", true);\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u22DA\", \"\\\\lesseqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2A8B\", \"\\\\lesseqqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u223D\", \"\\\\backsim\", true);\ndefineSymbol(math, ams, rel, \"\\u22CD\", \"\\\\backsimeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2AC5\", \"\\\\subseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22D0\", \"\\\\Subset\", true);\ndefineSymbol(math, ams, rel, \"\\u228F\", \"\\\\sqsubset\", true);\ndefineSymbol(math, ams, rel, \"\\u227C\", \"\\\\preccurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22DE\", \"\\\\curlyeqprec\", true);\ndefineSymbol(math, ams, rel, \"\\u227E\", \"\\\\precsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB7\", \"\\\\precapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22B2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22B4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22A8\", \"\\\\vDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22AA\", \"\\\\Vvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224F\", \"\\\\bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u224E\", \"\\\\Bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2A7E\", \"\\\\geqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2A96\", \"\\\\eqslantgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2A86\", \"\\\\gtrapprox\", true);\ndefineSymbol(math, ams, bin, \"\\u22D7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22D9\", \"\\\\ggg\", true);\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\", true);\ndefineSymbol(math, ams, rel, \"\\u22DB\", \"\\\\gtreqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2A8C\", \"\\\\gtreqqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\", true);\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\", true);\ndefineSymbol(math, ams, rel, \"\\u225C\", \"\\\\triangleq\", true);\ndefineSymbol(math, ams, rel, \"\\u223C\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2AC6\", \"\\\\supseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22D1\", \"\\\\Supset\", true);\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\", true);\ndefineSymbol(math, ams, rel, \"\\u227D\", \"\\\\succcurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22DF\", \"\\\\curlyeqsucc\", true);\ndefineSymbol(math, ams, rel, \"\\u227F\", \"\\\\succsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2AB8\", \"\\\\succapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22B3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22B5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22A9\", \"\\\\Vdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226C\", \"\\\\between\", true);\ndefineSymbol(math, ams, rel, \"\\u22D4\", \"\\\\pitchfork\", true);\ndefineSymbol(math, ams, rel, \"\\u221D\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25C0\", \"\\\\blacktriangleleft\"); // unicode-math says that \\therefore is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\", true);\ndefineSymbol(math, ams, rel, \"\\u220D\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25B6\", \"\\\\blacktriangleright\"); // unicode-math says that \\because is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\", true);\ndefineSymbol(math, ams, rel, \"\\u22D8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22D9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22B2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22B3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\", true);\ndefineSymbol(math, main, rel, \"\\u22C8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\", true); // AMS Binary Operators\n\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\", true);\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22D2\", \"\\\\Cap\", true);\ndefineSymbol(math, ams, bin, \"\\u22D3\", \"\\\\Cup\", true);\ndefineSymbol(math, ams, bin, \"\\u2A5E\", \"\\\\doublebarwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u229F\", \"\\\\boxminus\", true);\ndefineSymbol(math, ams, bin, \"\\u229E\", \"\\\\boxplus\", true);\ndefineSymbol(math, ams, bin, \"\\u22C7\", \"\\\\divideontimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22C9\", \"\\\\ltimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CA\", \"\\\\rtimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CB\", \"\\\\leftthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CC\", \"\\\\rightthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22CF\", \"\\\\curlywedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22CE\", \"\\\\curlyvee\", true);\ndefineSymbol(math, ams, bin, \"\\u229D\", \"\\\\circleddash\", true);\ndefineSymbol(math, ams, bin, \"\\u229B\", \"\\\\circledast\", true);\ndefineSymbol(math, ams, bin, \"\\u22C5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22BA\", \"\\\\intercal\", true);\ndefineSymbol(math, ams, bin, \"\\u22D2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22D3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22A0\", \"\\\\boxtimes\", true); // AMS Arrows\n// Note: unicode-math maps \\u21e2 to their own function \\rightdasharrow.\n// We'll map it to AMS function \\dashrightarrow. It produces the same atom.\n\ndefineSymbol(math, ams, rel, \"\\u21E2\", \"\\\\dashrightarrow\", true); // unicode-math maps \\u21e0 to \\leftdasharrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21E0\", \"\\\\dashleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21C7\", \"\\\\leftleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21C6\", \"\\\\leftrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21DA\", \"\\\\Lleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219E\", \"\\\\twoheadleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21A2\", \"\\\\leftarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21AB\", \"\\\\looparrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21CB\", \"\\\\leftrightharpoons\", true);\ndefineSymbol(math, ams, rel, \"\\u21B6\", \"\\\\curvearrowleft\", true); // unicode-math maps \\u21ba to \\acwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21BA\", \"\\\\circlearrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21B0\", \"\\\\Lsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21C8\", \"\\\\upuparrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21BF\", \"\\\\upharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21C3\", \"\\\\downharpoonleft\", true);\ndefineSymbol(math, main, rel, \"\\u22B6\", \"\\\\origof\", true); // not in font\n\ndefineSymbol(math, main, rel, \"\\u22B7\", \"\\\\imageof\", true); // not in font\n\ndefineSymbol(math, ams, rel, \"\\u22B8\", \"\\\\multimap\", true);\ndefineSymbol(math, ams, rel, \"\\u21AD\", \"\\\\leftrightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21C9\", \"\\\\rightrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21C4\", \"\\\\rightleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21A0\", \"\\\\twoheadrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21A3\", \"\\\\rightarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21AC\", \"\\\\looparrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21B7\", \"\\\\curvearrowright\", true); // unicode-math maps \\u21bb to \\cwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21BB\", \"\\\\circlearrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21B1\", \"\\\\Rsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21CA\", \"\\\\downdownarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21BE\", \"\\\\upharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21C2\", \"\\\\downharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21DD\", \"\\\\rightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21DD\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21DB\", \"\\\\Rrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21BE\", \"\\\\restriction\");\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(symbols_text, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(symbols_text, main, textord, \"$\", \"\\\\textdollar\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(symbols_text, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(symbols_text, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(symbols_text, main, textord, \"_\", \"\\\\textunderscore\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\", true);\ndefineSymbol(math, main, textord, \"\\u221E\", \"\\\\infty\", true);\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25B3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\", true);\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\", true);\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\", true);\ndefineSymbol(math, main, textord, \"\\u039B\", \"\\\\Lambda\", true);\ndefineSymbol(math, main, textord, \"\\u039E\", \"\\\\Xi\", true);\ndefineSymbol(math, main, textord, \"\\u03A0\", \"\\\\Pi\", true);\ndefineSymbol(math, main, textord, \"\\u03A3\", \"\\\\Sigma\", true);\ndefineSymbol(math, main, textord, \"\\u03A5\", \"\\\\Upsilon\", true);\ndefineSymbol(math, main, textord, \"\\u03A6\", \"\\\\Phi\", true);\ndefineSymbol(math, main, textord, \"\\u03A8\", \"\\\\Psi\", true);\ndefineSymbol(math, main, textord, \"\\u03A9\", \"\\\\Omega\", true);\ndefineSymbol(math, main, textord, \"A\", \"\\u0391\");\ndefineSymbol(math, main, textord, \"B\", \"\\u0392\");\ndefineSymbol(math, main, textord, \"E\", \"\\u0395\");\ndefineSymbol(math, main, textord, \"Z\", \"\\u0396\");\ndefineSymbol(math, main, textord, \"H\", \"\\u0397\");\ndefineSymbol(math, main, textord, \"I\", \"\\u0399\");\ndefineSymbol(math, main, textord, \"K\", \"\\u039A\");\ndefineSymbol(math, main, textord, \"M\", \"\\u039C\");\ndefineSymbol(math, main, textord, \"N\", \"\\u039D\");\ndefineSymbol(math, main, textord, \"O\", \"\\u039F\");\ndefineSymbol(math, main, textord, \"P\", \"\\u03A1\");\ndefineSymbol(math, main, textord, \"T\", \"\\u03A4\");\ndefineSymbol(math, main, textord, \"X\", \"\\u03A7\");\ndefineSymbol(math, main, textord, \"\\xAC\", \"\\\\neg\", true);\ndefineSymbol(math, main, textord, \"\\xAC\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22A4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22A5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03B1\", \"\\\\alpha\", true);\ndefineSymbol(math, main, mathord, \"\\u03B2\", \"\\\\beta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B3\", \"\\\\gamma\", true);\ndefineSymbol(math, main, mathord, \"\\u03B4\", \"\\\\delta\", true);\ndefineSymbol(math, main, mathord, \"\\u03F5\", \"\\\\epsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03B6\", \"\\\\zeta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B7\", \"\\\\eta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B8\", \"\\\\theta\", true);\ndefineSymbol(math, main, mathord, \"\\u03B9\", \"\\\\iota\", true);\ndefineSymbol(math, main, mathord, \"\\u03BA\", \"\\\\kappa\", true);\ndefineSymbol(math, main, mathord, \"\\u03BB\", \"\\\\lambda\", true);\ndefineSymbol(math, main, mathord, \"\\u03BC\", \"\\\\mu\", true);\ndefineSymbol(math, main, mathord, \"\\u03BD\", \"\\\\nu\", true);\ndefineSymbol(math, main, mathord, \"\\u03BE\", \"\\\\xi\", true);\ndefineSymbol(math, main, mathord, \"\\u03BF\", \"\\\\omicron\", true);\ndefineSymbol(math, main, mathord, \"\\u03C0\", \"\\\\pi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C1\", \"\\\\rho\", true);\ndefineSymbol(math, main, mathord, \"\\u03C3\", \"\\\\sigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03C4\", \"\\\\tau\", true);\ndefineSymbol(math, main, mathord, \"\\u03C5\", \"\\\\upsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03D5\", \"\\\\phi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C7\", \"\\\\chi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C8\", \"\\\\psi\", true);\ndefineSymbol(math, main, mathord, \"\\u03C9\", \"\\\\omega\", true);\ndefineSymbol(math, main, mathord, \"\\u03B5\", \"\\\\varepsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03D1\", \"\\\\vartheta\", true);\ndefineSymbol(math, main, mathord, \"\\u03D6\", \"\\\\varpi\", true);\ndefineSymbol(math, main, mathord, \"\\u03F1\", \"\\\\varrho\", true);\ndefineSymbol(math, main, mathord, \"\\u03C2\", \"\\\\varsigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03C6\", \"\\\\varphi\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\", true);\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\", true);\ndefineSymbol(math, main, bin, \"\\u22C5\", \"\\\\cdot\", true);\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\");\ndefineSymbol(math, main, bin, \"\\xF7\", \"\\\\div\", true);\ndefineSymbol(math, main, bin, \"\\xB1\", \"\\\\pm\", true);\ndefineSymbol(math, main, bin, \"\\xD7\", \"\\\\times\", true);\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\", true);\ndefineSymbol(math, main, bin, \"\\u222A\", \"\\\\cup\", true);\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\", true);\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\", true);\ndefineSymbol(math, main, textord, \"\\u221A\", \"\\\\surd\");\ndefineSymbol(math, main, symbols_open, \"\\u27E8\", \"\\\\langle\", true);\ndefineSymbol(math, main, symbols_open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, symbols_open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, symbols_close, \"?\", \"?\");\ndefineSymbol(math, main, symbols_close, \"!\", \"!\");\ndefineSymbol(math, main, symbols_close, \"\\u27E9\", \"\\\\rangle\", true);\ndefineSymbol(math, main, symbols_close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, symbols_close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\", true);\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\", true);\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\", true);\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\", true);\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\", true);\ndefineSymbol(math, main, rel, \"\\uE020\", \"\\\\@not\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\", true);\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\", true);\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u22A8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\", true);\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\", true);\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\space\"); // Ref: LaTeX Source 2e: \\DeclareRobustCommand{\\nobreakspace}{%\n\ndefineSymbol(math, main, spacing, \"\\xA0\", \"\\\\nobreakspace\");\ndefineSymbol(symbols_text, main, spacing, \"\\xA0\", \"\\\\ \");\ndefineSymbol(symbols_text, main, spacing, \"\\xA0\", \" \");\ndefineSymbol(symbols_text, main, spacing, \"\\xA0\", \"\\\\space\");\ndefineSymbol(symbols_text, main, spacing, \"\\xA0\", \"\\\\nobreakspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\nobreak\");\ndefineSymbol(math, main, spacing, null, \"\\\\allowbreak\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, ams, bin, \"\\u22BC\", \"\\\\barwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22BB\", \"\\\\veebar\", true);\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\", true);\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\", true);\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\", true);\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\", true);\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\", true);\ndefineSymbol(math, ams, bin, \"\\u229A\", \"\\\\circledcirc\", true);\ndefineSymbol(math, ams, bin, \"\\u22A1\", \"\\\\boxdot\", true);\ndefineSymbol(math, main, bin, \"\\u25B3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25BD\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22C4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22C6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25C3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25B9\", \"\\\\triangleright\");\ndefineSymbol(math, main, symbols_open, \"{\", \"\\\\{\");\ndefineSymbol(symbols_text, main, textord, \"{\", \"\\\\{\");\ndefineSymbol(symbols_text, main, textord, \"{\", \"\\\\textbraceleft\");\ndefineSymbol(math, main, symbols_close, \"}\", \"\\\\}\");\ndefineSymbol(symbols_text, main, textord, \"}\", \"\\\\}\");\ndefineSymbol(symbols_text, main, textord, \"}\", \"\\\\textbraceright\");\ndefineSymbol(math, main, symbols_open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, symbols_close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, symbols_open, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(symbols_text, main, textord, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(math, main, symbols_close, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(symbols_text, main, textord, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(math, main, symbols_open, \"(\", \"\\\\lparen\", true);\ndefineSymbol(math, main, symbols_close, \")\", \"\\\\rparen\", true);\ndefineSymbol(symbols_text, main, textord, \"<\", \"\\\\textless\", true); // in T1 fontenc\n\ndefineSymbol(symbols_text, main, textord, \">\", \"\\\\textgreater\", true); // in T1 fontenc\n\ndefineSymbol(math, main, symbols_open, \"\\u230A\", \"\\\\lfloor\", true);\ndefineSymbol(math, main, symbols_close, \"\\u230B\", \"\\\\rfloor\", true);\ndefineSymbol(math, main, symbols_open, \"\\u2308\", \"\\\\lceil\", true);\ndefineSymbol(math, main, symbols_close, \"\\u2309\", \"\\\\rceil\", true);\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(symbols_text, main, textord, \"|\", \"\\\\textbar\", true); // in T1 fontenc\n\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(symbols_text, main, textord, \"\\u2225\", \"\\\\textbardbl\");\ndefineSymbol(symbols_text, main, textord, \"~\", \"\\\\textasciitilde\");\ndefineSymbol(symbols_text, main, textord, \"\\\\\", \"\\\\textbackslash\");\ndefineSymbol(symbols_text, main, textord, \"^\", \"\\\\textasciicircum\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D1\", \"\\\\Uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D3\", \"\\\\Downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21D5\", \"\\\\Updownarrow\", true);\ndefineSymbol(math, main, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, main, op, \"\\u22C1\", \"\\\\bigvee\");\ndefineSymbol(math, main, op, \"\\u22C0\", \"\\\\bigwedge\");\ndefineSymbol(math, main, op, \"\\u2A04\", \"\\\\biguplus\");\ndefineSymbol(math, main, op, \"\\u22C2\", \"\\\\bigcap\");\ndefineSymbol(math, main, op, \"\\u22C3\", \"\\\\bigcup\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\int\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\intop\");\ndefineSymbol(math, main, op, \"\\u222C\", \"\\\\iint\");\ndefineSymbol(math, main, op, \"\\u222D\", \"\\\\iiint\");\ndefineSymbol(math, main, op, \"\\u220F\", \"\\\\prod\");\ndefineSymbol(math, main, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, main, op, \"\\u2A02\", \"\\\\bigotimes\");\ndefineSymbol(math, main, op, \"\\u2A01\", \"\\\\bigoplus\");\ndefineSymbol(math, main, op, \"\\u2A00\", \"\\\\bigodot\");\ndefineSymbol(math, main, op, \"\\u222E\", \"\\\\oint\");\ndefineSymbol(math, main, op, \"\\u222F\", \"\\\\oiint\");\ndefineSymbol(math, main, op, \"\\u2230\", \"\\\\oiiint\");\ndefineSymbol(math, main, op, \"\\u2A06\", \"\\\\bigsqcup\");\ndefineSymbol(math, main, op, \"\\u222B\", \"\\\\smallint\");\ndefineSymbol(symbols_text, main, inner, \"\\u2026\", \"\\\\textellipsis\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\mathellipsis\");\ndefineSymbol(symbols_text, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u22EF\", \"\\\\@cdots\", true);\ndefineSymbol(math, main, inner, \"\\u22F1\", \"\\\\ddots\", true);\ndefineSymbol(math, main, textord, \"\\u22EE\", \"\\\\varvdots\"); // \\vdots is a macro\n\ndefineSymbol(math, main, accent, \"\\u02CA\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u02CB\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\xA8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"~\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u02C9\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02D8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02C7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"^\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20D7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02D9\", \"\\\\dot\");\ndefineSymbol(math, main, accent, \"\\u02DA\", \"\\\\mathring\"); // \\imath and \\jmath should be invariant to \\mathrm, \\mathbf, etc., so use PUA\n\ndefineSymbol(math, main, mathord, \"\\uE131\", \"\\\\@imath\");\ndefineSymbol(math, main, mathord, \"\\uE237\", \"\\\\@jmath\");\ndefineSymbol(math, main, textord, \"\\u0131\", \"\\u0131\");\ndefineSymbol(math, main, textord, \"\\u0237\", \"\\u0237\");\ndefineSymbol(symbols_text, main, textord, \"\\u0131\", \"\\\\i\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0237\", \"\\\\j\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xDF\", \"\\\\ss\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xE6\", \"\\\\ae\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0153\", \"\\\\oe\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xF8\", \"\\\\o\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xC6\", \"\\\\AE\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u0152\", \"\\\\OE\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xD8\", \"\\\\O\", true);\ndefineSymbol(symbols_text, main, accent, \"\\u02CA\", \"\\\\'\"); // acute\n\ndefineSymbol(symbols_text, main, accent, \"\\u02CB\", \"\\\\`\"); // grave\n\ndefineSymbol(symbols_text, main, accent, \"\\u02C6\", \"\\\\^\"); // circumflex\n\ndefineSymbol(symbols_text, main, accent, \"\\u02DC\", \"\\\\~\"); // tilde\n\ndefineSymbol(symbols_text, main, accent, \"\\u02C9\", \"\\\\=\"); // macron\n\ndefineSymbol(symbols_text, main, accent, \"\\u02D8\", \"\\\\u\"); // breve\n\ndefineSymbol(symbols_text, main, accent, \"\\u02D9\", \"\\\\.\"); // dot above\n\ndefineSymbol(symbols_text, main, accent, \"\\xB8\", \"\\\\c\"); // cedilla\n\ndefineSymbol(symbols_text, main, accent, \"\\u02DA\", \"\\\\r\"); // ring above\n\ndefineSymbol(symbols_text, main, accent, \"\\u02C7\", \"\\\\v\"); // caron\n\ndefineSymbol(symbols_text, main, accent, \"\\xA8\", '\\\\\"'); // diaresis\n\ndefineSymbol(symbols_text, main, accent, \"\\u02DD\", \"\\\\H\"); // double acute\n\ndefineSymbol(symbols_text, main, accent, \"\\u25EF\", \"\\\\textcircled\"); // \\bigcirc glyph\n// These ligatures are detected and created in Parser.js's `formLigatures`.\n\nvar ligatures = {\n \"--\": true,\n \"---\": true,\n \"``\": true,\n \"''\": true\n};\ndefineSymbol(symbols_text, main, textord, \"\\u2013\", \"--\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2013\", \"\\\\textendash\");\ndefineSymbol(symbols_text, main, textord, \"\\u2014\", \"---\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2014\", \"\\\\textemdash\");\ndefineSymbol(symbols_text, main, textord, \"\\u2018\", \"`\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2018\", \"\\\\textquoteleft\");\ndefineSymbol(symbols_text, main, textord, \"\\u2019\", \"'\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u2019\", \"\\\\textquoteright\");\ndefineSymbol(symbols_text, main, textord, \"\\u201C\", \"``\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u201C\", \"\\\\textquotedblleft\");\ndefineSymbol(symbols_text, main, textord, \"\\u201D\", \"''\", true);\ndefineSymbol(symbols_text, main, textord, \"\\u201D\", \"\\\\textquotedblright\"); // \\degree from gensymb package\n\ndefineSymbol(math, main, textord, \"\\xB0\", \"\\\\degree\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xB0\", \"\\\\degree\"); // \\textdegree from inputenc package\n\ndefineSymbol(symbols_text, main, textord, \"\\xB0\", \"\\\\textdegree\", true); // TODO: In LaTeX, \\pounds can generate a different character in text and math\n// mode, but among our fonts, only Main-Regular defines this character \"163\".\n\ndefineSymbol(math, main, textord, \"\\xA3\", \"\\\\pounds\");\ndefineSymbol(math, main, textord, \"\\xA3\", \"\\\\mathsterling\", true);\ndefineSymbol(symbols_text, main, textord, \"\\xA3\", \"\\\\pounds\");\ndefineSymbol(symbols_text, main, textord, \"\\xA3\", \"\\\\textsterling\", true);\ndefineSymbol(math, ams, textord, \"\\u2720\", \"\\\\maltese\");\ndefineSymbol(symbols_text, ams, textord, \"\\u2720\", \"\\\\maltese\"); // There are lots of symbols which are the same, so we add them in afterwards.\n// All of these are textords in math mode\n\nvar mathTextSymbols = \"0123456789/@.\\\"\";\n\nfor (var i = 0; i < mathTextSymbols.length; i++) {\n var ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n} // All of these are textords in text mode\n\n\nvar textSymbols = \"0123456789!@*()-=+\\\";:?/.,\";\n\nfor (var _i = 0; _i < textSymbols.length; _i++) {\n var _ch = textSymbols.charAt(_i);\n\n defineSymbol(symbols_text, main, textord, _ch, _ch);\n} // All of these are textords in text mode, and mathords in math mode\n\n\nvar letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nfor (var _i2 = 0; _i2 < letters.length; _i2++) {\n var _ch2 = letters.charAt(_i2);\n\n defineSymbol(math, main, mathord, _ch2, _ch2);\n defineSymbol(symbols_text, main, textord, _ch2, _ch2);\n} // Blackboard bold and script letters in Unicode range\n\n\ndefineSymbol(math, ams, textord, \"C\", \"\\u2102\"); // blackboard bold\n\ndefineSymbol(symbols_text, ams, textord, \"C\", \"\\u2102\");\ndefineSymbol(math, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(symbols_text, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(math, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(symbols_text, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(math, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(symbols_text, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(math, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(symbols_text, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(math, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(symbols_text, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(math, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(symbols_text, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(math, main, mathord, \"h\", \"\\u210E\"); // italic h, Planck constant\n\ndefineSymbol(symbols_text, main, mathord, \"h\", \"\\u210E\"); // The next loop loads wide (surrogate pair) characters.\n// We support some letters in the Unicode range U+1D400 to U+1D7FF,\n// Mathematical Alphanumeric Symbols.\n// Some editors do not deal well with wide characters. So don't write the\n// string into this file. Instead, create the string from the surrogate pair.\n\nvar wideChar = \"\";\n\nfor (var _i3 = 0; _i3 < letters.length; _i3++) {\n var _ch3 = letters.charAt(_i3); // The hex numbers in the next line are a surrogate pair.\n // 0xD835 is the high surrogate for all letters in the range we support.\n // 0xDC00 is the low surrogate for bold A.\n\n\n wideChar = String.fromCharCode(0xD835, 0xDC00 + _i3); // A-Z a-z bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC34 + _i3); // A-Z a-z italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC68 + _i3); // A-Z a-z bold italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD04 + _i3); // A-Z a-z Fractur\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDA0 + _i3); // A-Z a-z sans-serif\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDD4 + _i3); // A-Z a-z sans bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE08 + _i3); // A-Z a-z sans italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE70 + _i3); // A-Z a-z monospace\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n\n if (_i3 < 26) {\n // KaTeX fonts have only capital letters for blackboard bold and script.\n // See exception for k below.\n wideChar = String.fromCharCode(0xD835, 0xDD38 + _i3); // A-Z double struck\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC9C + _i3); // A-Z script\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(symbols_text, main, textord, _ch3, wideChar);\n } // TODO: Add bold script when it is supported by a KaTeX font.\n\n} // \"k\" is the only double struck lower case letter in the KaTeX fonts.\n\n\nwideChar = String.fromCharCode(0xD835, 0xDD5C); // k double struck\n\ndefineSymbol(math, main, mathord, \"k\", wideChar);\ndefineSymbol(symbols_text, main, textord, \"k\", wideChar); // Next, some wide character numerals\n\nfor (var _i4 = 0; _i4 < 10; _i4++) {\n var _ch4 = _i4.toString();\n\n wideChar = String.fromCharCode(0xD835, 0xDFCE + _i4); // 0-9 bold\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(symbols_text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFE2 + _i4); // 0-9 sans serif\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(symbols_text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFEC + _i4); // 0-9 bold sans\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(symbols_text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFF6 + _i4); // 0-9 monospace\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(symbols_text, main, textord, _ch4, wideChar);\n} // We add these Latin-1 letters as symbols for backwards-compatibility,\n// but they are not actually in the font, nor are they supported by the\n// Unicode accent mechanism, so they fall back to Times font and look ugly.\n// TODO(edemaine): Fix this.\n\n\nvar extraLatin = \"\\xD0\\xDE\\xFE\";\n\nfor (var _i5 = 0; _i5 < extraLatin.length; _i5++) {\n var _ch5 = extraLatin.charAt(_i5);\n\n defineSymbol(math, main, mathord, _ch5, _ch5);\n defineSymbol(symbols_text, main, textord, _ch5, _ch5);\n}\n;// CONCATENATED MODULE: ./src/wide-character.js\n/**\n * This file provides support for Unicode range U+1D400 to U+1D7FF,\n * Mathematical Alphanumeric Symbols.\n *\n * Function wideCharacterFont takes a wide character as input and returns\n * the font information necessary to render it properly.\n */\n\n/**\n * Data below is from https://www.unicode.org/charts/PDF/U1D400.pdf\n * That document sorts characters into groups by font type, say bold or italic.\n *\n * In the arrays below, each subarray consists three elements:\n * * The CSS class of that group when in math mode.\n * * The CSS class of that group when in text mode.\n * * The font name, so that KaTeX can get font metrics.\n */\n\nvar wideLatinLetterData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // A-Z bold upright\n[\"mathbf\", \"textbf\", \"Main-Bold\"], // a-z bold upright\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // A-Z italic\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // a-z italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // A-Z bold italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // a-z bold italic\n// Map fancy A-Z letters to script, not calligraphic.\n// This aligns with unicode-math and math fonts (except Cambria Math).\n[\"mathscr\", \"textscr\", \"Script-Regular\"], // A-Z script\n[\"\", \"\", \"\"], // a-z script. No font\n[\"\", \"\", \"\"], // A-Z bold script. No font\n[\"\", \"\", \"\"], // a-z bold script. No font\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // A-Z Fraktur\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // a-z Fraktur\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // A-Z double-struck\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // k double-struck\n[\"\", \"\", \"\"], // A-Z bold Fraktur No font metrics\n[\"\", \"\", \"\"], // a-z bold Fraktur. No font.\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // A-Z sans-serif\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // a-z sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // A-Z bold sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // a-z bold sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // A-Z italic sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // a-z italic sans-serif\n[\"\", \"\", \"\"], // A-Z bold italic sans. No font\n[\"\", \"\", \"\"], // a-z bold italic sans. No font\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"], // A-Z monospace\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // a-z monospace\n];\nvar wideNumeralData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // 0-9 bold\n[\"\", \"\", \"\"], // 0-9 double-struck. No KaTeX font.\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // 0-9 sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // 0-9 bold sans-serif\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // 0-9 monospace\n];\nvar wideCharacterFont = function wideCharacterFont(wideChar, mode) {\n // IE doesn't support codePointAt(). So work with the surrogate pair.\n var H = wideChar.charCodeAt(0); // high surrogate\n\n var L = wideChar.charCodeAt(1); // low surrogate\n\n var codePoint = (H - 0xD800) * 0x400 + (L - 0xDC00) + 0x10000;\n var j = mode === \"math\" ? 0 : 1; // column index for CSS class.\n\n if (0x1D400 <= codePoint && codePoint < 0x1D6A4) {\n // wideLatinLetterData contains exactly 26 chars on each row.\n // So we can calculate the relevant row. No traverse necessary.\n var i = Math.floor((codePoint - 0x1D400) / 26);\n return [wideLatinLetterData[i][2], wideLatinLetterData[i][j]];\n } else if (0x1D7CE <= codePoint && codePoint <= 0x1D7FF) {\n // Numerals, ten per row.\n var _i = Math.floor((codePoint - 0x1D7CE) / 10);\n\n return [wideNumeralData[_i][2], wideNumeralData[_i][j]];\n } else if (codePoint === 0x1D6A5 || codePoint === 0x1D6A6) {\n // dotless i or j\n return [wideLatinLetterData[0][2], wideLatinLetterData[0][j]];\n } else if (0x1D6A6 < codePoint && codePoint < 0x1D7CE) {\n // Greek letters. Not supported, yet.\n return [\"\", \"\"];\n } else {\n // We don't support any wide characters outside 1D400–1D7FF.\n throw new src_ParseError(\"Unsupported character: \" + wideChar);\n }\n};\n;// CONCATENATED MODULE: ./src/Options.js\n/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\nvar sizeStyleMap = [// Each element contains [textsize, scriptsize, scriptscriptsize].\n// The size mappings are taken from TeX with \\normalsize=10pt.\n[1, 1, 1], // size1: [5, 5, 5] \\tiny\n[2, 1, 1], // size2: [6, 5, 5]\n[3, 1, 1], // size3: [7, 5, 5] \\scriptsize\n[4, 2, 1], // size4: [8, 6, 5] \\footnotesize\n[5, 2, 1], // size5: [9, 6, 5] \\small\n[6, 3, 1], // size6: [10, 7, 5] \\normalsize\n[7, 4, 2], // size7: [12, 8, 6] \\large\n[8, 6, 3], // size8: [14.4, 10, 7] \\Large\n[9, 7, 6], // size9: [17.28, 12, 10] \\LARGE\n[10, 8, 7], // size10: [20.74, 14.4, 12] \\huge\n[11, 10, 9] // size11: [24.88, 20.74, 17.28] \\HUGE\n];\nvar sizeMultipliers = [// fontMetrics.js:getGlobalMetrics also uses size indexes, so if\n// you change size indexes, change that function.\n0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488];\n\nvar sizeAtStyle = function sizeAtStyle(size, style) {\n return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];\n}; // In these types, \"\" (empty string) means \"no change\".\n\n\n/**\n * This is the main options class. It contains the current style, size, color,\n * and font.\n *\n * Options objects should not be modified. To create a new Options with\n * different properties, call a `.having*` method.\n */\nvar Options = /*#__PURE__*/function () {\n // A font family applies to a group of fonts (i.e. SansSerif), while a font\n // represents a specific font (i.e. SansSerif Bold).\n // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm\n\n /**\n * The base size index.\n */\n function Options(data) {\n this.style = void 0;\n this.color = void 0;\n this.size = void 0;\n this.textSize = void 0;\n this.phantom = void 0;\n this.font = void 0;\n this.fontFamily = void 0;\n this.fontWeight = void 0;\n this.fontShape = void 0;\n this.sizeMultiplier = void 0;\n this.maxSize = void 0;\n this.minRuleThickness = void 0;\n this._fontMetrics = void 0;\n this.style = data.style;\n this.color = data.color;\n this.size = data.size || Options.BASESIZE;\n this.textSize = data.textSize || this.size;\n this.phantom = !!data.phantom;\n this.font = data.font || \"\";\n this.fontFamily = data.fontFamily || \"\";\n this.fontWeight = data.fontWeight || '';\n this.fontShape = data.fontShape || '';\n this.sizeMultiplier = sizeMultipliers[this.size - 1];\n this.maxSize = data.maxSize;\n this.minRuleThickness = data.minRuleThickness;\n this._fontMetrics = undefined;\n }\n /**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\n\n\n var _proto = Options.prototype;\n\n _proto.extend = function extend(extension) {\n var data = {\n style: this.style,\n size: this.size,\n textSize: this.textSize,\n color: this.color,\n phantom: this.phantom,\n font: this.font,\n fontFamily: this.fontFamily,\n fontWeight: this.fontWeight,\n fontShape: this.fontShape,\n maxSize: this.maxSize,\n minRuleThickness: this.minRuleThickness\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n }\n /**\n * Return an options object with the given style. If `this.style === style`,\n * returns `this`.\n */\n ;\n\n _proto.havingStyle = function havingStyle(style) {\n if (this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: sizeAtStyle(this.textSize, style)\n });\n }\n }\n /**\n * Return an options object with a cramped version of the current style. If\n * the current style is cramped, returns `this`.\n */\n ;\n\n _proto.havingCrampedStyle = function havingCrampedStyle() {\n return this.havingStyle(this.style.cramp());\n }\n /**\n * Return an options object with the given size and in at least `\\textstyle`.\n * Returns `this` if appropriate.\n */\n ;\n\n _proto.havingSize = function havingSize(size) {\n if (this.size === size && this.textSize === size) {\n return this;\n } else {\n return this.extend({\n style: this.style.text(),\n size: size,\n textSize: size,\n sizeMultiplier: sizeMultipliers[size - 1]\n });\n }\n }\n /**\n * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,\n * changes to at least `\\textstyle`.\n */\n ;\n\n _proto.havingBaseStyle = function havingBaseStyle(style) {\n style = style || this.style.text();\n var wantSize = sizeAtStyle(Options.BASESIZE, style);\n\n if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: wantSize\n });\n }\n }\n /**\n * Remove the effect of sizing changes such as \\Huge.\n * Keep the effect of the current style, such as \\scriptstyle.\n */\n ;\n\n _proto.havingBaseSizing = function havingBaseSizing() {\n var size;\n\n switch (this.style.id) {\n case 4:\n case 5:\n size = 3; // normalsize in scriptstyle\n\n break;\n\n case 6:\n case 7:\n size = 1; // normalsize in scriptscriptstyle\n\n break;\n\n default:\n size = 6;\n // normalsize in textstyle or displaystyle\n }\n\n return this.extend({\n style: this.style.text(),\n size: size\n });\n }\n /**\n * Create a new options object with the given color.\n */\n ;\n\n _proto.withColor = function withColor(color) {\n return this.extend({\n color: color\n });\n }\n /**\n * Create a new options object with \"phantom\" set to true.\n */\n ;\n\n _proto.withPhantom = function withPhantom() {\n return this.extend({\n phantom: true\n });\n }\n /**\n * Creates a new options object with the given math font or old text font.\n * @type {[type]}\n */\n ;\n\n _proto.withFont = function withFont(font) {\n return this.extend({\n font: font\n });\n }\n /**\n * Create a new options objects with the given fontFamily.\n */\n ;\n\n _proto.withTextFontFamily = function withTextFontFamily(fontFamily) {\n return this.extend({\n fontFamily: fontFamily,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n ;\n\n _proto.withTextFontWeight = function withTextFontWeight(fontWeight) {\n return this.extend({\n fontWeight: fontWeight,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n ;\n\n _proto.withTextFontShape = function withTextFontShape(fontShape) {\n return this.extend({\n fontShape: fontShape,\n font: \"\"\n });\n }\n /**\n * Return the CSS sizing classes required to switch from enclosing options\n * `oldOptions` to `this`. Returns an array of classes.\n */\n ;\n\n _proto.sizingClasses = function sizingClasses(oldOptions) {\n if (oldOptions.size !== this.size) {\n return [\"sizing\", \"reset-size\" + oldOptions.size, \"size\" + this.size];\n } else {\n return [];\n }\n }\n /**\n * Return the CSS sizing classes required to switch to the base size. Like\n * `this.havingSize(BASESIZE).sizingClasses(this)`.\n */\n ;\n\n _proto.baseSizingClasses = function baseSizingClasses() {\n if (this.size !== Options.BASESIZE) {\n return [\"sizing\", \"reset-size\" + this.size, \"size\" + Options.BASESIZE];\n } else {\n return [];\n }\n }\n /**\n * Return the font metrics for this size.\n */\n ;\n\n _proto.fontMetrics = function fontMetrics() {\n if (!this._fontMetrics) {\n this._fontMetrics = getGlobalMetrics(this.size);\n }\n\n return this._fontMetrics;\n }\n /**\n * Gets the CSS color of the current options object\n */\n ;\n\n _proto.getColor = function getColor() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return this.color;\n }\n };\n\n return Options;\n}();\n\nOptions.BASESIZE = 6;\n/* harmony default export */ var src_Options = (Options);\n;// CONCATENATED MODULE: ./src/units.js\n/**\n * This file does conversion between units. In particular, it provides\n * calculateSize to convert other units into ems.\n */\n\n // This table gives the number of TeX pts in one of each *absolute* TeX unit.\n// Thus, multiplying a length by this number converts the length from units\n// into pts. Dividing the result by ptPerEm gives the number of ems\n// *assuming* a font size of ptPerEm (normal size, normal style).\n\nvar ptPerUnit = {\n // https://en.wikibooks.org/wiki/LaTeX/Lengths and\n // https://tex.stackexchange.com/a/8263\n \"pt\": 1,\n // TeX point\n \"mm\": 7227 / 2540,\n // millimeter\n \"cm\": 7227 / 254,\n // centimeter\n \"in\": 72.27,\n // inch\n \"bp\": 803 / 800,\n // big (PostScript) points\n \"pc\": 12,\n // pica\n \"dd\": 1238 / 1157,\n // didot\n \"cc\": 14856 / 1157,\n // cicero (12 didot)\n \"nd\": 685 / 642,\n // new didot\n \"nc\": 1370 / 107,\n // new cicero (12 new didot)\n \"sp\": 1 / 65536,\n // scaled point (TeX's internal smallest unit)\n // https://tex.stackexchange.com/a/41371\n \"px\": 803 / 800 // \\pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX\n\n}; // Dictionary of relative units, for fast validity testing.\n\nvar relativeUnit = {\n \"ex\": true,\n \"em\": true,\n \"mu\": true\n};\n\n/**\n * Determine whether the specified unit (either a string defining the unit\n * or a \"size\" parse node containing a unit field) is valid.\n */\nvar validUnit = function validUnit(unit) {\n if (typeof unit !== \"string\") {\n unit = unit.unit;\n }\n\n return unit in ptPerUnit || unit in relativeUnit || unit === \"ex\";\n};\n/*\n * Convert a \"size\" parse node (with numeric \"number\" and string \"unit\" fields,\n * as parsed by functions.js argType \"size\") into a CSS em value for the\n * current style/scale. `options` gives the current options.\n */\n\nvar calculateSize = function calculateSize(sizeValue, options) {\n var scale;\n\n if (sizeValue.unit in ptPerUnit) {\n // Absolute units\n scale = ptPerUnit[sizeValue.unit] // Convert unit to pt\n / options.fontMetrics().ptPerEm // Convert pt to CSS em\n / options.sizeMultiplier; // Unscale to make absolute units\n } else if (sizeValue.unit === \"mu\") {\n // `mu` units scale with scriptstyle/scriptscriptstyle.\n scale = options.fontMetrics().cssEmPerMu;\n } else {\n // Other relative units always refer to the *textstyle* font\n // in the current size.\n var unitOptions;\n\n if (options.style.isTight()) {\n // isTight() means current style is script/scriptscript.\n unitOptions = options.havingStyle(options.style.text());\n } else {\n unitOptions = options;\n } // TODO: In TeX these units are relative to the quad of the current\n // *text* font, e.g. cmr10. KaTeX instead uses values from the\n // comparably-sized *Computer Modern symbol* font. At 10pt, these\n // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641;\n // cmr5=1.361133, cmsy5=1.472241. Consider $\\scriptsize a\\kern1emb$.\n // TeX \\showlists shows a kern of 1.13889 * fontsize;\n // KaTeX shows a kern of 1.171 * fontsize.\n\n\n if (sizeValue.unit === \"ex\") {\n scale = unitOptions.fontMetrics().xHeight;\n } else if (sizeValue.unit === \"em\") {\n scale = unitOptions.fontMetrics().quad;\n } else {\n throw new src_ParseError(\"Invalid unit: '\" + sizeValue.unit + \"'\");\n }\n\n if (unitOptions !== options) {\n scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n return Math.min(sizeValue.number * scale, options.maxSize);\n};\n;// CONCATENATED MODULE: ./src/buildCommon.js\n/* eslint no-console:0 */\n\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\n\n\n\n\n\n\n/**\n * Looks up the given symbol in fontMetrics, after applying any symbol\n * replacements defined in symbol.js\n */\nvar lookupSymbol = function lookupSymbol(value, // TODO(#963): Use a union type for this.\nfontName, mode) {\n // Replace the value with its replaced value from symbol.js\n if (src_symbols[mode][value] && src_symbols[mode][value].replace) {\n value = src_symbols[mode][value].replace;\n }\n\n return {\n value: value,\n metrics: getCharacterMetrics(value, fontName, mode)\n };\n};\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n *\n * TODO: make argument order closer to makeSpan\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\n\n\nvar makeSymbol = function makeSymbol(value, fontName, mode, options, classes) {\n var lookup = lookupSymbol(value, fontName, mode);\n var metrics = lookup.metrics;\n value = lookup.value;\n var symbolNode;\n\n if (metrics) {\n var italic = metrics.italic;\n\n if (mode === \"text\" || options && options.font === \"mathit\") {\n italic = 0;\n }\n\n symbolNode = new SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\"No character metrics \" + (\"for '\" + value + \"' in style '\" + fontName + \"' and mode '\" + mode + \"'\"));\n symbolNode = new SymbolNode(value, 0, 0, 0, 0, 0, classes);\n }\n\n if (options) {\n symbolNode.maxFontSize = options.sizeMultiplier;\n\n if (options.style.isTight()) {\n symbolNode.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n symbolNode.style.color = color;\n }\n }\n\n return symbolNode;\n};\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\n\n\nvar mathsym = function mathsym(value, mode, options, classes) {\n if (classes === void 0) {\n classes = [];\n }\n\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text, as well as a special case for boldsymbol because it\n // can be used for bold + and -\n if (options.font === \"boldsymbol\" && lookupSymbol(value, \"Main-Bold\", mode).metrics) {\n return makeSymbol(value, \"Main-Bold\", mode, options, classes.concat([\"mathbf\"]));\n } else if (value === \"\\\\\" || src_symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, options, classes);\n } else {\n return makeSymbol(value, \"AMS-Regular\", mode, options, classes.concat([\"amsrm\"]));\n }\n};\n/**\n * Determines which of the two font names (Main-Bold and Math-BoldItalic) and\n * corresponding style tags (mathbf or boldsymbol) to use for font \"boldsymbol\",\n * depending on the symbol. Use this function instead of fontMap for font\n * \"boldsymbol\".\n */\n\n\nvar boldsymbol = function boldsymbol(value, mode, options, classes, type) {\n if (type !== \"textord\" && lookupSymbol(value, \"Math-BoldItalic\", mode).metrics) {\n return {\n fontName: \"Math-BoldItalic\",\n fontClass: \"boldsymbol\"\n };\n } else {\n // Some glyphs do not exist in Math-BoldItalic so we need to use\n // Main-Bold instead.\n return {\n fontName: \"Main-Bold\",\n fontClass: \"mathbf\"\n };\n }\n};\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\n\n\nvar makeOrd = function makeOrd(group, options, type) {\n var mode = group.mode;\n var text = group.text;\n var classes = [\"mord\"]; // Math mode or Old font (i.e. \\rm)\n\n var isFont = mode === \"math\" || mode === \"text\" && options.font;\n var fontOrFamily = isFont ? options.font : options.fontFamily;\n\n if (text.charCodeAt(0) === 0xD835) {\n // surrogate pairs get special treatment\n var _wideCharacterFont = wideCharacterFont(text, mode),\n wideFontName = _wideCharacterFont[0],\n wideFontClass = _wideCharacterFont[1];\n\n return makeSymbol(text, wideFontName, mode, options, classes.concat(wideFontClass));\n } else if (fontOrFamily) {\n var fontName;\n var fontClasses;\n\n if (fontOrFamily === \"boldsymbol\") {\n var fontData = boldsymbol(text, mode, options, classes, type);\n fontName = fontData.fontName;\n fontClasses = [fontData.fontClass];\n } else if (isFont) {\n fontName = fontMap[fontOrFamily].fontName;\n fontClasses = [fontOrFamily];\n } else {\n fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape);\n fontClasses = [fontOrFamily, options.fontWeight, options.fontShape];\n }\n\n if (lookupSymbol(text, fontName, mode).metrics) {\n return makeSymbol(text, fontName, mode, options, classes.concat(fontClasses));\n } else if (ligatures.hasOwnProperty(text) && fontName.substr(0, 10) === \"Typewriter\") {\n // Deconstruct ligatures in monospace fonts (\\texttt, \\tt).\n var parts = [];\n\n for (var i = 0; i < text.length; i++) {\n parts.push(makeSymbol(text[i], fontName, mode, options, classes.concat(fontClasses)));\n }\n\n return makeFragment(parts);\n }\n } // Makes a symbol in the default font for mathords and textords.\n\n\n if (type === \"mathord\") {\n return makeSymbol(text, \"Math-Italic\", mode, options, classes.concat([\"mathnormal\"]));\n } else if (type === \"textord\") {\n var font = src_symbols[mode][text] && src_symbols[mode][text].font;\n\n if (font === \"ams\") {\n var _fontName = retrieveTextFontName(\"amsrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName, mode, options, classes.concat(\"amsrm\", options.fontWeight, options.fontShape));\n } else if (font === \"main\" || !font) {\n var _fontName2 = retrieveTextFontName(\"textrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape));\n } else {\n // fonts added by plugins\n var _fontName3 = retrieveTextFontName(font, options.fontWeight, options.fontShape); // We add font name as a css class\n\n\n return makeSymbol(text, _fontName3, mode, options, classes.concat(_fontName3, options.fontWeight, options.fontShape));\n }\n } else {\n throw new Error(\"unexpected type: \" + type + \" in makeOrd\");\n }\n};\n/**\n * Returns true if subsequent symbolNodes have the same classes, skew, maxFont,\n * and styles.\n */\n\n\nvar canCombine = function canCombine(prev, next) {\n if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) {\n return false;\n } // If prev and next both are just \"mbin\"s or \"mord\"s we don't combine them\n // so that the proper spacing can be preserved.\n\n\n if (prev.classes.length === 1) {\n var cls = prev.classes[0];\n\n if (cls === \"mbin\" || cls === \"mord\") {\n return false;\n }\n }\n\n for (var style in prev.style) {\n if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {\n return false;\n }\n }\n\n for (var _style in next.style) {\n if (next.style.hasOwnProperty(_style) && prev.style[_style] !== next.style[_style]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Combine consecutive domTree.symbolNodes into a single symbolNode.\n * Note: this function mutates the argument.\n */\n\n\nvar tryCombineChars = function tryCombineChars(chars) {\n for (var i = 0; i < chars.length - 1; i++) {\n var prev = chars[i];\n var next = chars[i + 1];\n\n if (prev instanceof SymbolNode && next instanceof SymbolNode && canCombine(prev, next)) {\n prev.text += next.text;\n prev.height = Math.max(prev.height, next.height);\n prev.depth = Math.max(prev.depth, next.depth); // Use the last character's italic correction since we use\n // it to add padding to the right of the span created from\n // the combined characters.\n\n prev.italic = next.italic;\n chars.splice(i + 1, 1);\n i--;\n }\n }\n\n return chars;\n};\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\n\n\nvar sizeElementFromChildren = function sizeElementFromChildren(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n for (var i = 0; i < elem.children.length; i++) {\n var child = elem.children[i];\n\n if (child.height > height) {\n height = child.height;\n }\n\n if (child.depth > depth) {\n depth = child.depth;\n }\n\n if (child.maxFontSize > maxFontSize) {\n maxFontSize = child.maxFontSize;\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n/**\n * Makes a span with the given list of classes, list of children, and options.\n *\n * TODO(#953): Ensure that `options` is always provided (currently some call\n * sites don't pass it) and make the type below mandatory.\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n */\n\n\nvar makeSpan = function makeSpan(classes, children, options, style) {\n var span = new Span(classes, children, options, style);\n sizeElementFromChildren(span);\n return span;\n}; // SVG one is simpler -- doesn't require height, depth, max-font setting.\n// This is also a separate method for typesafety.\n\n\nvar makeSvgSpan = function makeSvgSpan(classes, children, options, style) {\n return new Span(classes, children, options, style);\n};\n\nvar makeLineSpan = function makeLineSpan(className, options, thickness) {\n var line = makeSpan([className], [], options);\n line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n line.style.borderBottomWidth = line.height + \"em\";\n line.maxFontSize = 1.0;\n return line;\n};\n/**\n * Makes an anchor with the given href, list of classes, list of children,\n * and options.\n */\n\n\nvar makeAnchor = function makeAnchor(href, classes, children, options) {\n var anchor = new Anchor(href, classes, children, options);\n sizeElementFromChildren(anchor);\n return anchor;\n};\n/**\n * Makes a document fragment with the given list of children.\n */\n\n\nvar makeFragment = function makeFragment(children) {\n var fragment = new DocumentFragment(children);\n sizeElementFromChildren(fragment);\n return fragment;\n};\n/**\n * Wraps group in a span if it's a document fragment, allowing to apply classes\n * and styles\n */\n\n\nvar wrapFragment = function wrapFragment(group, options) {\n if (group instanceof DocumentFragment) {\n return makeSpan([], [group], options);\n }\n\n return group;\n}; // These are exact object types to catch typos in the names of the optional fields.\n\n\n// Computes the updated `children` list and the overall depth.\n//\n// This helper function for makeVList makes it easier to enforce type safety by\n// allowing early exits (returns) in the logic.\nvar getVListChildrenAndDepth = function getVListChildrenAndDepth(params) {\n if (params.positionType === \"individualShift\") {\n var oldChildren = params.children;\n var children = [oldChildren[0]]; // Add in kerns to the list of params.children to get each element to be\n // shifted to the correct specified shift\n\n var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n\n var currPos = _depth;\n\n for (var i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth;\n var size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth);\n currPos = currPos + diff;\n children.push({\n type: \"kern\",\n size: size\n });\n children.push(oldChildren[i]);\n }\n\n return {\n children: children,\n depth: _depth\n };\n }\n\n var depth;\n\n if (params.positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = params.positionData;\n\n for (var _i = 0; _i < params.children.length; _i++) {\n var child = params.children[_i];\n bottom -= child.type === \"kern\" ? child.size : child.elem.height + child.elem.depth;\n }\n\n depth = bottom;\n } else if (params.positionType === \"bottom\") {\n depth = -params.positionData;\n } else {\n var firstChild = params.children[0];\n\n if (firstChild.type !== \"elem\") {\n throw new Error('First child must have type \"elem\".');\n }\n\n if (params.positionType === \"shift\") {\n depth = -firstChild.elem.depth - params.positionData;\n } else if (params.positionType === \"firstBaseline\") {\n depth = -firstChild.elem.depth;\n } else {\n throw new Error(\"Invalid positionType \" + params.positionType + \".\");\n }\n }\n\n return {\n children: params.children,\n depth: depth\n };\n};\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * See VListParam documentation above.\n */\n\n\nvar makeVList = function makeVList(params, options) {\n var _getVListChildrenAndD = getVListChildrenAndDepth(params),\n children = _getVListChildrenAndD.children,\n depth = _getVListChildrenAndD.depth; // Create a strut that is taller than any list item. The strut is added to\n // each item, where it will determine the item's baseline. Since it has\n // `overflow:hidden`, the strut's top edge will sit on the item's line box's\n // top edge and the strut's bottom edge will sit on the item's baseline,\n // with no additional line-height spacing. This allows the item baseline to\n // be positioned precisely without worrying about font ascent and\n // line-height.\n\n\n var pstrutSize = 0;\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.type === \"elem\") {\n var elem = child.elem;\n pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);\n }\n }\n\n pstrutSize += 2;\n var pstrut = makeSpan([\"pstrut\"], []);\n pstrut.style.height = pstrutSize + \"em\"; // Create a new list of actual children at the correct offsets\n\n var realChildren = [];\n var minPos = depth;\n var maxPos = depth;\n var currPos = depth;\n\n for (var _i2 = 0; _i2 < children.length; _i2++) {\n var _child = children[_i2];\n\n if (_child.type === \"kern\") {\n currPos += _child.size;\n } else {\n var _elem = _child.elem;\n var classes = _child.wrapperClasses || [];\n var style = _child.wrapperStyle || {};\n var childWrap = makeSpan(classes, [pstrut, _elem], undefined, style);\n childWrap.style.top = -pstrutSize - currPos - _elem.depth + \"em\";\n\n if (_child.marginLeft) {\n childWrap.style.marginLeft = _child.marginLeft;\n }\n\n if (_child.marginRight) {\n childWrap.style.marginRight = _child.marginRight;\n }\n\n realChildren.push(childWrap);\n currPos += _elem.height + _elem.depth;\n }\n\n minPos = Math.min(minPos, currPos);\n maxPos = Math.max(maxPos, currPos);\n } // The vlist contents go in a table-cell with `vertical-align:bottom`.\n // This cell's bottom edge will determine the containing table's baseline\n // without overly expanding the containing line-box.\n\n\n var vlist = makeSpan([\"vlist\"], realChildren);\n vlist.style.height = maxPos + \"em\"; // A second row is used if necessary to represent the vlist's depth.\n\n var rows;\n\n if (minPos < 0) {\n // We will define depth in an empty span with display: table-cell.\n // It should render with the height that we define. But Chrome, in\n // contenteditable mode only, treats that span as if it contains some\n // text content. And that min-height over-rides our desired height.\n // So we put another empty span inside the depth strut span.\n var emptySpan = makeSpan([], []);\n var depthStrut = makeSpan([\"vlist\"], [emptySpan]);\n depthStrut.style.height = -minPos + \"em\"; // Safari wants the first row to have inline content; otherwise it\n // puts the bottom of the *second* row on the baseline.\n\n var topStrut = makeSpan([\"vlist-s\"], [new SymbolNode(\"\\u200B\")]);\n rows = [makeSpan([\"vlist-r\"], [vlist, topStrut]), makeSpan([\"vlist-r\"], [depthStrut])];\n } else {\n rows = [makeSpan([\"vlist-r\"], [vlist])];\n }\n\n var vtable = makeSpan([\"vlist-t\"], rows);\n\n if (rows.length === 2) {\n vtable.classes.push(\"vlist-t2\");\n }\n\n vtable.height = maxPos;\n vtable.depth = -minPos;\n return vtable;\n}; // Glue is a concept from TeX which is a flexible space between elements in\n// either a vertical or horizontal list. In KaTeX, at least for now, it's\n// static space between elements in a horizontal layout.\n\n\nvar makeGlue = function makeGlue(measurement, options) {\n // Make an empty span for the space\n var rule = makeSpan([\"mspace\"], [], options);\n var size = calculateSize(measurement, options);\n rule.style.marginRight = size + \"em\";\n return rule;\n}; // Takes font options, and returns the appropriate fontLookup name\n\n\nvar retrieveTextFontName = function retrieveTextFontName(fontFamily, fontWeight, fontShape) {\n var baseFontName = \"\";\n\n switch (fontFamily) {\n case \"amsrm\":\n baseFontName = \"AMS\";\n break;\n\n case \"textrm\":\n baseFontName = \"Main\";\n break;\n\n case \"textsf\":\n baseFontName = \"SansSerif\";\n break;\n\n case \"texttt\":\n baseFontName = \"Typewriter\";\n break;\n\n default:\n baseFontName = fontFamily;\n // use fonts added by a plugin\n }\n\n var fontStylesName;\n\n if (fontWeight === \"textbf\" && fontShape === \"textit\") {\n fontStylesName = \"BoldItalic\";\n } else if (fontWeight === \"textbf\") {\n fontStylesName = \"Bold\";\n } else if (fontWeight === \"textit\") {\n fontStylesName = \"Italic\";\n } else {\n fontStylesName = \"Regular\";\n }\n\n return baseFontName + \"-\" + fontStylesName;\n};\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\n\n\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\"\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\"\n },\n \"textit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathnormal\": {\n variant: \"italic\",\n fontName: \"Math-Italic\"\n },\n // \"boldsymbol\" is missing because they require the use of multiple fonts:\n // Math-BoldItalic and Main-Bold. This is handled by a special case in\n // makeOrd which ends up calling boldsymbol.\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\"\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\"\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\"\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\"\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\"\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\"\n }\n};\nvar svgData = {\n // path, width, height\n vec: [\"vec\", 0.471, 0.714],\n // values from the font glyph\n oiintSize1: [\"oiintSize1\", 0.957, 0.499],\n // oval to overlay the integrand\n oiintSize2: [\"oiintSize2\", 1.472, 0.659],\n oiiintSize1: [\"oiiintSize1\", 1.304, 0.499],\n oiiintSize2: [\"oiiintSize2\", 1.98, 0.659]\n};\n\nvar staticSvg = function staticSvg(value, options) {\n // Create a span with inline SVG for the element.\n var _svgData$value = svgData[value],\n pathName = _svgData$value[0],\n width = _svgData$value[1],\n height = _svgData$value[2];\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": width + \"em\",\n \"height\": height + \"em\",\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + width + \"em\",\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + 1000 * height,\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = makeSvgSpan([\"overlay\"], [svgNode], options);\n span.height = height;\n span.style.height = height + \"em\";\n span.style.width = width + \"em\";\n return span;\n};\n\n/* harmony default export */ var buildCommon = ({\n fontMap: fontMap,\n makeSymbol: makeSymbol,\n mathsym: mathsym,\n makeSpan: makeSpan,\n makeSvgSpan: makeSvgSpan,\n makeLineSpan: makeLineSpan,\n makeAnchor: makeAnchor,\n makeFragment: makeFragment,\n wrapFragment: wrapFragment,\n makeVList: makeVList,\n makeOrd: makeOrd,\n makeGlue: makeGlue,\n staticSvg: staticSvg,\n svgData: svgData,\n tryCombineChars: tryCombineChars\n});\n;// CONCATENATED MODULE: ./src/spacingData.js\n/**\n * Describes spaces between different classes of atoms.\n */\nvar thinspace = {\n number: 3,\n unit: \"mu\"\n};\nvar mediumspace = {\n number: 4,\n unit: \"mu\"\n};\nvar thickspace = {\n number: 5,\n unit: \"mu\"\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n\n// Spacing relationships for display and text styles\nvar spacings = {\n mord: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n minner: thinspace\n },\n mbin: {\n mord: mediumspace,\n mop: mediumspace,\n mopen: mediumspace,\n minner: mediumspace\n },\n mrel: {\n mord: thickspace,\n mop: thickspace,\n mopen: thickspace,\n minner: thickspace\n },\n mopen: {},\n mclose: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mpunct: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n mopen: thinspace,\n mclose: thinspace,\n mpunct: thinspace,\n minner: thinspace\n },\n minner: {\n mord: thinspace,\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n mopen: thinspace,\n mpunct: thinspace,\n minner: thinspace\n }\n}; // Spacing relationships for script and scriptscript styles\n\nvar tightSpacings = {\n mord: {\n mop: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace\n },\n mbin: {},\n mrel: {},\n mopen: {},\n mclose: {\n mop: thinspace\n },\n mpunct: {},\n minner: {\n mop: thinspace\n }\n};\n;// CONCATENATED MODULE: ./src/defineFunction.js\n/** Context provided to function handlers for error messages. */\n// Note: reverse the order of the return type union will cause a flow error.\n// See https://github.com/facebook/flow/issues/3663.\n// More general version of `HtmlBuilder` for nodes (e.g. \\sum, accent types)\n// whose presence impacts super/subscripting. In this case, ParseNode<\"supsub\">\n// delegates its HTML building to the HtmlBuilder corresponding to these nodes.\n\n/**\n * Final function spec for use at parse time.\n * This is almost identical to `FunctionPropSpec`, except it\n * 1. includes the function handler, and\n * 2. requires all arguments except argTypes.\n * It is generated by `defineFunction()` below.\n */\n\n/**\n * All registered functions.\n * `functions.js` just exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary.\n */\nvar _functions = {};\n/**\n * All HTML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _htmlGroupBuilders = {};\n/**\n * All MathML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _mathmlGroupBuilders = {};\nfunction defineFunction(_ref) {\n var type = _ref.type,\n names = _ref.names,\n props = _ref.props,\n handler = _ref.handler,\n htmlBuilder = _ref.htmlBuilder,\n mathmlBuilder = _ref.mathmlBuilder;\n // Set default values of functions\n var data = {\n type: type,\n numArgs: props.numArgs,\n argTypes: props.argTypes,\n allowedInArgument: !!props.allowedInArgument,\n allowedInText: !!props.allowedInText,\n allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,\n numOptionalArgs: props.numOptionalArgs || 0,\n infix: !!props.infix,\n primitive: !!props.primitive,\n handler: handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n _functions[names[i]] = data;\n }\n\n if (type) {\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n }\n}\n/**\n * Use this to register only the HTML and MathML builders for a function (e.g.\n * if the function's ParseNode is generated in Parser.js rather than via a\n * stand-alone handler provided to `defineFunction`).\n */\n\nfunction defineFunctionBuilders(_ref2) {\n var type = _ref2.type,\n htmlBuilder = _ref2.htmlBuilder,\n mathmlBuilder = _ref2.mathmlBuilder;\n defineFunction({\n type: type,\n names: [],\n props: {\n numArgs: 0\n },\n handler: function handler() {\n throw new Error('Should never be called.');\n },\n htmlBuilder: htmlBuilder,\n mathmlBuilder: mathmlBuilder\n });\n}\nvar normalizeArgument = function normalizeArgument(arg) {\n return arg.type === \"ordgroup\" && arg.body.length === 1 ? arg.body[0] : arg;\n}; // Since the corresponding buildHTML/buildMathML function expects a\n// list of elements, we normalize for different kinds of arguments\n\nvar ordargument = function ordargument(arg) {\n return arg.type === \"ordgroup\" ? arg.body : [arg];\n};\n;// CONCATENATED MODULE: ./src/buildHTML.js\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupBuilders functions\n * are called, to produce a final HTML tree.\n */\n\n\n\n\n\n\n\n\nvar buildHTML_makeSpan = buildCommon.makeSpan; // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`)\n// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6,\n// and the text before Rule 19.\n\nvar binLeftCanceller = [\"leftmost\", \"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"];\nvar binRightCanceller = [\"rightmost\", \"mrel\", \"mclose\", \"mpunct\"];\nvar styleMap = {\n \"display\": src_Style.DISPLAY,\n \"text\": src_Style.TEXT,\n \"script\": src_Style.SCRIPT,\n \"scriptscript\": src_Style.SCRIPTSCRIPT\n};\nvar DomEnum = {\n mord: \"mord\",\n mop: \"mop\",\n mbin: \"mbin\",\n mrel: \"mrel\",\n mopen: \"mopen\",\n mclose: \"mclose\",\n mpunct: \"mpunct\",\n minner: \"minner\"\n};\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. documentFragments are flattened into their contents, so the\n * returned list contains no fragments. `isRealGroup` is true if `expression`\n * is a real group (no atoms will be added on either side), as opposed to\n * a partial group (e.g. one created by \\color). `surrounding` is an array\n * consisting type of nodes that will be added to the left and right.\n */\nvar buildExpression = function buildExpression(expression, options, isRealGroup, surrounding) {\n if (surrounding === void 0) {\n surrounding = [null, null];\n }\n\n // Parse expressions into `groups`.\n var groups = [];\n\n for (var i = 0; i < expression.length; i++) {\n var output = buildGroup(expression[i], options);\n\n if (output instanceof DocumentFragment) {\n var children = output.children;\n groups.push.apply(groups, children);\n } else {\n groups.push(output);\n }\n } // Combine consecutive domTree.symbolNodes into a single symbolNode.\n\n\n buildCommon.tryCombineChars(groups); // If `expression` is a partial group, let the parent handle spacings\n // to avoid processing groups multiple times.\n\n if (!isRealGroup) {\n return groups;\n }\n\n var glueOptions = options;\n\n if (expression.length === 1) {\n var node = expression[0];\n\n if (node.type === \"sizing\") {\n glueOptions = options.havingSize(node.size);\n } else if (node.type === \"styling\") {\n glueOptions = options.havingStyle(styleMap[node.style]);\n }\n } // Dummy spans for determining spacings between surrounding atoms.\n // If `expression` has no atoms on the left or right, class \"leftmost\"\n // or \"rightmost\", respectively, is used to indicate it.\n\n\n var dummyPrev = buildHTML_makeSpan([surrounding[0] || \"leftmost\"], [], options);\n var dummyNext = buildHTML_makeSpan([surrounding[1] || \"rightmost\"], [], options); // TODO: These code assumes that a node's math class is the first element\n // of its `classes` array. A later cleanup should ensure this, for\n // instance by changing the signature of `makeSpan`.\n // Before determining what spaces to insert, perform bin cancellation.\n // Binary operators change to ordinary symbols in some contexts.\n\n var isRoot = isRealGroup === \"root\";\n traverseNonSpaceNodes(groups, function (node, prev) {\n var prevType = prev.classes[0];\n var type = node.classes[0];\n\n if (prevType === \"mbin\" && utils.contains(binRightCanceller, type)) {\n prev.classes[0] = \"mord\";\n } else if (type === \"mbin\" && utils.contains(binLeftCanceller, prevType)) {\n node.classes[0] = \"mord\";\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n traverseNonSpaceNodes(groups, function (node, prev) {\n var prevType = getTypeOfDomTree(prev);\n var type = getTypeOfDomTree(node); // 'mtight' indicates that the node is script or scriptscript style.\n\n var space = prevType && type ? node.hasClass(\"mtight\") ? tightSpacings[prevType][type] : spacings[prevType][type] : null;\n\n if (space) {\n // Insert glue (spacing) after the `prev`.\n return buildCommon.makeGlue(space, glueOptions);\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n return groups;\n}; // Depth-first traverse non-space `nodes`, calling `callback` with the current and\n// previous node as arguments, optionally returning a node to insert after the\n// previous node. `prev` is an object with the previous node and `insertAfter`\n// function to insert after it. `next` is a node that will be added to the right.\n// Used for bin cancellation and inserting spacings.\n\nvar traverseNonSpaceNodes = function traverseNonSpaceNodes(nodes, callback, prev, next, isRoot) {\n if (next) {\n // temporarily append the right node, if exists\n nodes.push(next);\n }\n\n var i = 0;\n\n for (; i < nodes.length; i++) {\n var node = nodes[i];\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n // Recursive DFS\n // $FlowFixMe: make nodes a $ReadOnlyArray by returning a new array\n traverseNonSpaceNodes(partialGroup.children, callback, prev, null, isRoot);\n continue;\n } // Ignore explicit spaces (e.g., \\;, \\,) when determining what implicit\n // spacing should go between atoms of different classes\n\n\n var nonspace = !node.hasClass(\"mspace\");\n\n if (nonspace) {\n var result = callback(node, prev.node);\n\n if (result) {\n if (prev.insertAfter) {\n prev.insertAfter(result);\n } else {\n // insert at front\n nodes.unshift(result);\n i++;\n }\n }\n }\n\n if (nonspace) {\n prev.node = node;\n } else if (isRoot && node.hasClass(\"newline\")) {\n prev.node = buildHTML_makeSpan([\"leftmost\"]); // treat like beginning of line\n }\n\n prev.insertAfter = function (index) {\n return function (n) {\n nodes.splice(index + 1, 0, n);\n i++;\n };\n }(i);\n }\n\n if (next) {\n nodes.pop();\n }\n}; // Check if given node is a partial group, i.e., does not affect spacing around.\n\n\nvar checkPartialGroup = function checkPartialGroup(node) {\n if (node instanceof DocumentFragment || node instanceof Anchor || node instanceof Span && node.hasClass(\"enclosing\")) {\n return node;\n }\n\n return null;\n}; // Return the outermost node of a domTree.\n\n\nvar getOutermostNode = function getOutermostNode(node, side) {\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n var children = partialGroup.children;\n\n if (children.length) {\n if (side === \"right\") {\n return getOutermostNode(children[children.length - 1], \"right\");\n } else if (side === \"left\") {\n return getOutermostNode(children[0], \"left\");\n }\n }\n }\n\n return node;\n}; // Return math atom class (mclass) of a domTree.\n// If `side` is given, it will get the type of the outermost node at given side.\n\n\nvar getTypeOfDomTree = function getTypeOfDomTree(node, side) {\n if (!node) {\n return null;\n }\n\n if (side) {\n node = getOutermostNode(node, side);\n } // This makes a lot of assumptions as to where the type of atom\n // appears. We should do a better job of enforcing this.\n\n\n return DomEnum[node.classes[0]] || null;\n};\nvar makeNullDelimiter = function makeNullDelimiter(options, classes) {\n var moreClasses = [\"nulldelimiter\"].concat(options.baseSizingClasses());\n return buildHTML_makeSpan(classes.concat(moreClasses));\n};\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\n\nvar buildGroup = function buildGroup(group, options, baseOptions) {\n if (!group) {\n return buildHTML_makeSpan();\n }\n\n if (_htmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var groupNode = _htmlGroupBuilders[group.type](group, options); // If the size changed between the parent and the current group, account\n // for that size difference.\n\n if (baseOptions && options.size !== baseOptions.size) {\n groupNode = buildHTML_makeSpan(options.sizingClasses(baseOptions), [groupNode], options);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new src_ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`)\n * into an unbreakable HTML node of class .base, with proper struts to\n * guarantee correct vertical extent. `buildHTML` calls this repeatedly to\n * make up the entire expression as a sequence of unbreakable units.\n */\n\nfunction buildHTMLUnbreakable(children, options) {\n // Compute height and depth of this chunk.\n var body = buildHTML_makeSpan([\"base\"], children, options); // Add strut, which ensures that the top of the HTML element falls at\n // the height of the expression, and the bottom of the HTML element\n // falls at the depth of the expression.\n\n var strut = buildHTML_makeSpan([\"strut\"]);\n strut.style.height = body.height + body.depth + \"em\";\n strut.style.verticalAlign = -body.depth + \"em\";\n body.children.unshift(strut);\n return body;\n}\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\n\n\nfunction buildHTML(tree, options) {\n // Strip off outer tag wrapper for processing below.\n var tag = null;\n\n if (tree.length === 1 && tree[0].type === \"tag\") {\n tag = tree[0].tag;\n tree = tree[0].body;\n } // Build the expression contained in the tree\n\n\n var expression = buildExpression(tree, options, \"root\");\n var eqnNum;\n\n if (expression.length === 2 && expression[1].hasClass(\"tag\")) {\n // An environment with automatic equation numbers, e.g. {gather}.\n eqnNum = expression.pop();\n }\n\n var children = []; // Create one base node for each chunk between potential line breaks.\n // The TeXBook [p.173] says \"A formula will be broken only after a\n // relation symbol like $=$ or $<$ or $\\rightarrow$, or after a binary\n // operation symbol like $+$ or $-$ or $\\times$, where the relation or\n // binary operation is on the ``outer level'' of the formula (i.e., not\n // enclosed in {...} and not part of an \\over construction).\"\n\n var parts = [];\n\n for (var i = 0; i < expression.length; i++) {\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"mbin\") || expression[i].hasClass(\"mrel\") || expression[i].hasClass(\"allowbreak\")) {\n // Put any post-operator glue on same line as operator.\n // Watch for \\nobreak along the way, and stop at \\newline.\n var nobreak = false;\n\n while (i < expression.length - 1 && expression[i + 1].hasClass(\"mspace\") && !expression[i + 1].hasClass(\"newline\")) {\n i++;\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"nobreak\")) {\n nobreak = true;\n }\n } // Don't allow break if \\nobreak among the post-operator glue.\n\n\n if (!nobreak) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n }\n } else if (expression[i].hasClass(\"newline\")) {\n // Write the line except the newline\n parts.pop();\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n } // Put the newline at the top level\n\n\n children.push(expression[i]);\n }\n }\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n } // Now, if there was a tag, build it too and append it as a final child.\n\n\n var tagChild;\n\n if (tag) {\n tagChild = buildHTMLUnbreakable(buildExpression(tag, options, true));\n tagChild.classes = [\"tag\"];\n children.push(tagChild);\n } else if (eqnNum) {\n children.push(eqnNum);\n }\n\n var htmlNode = buildHTML_makeSpan([\"katex-html\"], children);\n htmlNode.setAttribute(\"aria-hidden\", \"true\"); // Adjust the strut of the tag to be the maximum height of all children\n // (the height of the enclosing htmlNode) for proper vertical alignment.\n\n if (tagChild) {\n var strut = tagChild.children[0];\n strut.style.height = htmlNode.height + htmlNode.depth + \"em\";\n strut.style.verticalAlign = -htmlNode.depth + \"em\";\n }\n\n return htmlNode;\n}\n;// CONCATENATED MODULE: ./src/mathMLTree.js\n/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work simlarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\n\n\n\nfunction newDocumentFragment(children) {\n return new DocumentFragment(children);\n}\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `<mo>` and `<mspace>` tags).\n */\n\nvar MathNode = /*#__PURE__*/function () {\n function MathNode(type, children, classes) {\n this.type = void 0;\n this.attributes = void 0;\n this.children = void 0;\n this.classes = void 0;\n this.type = type;\n this.attributes = {};\n this.children = children || [];\n this.classes = classes || [];\n }\n /**\n * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n * semantic content, so this is used heavily.\n */\n\n\n var _proto = MathNode.prototype;\n\n _proto.setAttribute = function setAttribute(name, value) {\n this.attributes[name] = value;\n }\n /**\n * Gets an attribute on a MathML node.\n */\n ;\n\n _proto.getAttribute = function getAttribute(name) {\n return this.attributes[name];\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n ;\n\n _proto.toNode = function toNode() {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", this.type);\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n if (this.classes.length > 0) {\n node.className = createClass(this.classes);\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n ;\n\n _proto.toMarkup = function toMarkup() {\n var markup = \"<\" + this.type; // Add the attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\";\n markup += utils.escape(this.attributes[attr]);\n markup += \"\\\"\";\n }\n }\n\n if (this.classes.length > 0) {\n markup += \" class =\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + this.type + \">\";\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText, but escaped.\n */\n ;\n\n _proto.toText = function toText() {\n return this.children.map(function (child) {\n return child.toText();\n }).join(\"\");\n };\n\n return MathNode;\n}();\n/**\n * This node represents a piece of text.\n */\n\nvar TextNode = /*#__PURE__*/function () {\n function TextNode(text) {\n this.text = void 0;\n this.text = text;\n }\n /**\n * Converts the text node into a DOM text node.\n */\n\n\n var _proto2 = TextNode.prototype;\n\n _proto2.toNode = function toNode() {\n return document.createTextNode(this.text);\n }\n /**\n * Converts the text node into escaped HTML markup\n * (representing the text itself).\n */\n ;\n\n _proto2.toMarkup = function toMarkup() {\n return utils.escape(this.toText());\n }\n /**\n * Converts the text node into a string\n * (representing the text iteself).\n */\n ;\n\n _proto2.toText = function toText() {\n return this.text;\n };\n\n return TextNode;\n}();\n/**\n * This node represents a space, but may render as <mspace.../> or as text,\n * depending on the width.\n */\n\nvar SpaceNode = /*#__PURE__*/function () {\n /**\n * Create a Space node with width given in CSS ems.\n */\n function SpaceNode(width) {\n this.width = void 0;\n this.character = void 0;\n this.width = width; // See https://www.w3.org/TR/2000/WD-MathML2-20000328/chapter6.html\n // for a table of space-like characters. We use Unicode\n // representations instead of &LongNames; as it's not clear how to\n // make the latter via document.createTextNode.\n\n if (width >= 0.05555 && width <= 0.05556) {\n this.character = \"\\u200A\"; //  \n } else if (width >= 0.1666 && width <= 0.1667) {\n this.character = \"\\u2009\"; //  \n } else if (width >= 0.2222 && width <= 0.2223) {\n this.character = \"\\u2005\"; //  \n } else if (width >= 0.2777 && width <= 0.2778) {\n this.character = \"\\u2005\\u200A\"; //   \n } else if (width >= -0.05556 && width <= -0.05555) {\n this.character = \"\\u200A\\u2063\"; // ​\n } else if (width >= -0.1667 && width <= -0.1666) {\n this.character = \"\\u2009\\u2063\"; // ​\n } else if (width >= -0.2223 && width <= -0.2222) {\n this.character = \"\\u205F\\u2063\"; // ​\n } else if (width >= -0.2778 && width <= -0.2777) {\n this.character = \"\\u2005\\u2063\"; // ​\n } else {\n this.character = null;\n }\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n var _proto3 = SpaceNode.prototype;\n\n _proto3.toNode = function toNode() {\n if (this.character) {\n return document.createTextNode(this.character);\n } else {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"mspace\");\n node.setAttribute(\"width\", this.width + \"em\");\n return node;\n }\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n ;\n\n _proto3.toMarkup = function toMarkup() {\n if (this.character) {\n return \"<mtext>\" + this.character + \"</mtext>\";\n } else {\n return \"<mspace width=\\\"\" + this.width + \"em\\\"/>\";\n }\n }\n /**\n * Converts the math node into a string, similar to innerText.\n */\n ;\n\n _proto3.toText = function toText() {\n if (this.character) {\n return this.character;\n } else {\n return \" \";\n }\n };\n\n return SpaceNode;\n}();\n\n/* harmony default export */ var mathMLTree = ({\n MathNode: MathNode,\n TextNode: TextNode,\n SpaceNode: SpaceNode,\n newDocumentFragment: newDocumentFragment\n});\n;// CONCATENATED MODULE: ./src/buildMathML.js\n/**\n * This file converts a parse tree into a cooresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\n\n\n\n\n\n\n\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function makeText(text, mode, options) {\n if (src_symbols[mode][text] && src_symbols[mode][text].replace && text.charCodeAt(0) !== 0xD835 && !(ligatures.hasOwnProperty(text) && options && (options.fontFamily && options.fontFamily.substr(4, 2) === \"tt\" || options.font && options.font.substr(4, 2) === \"tt\"))) {\n text = src_symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n/**\n * Wrap the given array of nodes in an <mrow> node if needed, i.e.,\n * unless the array has length 1. Always returns a single node.\n */\n\nvar makeRow = function makeRow(body) {\n if (body.length === 1) {\n return body[0];\n } else {\n return new mathMLTree.MathNode(\"mrow\", body);\n }\n};\n/**\n * Returns the math variant as a string or null if none is required.\n */\n\nvar getVariant = function getVariant(group, options) {\n // Handle \\text... font specifiers as best we can.\n // MathML has a limited list of allowable mathvariant specifiers; see\n // https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt\n if (options.fontFamily === \"texttt\") {\n return \"monospace\";\n } else if (options.fontFamily === \"textsf\") {\n if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"sans-serif-bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"sans-serif-italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold-sans-serif\";\n } else {\n return \"sans-serif\";\n }\n } else if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold\";\n }\n\n var font = options.font;\n\n if (!font || font === \"mathnormal\") {\n return null;\n }\n\n var mode = group.mode;\n\n if (font === \"mathit\") {\n return \"italic\";\n } else if (font === \"boldsymbol\") {\n return group.type === \"textord\" ? \"bold\" : \"bold-italic\";\n } else if (font === \"mathbf\") {\n return \"bold\";\n } else if (font === \"mathbb\") {\n return \"double-struck\";\n } else if (font === \"mathfrak\") {\n return \"fraktur\";\n } else if (font === \"mathscr\" || font === \"mathcal\") {\n // MathML makes no distinction between script and caligrahpic\n return \"script\";\n } else if (font === \"mathsf\") {\n return \"sans-serif\";\n } else if (font === \"mathtt\") {\n return \"monospace\";\n }\n\n var text = group.text;\n\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], text)) {\n return null;\n }\n\n if (src_symbols[mode][text] && src_symbols[mode][text].replace) {\n text = src_symbols[mode][text].replace;\n }\n\n var fontName = buildCommon.fontMap[font].fontName;\n\n if (getCharacterMetrics(text, fontName, mode)) {\n return buildCommon.fontMap[font].variant;\n }\n\n return null;\n};\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. Also combine consecutive <mtext> outputs into a single\n * <mtext> tag.\n */\n\nvar buildMathML_buildExpression = function buildExpression(expression, options, isOrdgroup) {\n if (expression.length === 1) {\n var group = buildMathML_buildGroup(expression[0], options);\n\n if (isOrdgroup && group instanceof MathNode && group.type === \"mo\") {\n // When TeX writers want to suppress spacing on an operator,\n // they often put the operator by itself inside braces.\n group.setAttribute(\"lspace\", \"0em\");\n group.setAttribute(\"rspace\", \"0em\");\n }\n\n return [group];\n }\n\n var groups = [];\n var lastGroup;\n\n for (var i = 0; i < expression.length; i++) {\n var _group = buildMathML_buildGroup(expression[i], options);\n\n if (_group instanceof MathNode && lastGroup instanceof MathNode) {\n // Concatenate adjacent <mtext>s\n if (_group.type === 'mtext' && lastGroup.type === 'mtext' && _group.getAttribute('mathvariant') === lastGroup.getAttribute('mathvariant')) {\n var _lastGroup$children;\n\n (_lastGroup$children = lastGroup.children).push.apply(_lastGroup$children, _group.children);\n\n continue; // Concatenate adjacent <mn>s\n } else if (_group.type === 'mn' && lastGroup.type === 'mn') {\n var _lastGroup$children2;\n\n (_lastGroup$children2 = lastGroup.children).push.apply(_lastGroup$children2, _group.children);\n\n continue; // Concatenate <mn>...</mn> followed by <mi>.</mi>\n } else if (_group.type === 'mi' && _group.children.length === 1 && lastGroup.type === 'mn') {\n var child = _group.children[0];\n\n if (child instanceof TextNode && child.text === '.') {\n var _lastGroup$children3;\n\n (_lastGroup$children3 = lastGroup.children).push.apply(_lastGroup$children3, _group.children);\n\n continue;\n }\n } else if (lastGroup.type === 'mi' && lastGroup.children.length === 1) {\n var lastChild = lastGroup.children[0];\n\n if (lastChild instanceof TextNode && lastChild.text === \"\\u0338\" && (_group.type === 'mo' || _group.type === 'mi' || _group.type === 'mn')) {\n var _child = _group.children[0];\n\n if (_child instanceof TextNode && _child.text.length > 0) {\n // Overlay with combining character long solidus\n _child.text = _child.text.slice(0, 1) + \"\\u0338\" + _child.text.slice(1);\n groups.pop();\n }\n }\n }\n }\n\n groups.push(_group);\n lastGroup = _group;\n }\n\n return groups;\n};\n/**\n * Equivalent to buildExpression, but wraps the elements in an <mrow>\n * if there's more than one. Returns a single node instead of an array.\n */\n\nvar buildExpressionRow = function buildExpressionRow(expression, options, isOrdgroup) {\n return makeRow(buildMathML_buildExpression(expression, options, isOrdgroup));\n};\n/**\n * Takes a group from the parser and calls the appropriate groupBuilders function\n * on it to produce a MathML node.\n */\n\nvar buildMathML_buildGroup = function buildGroup(group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (_mathmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var result = _mathmlGroupBuilders[group.type](group, options); // $FlowFixMe\n\n return result;\n } else {\n throw new src_ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * <semantics> tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `<math>` inside it so\n * we can do appropriate styling.\n */\n\nfunction buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) {\n var expression = buildMathML_buildExpression(tree, options); // TODO: Make a pass thru the MathML similar to buildHTML.traverseNonSpaceNodes\n // and add spacing nodes. This is necessary only adjacent to math operators\n // like \\sin or \\lim or to subsup elements that contain math operators.\n // MathML takes care of the other spacing issues.\n // Wrap up the expression in an mrow so it is presented in the semantics\n // tag correctly, unless it's a single <mrow> or <mtable>.\n\n var wrapper;\n\n if (expression.length === 1 && expression[0] instanceof MathNode && utils.contains([\"mrow\", \"mtable\"], expression[0].type)) {\n wrapper = expression[0];\n } else {\n wrapper = new mathMLTree.MathNode(\"mrow\", expression);\n } // Build a TeX annotation of the source\n\n\n var annotation = new mathMLTree.MathNode(\"annotation\", [new mathMLTree.TextNode(texExpression)]);\n annotation.setAttribute(\"encoding\", \"application/x-tex\");\n var semantics = new mathMLTree.MathNode(\"semantics\", [wrapper, annotation]);\n var math = new mathMLTree.MathNode(\"math\", [semantics]);\n math.setAttribute(\"xmlns\", \"http://www.w3.org/1998/Math/MathML\");\n\n if (isDisplayMode) {\n math.setAttribute(\"display\", \"block\");\n } // You can't style <math> nodes, so we wrap the node in a span.\n // NOTE: The span class is not typed to have <math> nodes as children, and\n // we don't want to make the children type more generic since the children\n // of span are expected to have more fields in `buildHtml` contexts.\n\n\n var wrapperClass = forMathmlOnly ? \"katex\" : \"katex-mathml\"; // $FlowFixMe\n\n return buildCommon.makeSpan([wrapperClass], [math]);\n}\n;// CONCATENATED MODULE: ./src/buildTree.js\n\n\n\n\n\n\n\nvar optionsFromSettings = function optionsFromSettings(settings) {\n return new src_Options({\n style: settings.displayMode ? src_Style.DISPLAY : src_Style.TEXT,\n maxSize: settings.maxSize,\n minRuleThickness: settings.minRuleThickness\n });\n};\n\nvar displayWrap = function displayWrap(node, settings) {\n if (settings.displayMode) {\n var classes = [\"katex-display\"];\n\n if (settings.leqno) {\n classes.push(\"leqno\");\n }\n\n if (settings.fleqn) {\n classes.push(\"fleqn\");\n }\n\n node = buildCommon.makeSpan(classes, [node]);\n }\n\n return node;\n};\n\nvar buildTree = function buildTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var katexNode;\n\n if (settings.output === \"mathml\") {\n return buildMathML(tree, expression, options, settings.displayMode, true);\n } else if (settings.output === \"html\") {\n var htmlNode = buildHTML(tree, options);\n katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n } else {\n var mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false);\n\n var _htmlNode = buildHTML(tree, options);\n\n katexNode = buildCommon.makeSpan([\"katex\"], [mathMLNode, _htmlNode]);\n }\n\n return displayWrap(katexNode, settings);\n};\nvar buildHTMLTree = function buildHTMLTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var htmlNode = buildHTML(tree, options);\n var katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n return displayWrap(katexNode, settings);\n};\n/* harmony default export */ var src_buildTree = ((/* unused pure expression or super */ null && (buildTree)));\n;// CONCATENATED MODULE: ./src/stretchy.js\n/**\n * This file provides support to buildMathML.js and buildHTML.js\n * for stretchy wide elements rendered from SVG files\n * and other CSS trickery.\n */\n\n\n\n\nvar stretchyCodePoint = {\n widehat: \"^\",\n widecheck: \"ˇ\",\n widetilde: \"~\",\n utilde: \"~\",\n overleftarrow: \"\\u2190\",\n underleftarrow: \"\\u2190\",\n xleftarrow: \"\\u2190\",\n overrightarrow: \"\\u2192\",\n underrightarrow: \"\\u2192\",\n xrightarrow: \"\\u2192\",\n underbrace: \"\\u23DF\",\n overbrace: \"\\u23DE\",\n overgroup: \"\\u23E0\",\n undergroup: \"\\u23E1\",\n overleftrightarrow: \"\\u2194\",\n underleftrightarrow: \"\\u2194\",\n xleftrightarrow: \"\\u2194\",\n Overrightarrow: \"\\u21D2\",\n xRightarrow: \"\\u21D2\",\n overleftharpoon: \"\\u21BC\",\n xleftharpoonup: \"\\u21BC\",\n overrightharpoon: \"\\u21C0\",\n xrightharpoonup: \"\\u21C0\",\n xLeftarrow: \"\\u21D0\",\n xLeftrightarrow: \"\\u21D4\",\n xhookleftarrow: \"\\u21A9\",\n xhookrightarrow: \"\\u21AA\",\n xmapsto: \"\\u21A6\",\n xrightharpoondown: \"\\u21C1\",\n xleftharpoondown: \"\\u21BD\",\n xrightleftharpoons: \"\\u21CC\",\n xleftrightharpoons: \"\\u21CB\",\n xtwoheadleftarrow: \"\\u219E\",\n xtwoheadrightarrow: \"\\u21A0\",\n xlongequal: \"=\",\n xtofrom: \"\\u21C4\",\n xrightleftarrows: \"\\u21C4\",\n xrightequilibrium: \"\\u21CC\",\n // Not a perfect match.\n xleftequilibrium: \"\\u21CB\",\n // None better available.\n \"\\\\cdrightarrow\": \"\\u2192\",\n \"\\\\cdleftarrow\": \"\\u2190\",\n \"\\\\cdlongequal\": \"=\"\n};\n\nvar mathMLnode = function mathMLnode(label) {\n var node = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\\\/, '')])]);\n node.setAttribute(\"stretchy\", \"true\");\n return node;\n}; // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts.\n// Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)\n// Copyright (c) 2014-2017 Khan Academy (<www.khanacademy.org>)\n// Licensed under the SIL Open Font License, Version 1.1.\n// See \\nhttp://scripts.sil.org/OFL\n// Very Long SVGs\n// Many of the KaTeX stretchy wide elements use a long SVG image and an\n// overflow: hidden tactic to achieve a stretchy image while avoiding\n// distortion of arrowheads or brace corners.\n// The SVG typically contains a very long (400 em) arrow.\n// The SVG is in a container span that has overflow: hidden, so the span\n// acts like a window that exposes only part of the SVG.\n// The SVG always has a longer, thinner aspect ratio than the container span.\n// After the SVG fills 100% of the height of the container span,\n// there is a long arrow shaft left over. That left-over shaft is not shown.\n// Instead, it is sliced off because the span's CSS has overflow: hidden.\n// Thus, the reader sees an arrow that matches the subject matter width\n// without distortion.\n// Some functions, such as \\cancel, need to vary their aspect ratio. These\n// functions do not get the overflow SVG treatment.\n// Second Brush Stroke\n// Low resolution monitors struggle to display images in fine detail.\n// So browsers apply anti-aliasing. A long straight arrow shaft therefore\n// will sometimes appear as if it has a blurred edge.\n// To mitigate this, these SVG files contain a second \"brush-stroke\" on the\n// arrow shafts. That is, a second long thin rectangular SVG path has been\n// written directly on top of each arrow shaft. This reinforcement causes\n// some of the screen pixels to display as black instead of the anti-aliased\n// gray pixel that a single path would generate. So we get arrow shafts\n// whose edges appear to be sharper.\n// In the katexImagesData object just below, the dimensions all\n// correspond to path geometry inside the relevant SVG.\n// For example, \\overrightarrow uses the same arrowhead as glyph U+2192\n// from the KaTeX Main font. The scaling factor is 1000.\n// That is, inside the font, that arrowhead is 522 units tall, which\n// corresponds to 0.522 em inside the document.\n\n\nvar katexImagesData = {\n // path(s), minWidth, height, align\n overrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n overleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n underrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n underleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n xrightarrow: [[\"rightarrow\"], 1.469, 522, \"xMaxYMin\"],\n \"\\\\cdrightarrow\": [[\"rightarrow\"], 3.0, 522, \"xMaxYMin\"],\n // CD minwwidth2.5pc\n xleftarrow: [[\"leftarrow\"], 1.469, 522, \"xMinYMin\"],\n \"\\\\cdleftarrow\": [[\"leftarrow\"], 3.0, 522, \"xMinYMin\"],\n Overrightarrow: [[\"doublerightarrow\"], 0.888, 560, \"xMaxYMin\"],\n xRightarrow: [[\"doublerightarrow\"], 1.526, 560, \"xMaxYMin\"],\n xLeftarrow: [[\"doubleleftarrow\"], 1.526, 560, \"xMinYMin\"],\n overleftharpoon: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoonup: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoondown: [[\"leftharpoondown\"], 0.888, 522, \"xMinYMin\"],\n overrightharpoon: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoonup: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoondown: [[\"rightharpoondown\"], 0.888, 522, \"xMaxYMin\"],\n xlongequal: [[\"longequal\"], 0.888, 334, \"xMinYMin\"],\n \"\\\\cdlongequal\": [[\"longequal\"], 3.0, 334, \"xMinYMin\"],\n xtwoheadleftarrow: [[\"twoheadleftarrow\"], 0.888, 334, \"xMinYMin\"],\n xtwoheadrightarrow: [[\"twoheadrightarrow\"], 0.888, 334, \"xMaxYMin\"],\n overleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n overbrace: [[\"leftbrace\", \"midbrace\", \"rightbrace\"], 1.6, 548],\n underbrace: [[\"leftbraceunder\", \"midbraceunder\", \"rightbraceunder\"], 1.6, 548],\n underleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n xleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 1.75, 522],\n xLeftrightarrow: [[\"doubleleftarrow\", \"doublerightarrow\"], 1.75, 560],\n xrightleftharpoons: [[\"leftharpoondownplus\", \"rightharpoonplus\"], 1.75, 716],\n xleftrightharpoons: [[\"leftharpoonplus\", \"rightharpoondownplus\"], 1.75, 716],\n xhookleftarrow: [[\"leftarrow\", \"righthook\"], 1.08, 522],\n xhookrightarrow: [[\"lefthook\", \"rightarrow\"], 1.08, 522],\n overlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n underlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n overgroup: [[\"leftgroup\", \"rightgroup\"], 0.888, 342],\n undergroup: [[\"leftgroupunder\", \"rightgroupunder\"], 0.888, 342],\n xmapsto: [[\"leftmapsto\", \"rightarrow\"], 1.5, 522],\n xtofrom: [[\"leftToFrom\", \"rightToFrom\"], 1.75, 528],\n // The next three arrows are from the mhchem package.\n // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the\n // document as \\xrightarrow or \\xrightleftharpoons. Those have\n // min-length = 1.75em, so we set min-length on these next three to match.\n xrightleftarrows: [[\"baraboveleftarrow\", \"rightarrowabovebar\"], 1.75, 901],\n xrightequilibrium: [[\"baraboveshortleftharpoon\", \"rightharpoonaboveshortbar\"], 1.75, 716],\n xleftequilibrium: [[\"shortbaraboveleftharpoon\", \"shortrightharpoonabovebar\"], 1.75, 716]\n};\n\nvar groupLength = function groupLength(arg) {\n if (arg.type === \"ordgroup\") {\n return arg.body.length;\n } else {\n return 1;\n }\n};\n\nvar svgSpan = function svgSpan(group, options) {\n // Create a span with inline SVG for the element.\n function buildSvgSpan_() {\n var viewBoxWidth = 400000; // default\n\n var label = group.label.substr(1);\n\n if (utils.contains([\"widehat\", \"widecheck\", \"widetilde\", \"utilde\"], label)) {\n // Each type in the `if` statement corresponds to one of the ParseNode\n // types below. This narrowing is required to access `grp.base`.\n // $FlowFixMe\n var grp = group; // There are four SVG images available for each function.\n // Choose a taller image when there are more characters.\n\n var numChars = groupLength(grp.base);\n var viewBoxHeight;\n var pathName;\n\n var _height;\n\n if (numChars > 5) {\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxHeight = 420;\n viewBoxWidth = 2364;\n _height = 0.42;\n pathName = label + \"4\";\n } else {\n viewBoxHeight = 312;\n viewBoxWidth = 2340;\n _height = 0.34;\n pathName = \"tilde4\";\n }\n } else {\n var imgIndex = [1, 1, 2, 2, 3, 3][numChars];\n\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];\n viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];\n _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];\n pathName = label + imgIndex;\n } else {\n viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];\n viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];\n _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];\n pathName = \"tilde\" + imgIndex;\n }\n }\n\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": \"100%\",\n \"height\": _height + \"em\",\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n \"preserveAspectRatio\": \"none\"\n });\n return {\n span: buildCommon.makeSvgSpan([], [svgNode], options),\n minWidth: 0,\n height: _height\n };\n } else {\n var spans = [];\n var data = katexImagesData[label];\n var paths = data[0],\n _minWidth = data[1],\n _viewBoxHeight = data[2];\n\n var _height2 = _viewBoxHeight / 1000;\n\n var numSvgChildren = paths.length;\n var widthClasses;\n var aligns;\n\n if (numSvgChildren === 1) {\n // $FlowFixMe: All these cases must be of the 4-tuple type.\n var align1 = data[3];\n widthClasses = [\"hide-tail\"];\n aligns = [align1];\n } else if (numSvgChildren === 2) {\n widthClasses = [\"halfarrow-left\", \"halfarrow-right\"];\n aligns = [\"xMinYMin\", \"xMaxYMin\"];\n } else if (numSvgChildren === 3) {\n widthClasses = [\"brace-left\", \"brace-center\", \"brace-right\"];\n aligns = [\"xMinYMin\", \"xMidYMin\", \"xMaxYMin\"];\n } else {\n throw new Error(\"Correct katexImagesData or update code here to support\\n \" + numSvgChildren + \" children.\");\n }\n\n for (var i = 0; i < numSvgChildren; i++) {\n var _path = new PathNode(paths[i]);\n\n var _svgNode = new SvgNode([_path], {\n \"width\": \"400em\",\n \"height\": _height2 + \"em\",\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + _viewBoxHeight,\n \"preserveAspectRatio\": aligns[i] + \" slice\"\n });\n\n var _span = buildCommon.makeSvgSpan([widthClasses[i]], [_svgNode], options);\n\n if (numSvgChildren === 1) {\n return {\n span: _span,\n minWidth: _minWidth,\n height: _height2\n };\n } else {\n _span.style.height = _height2 + \"em\";\n spans.push(_span);\n }\n }\n\n return {\n span: buildCommon.makeSpan([\"stretchy\"], spans, options),\n minWidth: _minWidth,\n height: _height2\n };\n }\n } // buildSvgSpan_()\n\n\n var _buildSvgSpan_ = buildSvgSpan_(),\n span = _buildSvgSpan_.span,\n minWidth = _buildSvgSpan_.minWidth,\n height = _buildSvgSpan_.height; // Note that we are returning span.depth = 0.\n // Any adjustments relative to the baseline must be done in buildHTML.\n\n\n span.height = height;\n span.style.height = height + \"em\";\n\n if (minWidth > 0) {\n span.style.minWidth = minWidth + \"em\";\n }\n\n return span;\n};\n\nvar encloseSpan = function encloseSpan(inner, label, topPad, bottomPad, options) {\n // Return an image span for \\cancel, \\bcancel, \\xcancel, \\fbox, or \\angl\n var img;\n var totalHeight = inner.height + inner.depth + topPad + bottomPad;\n\n if (/fbox|color|angl/.test(label)) {\n img = buildCommon.makeSpan([\"stretchy\", label], [], options);\n\n if (label === \"fbox\") {\n var color = options.color && options.getColor();\n\n if (color) {\n img.style.borderColor = color;\n }\n }\n } else {\n // \\cancel, \\bcancel, or \\xcancel\n // Since \\cancel's SVG is inline and it omits the viewBox attribute,\n // its stroke-width will not vary with span area.\n var lines = [];\n\n if (/^[bx]cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"0\",\n \"x2\": \"100%\",\n \"y2\": \"100%\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n if (/^x?cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n var svgNode = new SvgNode(lines, {\n \"width\": \"100%\",\n \"height\": totalHeight + \"em\"\n });\n img = buildCommon.makeSvgSpan([], [svgNode], options);\n }\n\n img.height = totalHeight;\n img.style.height = totalHeight + \"em\";\n return img;\n};\n\n/* harmony default export */ var stretchy = ({\n encloseSpan: encloseSpan,\n mathMLnode: mathMLnode,\n svgSpan: svgSpan\n});\n;// CONCATENATED MODULE: ./src/parseNode.js\n\n\n/**\n * Asserts that the node is of the given type and returns it with stricter\n * typing. Throws if the node's type does not match.\n */\nfunction assertNodeType(node, type) {\n if (!node || node.type !== type) {\n throw new Error(\"Expected node of type \" + type + \", but got \" + (node ? \"node of type \" + node.type : String(node)));\n } // $FlowFixMe, >=0.125\n\n\n return node;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction assertSymbolNodeType(node) {\n var typedNode = checkSymbolNodeType(node);\n\n if (!typedNode) {\n throw new Error(\"Expected node of symbol group type, but got \" + (node ? \"node of type \" + node.type : String(node)));\n }\n\n return typedNode;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction checkSymbolNodeType(node) {\n if (node && (node.type === \"atom\" || NON_ATOMS.hasOwnProperty(node.type))) {\n // $FlowFixMe\n return node;\n }\n\n return null;\n}\n;// CONCATENATED MODULE: ./src/functions/accent.js\n\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"accent\", but\n// also \"supsub\" since an accent can affect super/subscripting.\nvar htmlBuilder = function htmlBuilder(grp, options) {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n var base;\n var group;\n var supSubGroup;\n\n if (grp && grp.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n // The real accent group is the base of the supsub group\n group = assertNodeType(grp.base, \"accent\"); // The character box is the base of the accent group\n\n base = group.base; // Stick the character box into the base of the supsub group\n\n grp.base = base; // Rerender the supsub group with its new base, and store that\n // result.\n\n supSubGroup = assertSpan(buildGroup(grp, options)); // reset original base\n\n grp.base = group;\n } else {\n group = assertNodeType(grp, \"accent\");\n base = group.base;\n } // Build the base group\n\n\n var body = buildGroup(base, options.havingCrampedStyle()); // Does the accent need to shift for the skew of a character?\n\n var mustShift = group.isShifty && utils.isCharacterBox(base); // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n\n var skew = 0;\n\n if (mustShift) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n var baseChar = utils.getBaseElem(base); // Then, we render its group to get the symbol inside it\n\n var baseGroup = buildGroup(baseChar, options.havingCrampedStyle()); // Finally, we pull the skew off of the symbol.\n\n skew = assertSymbolDomNode(baseGroup).skew; // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n }\n\n var accentBelow = group.label === \"\\\\c\"; // calculate the amount of space between the body and the accent\n\n var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight); // Build the accent\n\n var accentBody;\n\n if (!group.isStretchy) {\n var accent;\n var width;\n\n if (group.label === \"\\\\vec\") {\n // Before version 0.9, \\vec used the combining font glyph U+20D7.\n // But browsers, especially Safari, are not consistent in how they\n // render combining characters when not preceded by a character.\n // So now we use an SVG.\n // If Safari reforms, we should consider reverting to the glyph.\n accent = buildCommon.staticSvg(\"vec\", options);\n width = buildCommon.svgData.vec[1];\n } else {\n accent = buildCommon.makeOrd({\n mode: group.mode,\n text: group.label\n }, options, \"textord\");\n accent = assertSymbolDomNode(accent); // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n\n accent.italic = 0;\n width = accent.width;\n\n if (accentBelow) {\n clearance += accent.depth;\n }\n }\n\n accentBody = buildCommon.makeSpan([\"accent-body\"], [accent]); // \"Full\" accents expand the width of the resulting symbol to be\n // at least the width of the accent, and overlap directly onto the\n // character without any vertical offset.\n\n var accentFull = group.label === \"\\\\textcircled\";\n\n if (accentFull) {\n accentBody.classes.push('accent-full');\n clearance = body.height;\n } // Shift the accent over by the skew.\n\n\n var left = skew; // CSS defines `.katex .accent .accent-body:not(.accent-full) { width: 0 }`\n // so that the accent doesn't contribute to the bounding box.\n // We need to shift the character by its width (effectively half\n // its width) to compensate.\n\n if (!accentFull) {\n left -= width / 2;\n }\n\n accentBody.style.left = left + \"em\"; // \\textcircled uses the \\bigcirc glyph, so it needs some\n // vertical adjustment to match LaTeX.\n\n if (group.label === \"\\\\textcircled\") {\n accentBody.style.top = \".2em\";\n }\n\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: -clearance\n }, {\n type: \"elem\",\n elem: accentBody\n }]\n }, options);\n } else {\n accentBody = stretchy.svgSpan(group, options);\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"],\n wrapperStyle: skew > 0 ? {\n width: \"calc(100% - \" + 2 * skew + \"em)\",\n marginLeft: 2 * skew + \"em\"\n } : undefined\n }]\n }, options);\n }\n\n var accentWrap = buildCommon.makeSpan([\"mord\", \"accent\"], [accentBody], options);\n\n if (supSubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supSubGroup.children[0] = accentWrap; // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n\n supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height); // Accents should always be ords, even when their innards are not.\n\n supSubGroup.classes[0] = \"mord\";\n return supSubGroup;\n } else {\n return accentWrap;\n }\n};\n\nvar mathmlBuilder = function mathmlBuilder(group, options) {\n var accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode(\"mo\", [makeText(group.label, group.mode)]);\n var node = new mathMLTree.MathNode(\"mover\", [buildMathML_buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n};\n\nvar NON_STRETCHY_ACCENT_REGEX = new RegExp([\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\"].map(function (accent) {\n return \"\\\\\" + accent;\n}).join(\"|\")); // Accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\", \"\\\\widecheck\", \"\\\\widehat\", \"\\\\widetilde\", \"\\\\overrightarrow\", \"\\\\overleftarrow\", \"\\\\Overrightarrow\", \"\\\\overleftrightarrow\", \"\\\\overgroup\", \"\\\\overlinesegment\", \"\\\\overleftharpoon\", \"\\\\overrightharpoon\"],\n props: {\n numArgs: 1\n },\n handler: function handler(context, args) {\n var base = normalizeArgument(args[0]);\n var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);\n var isShifty = !isStretchy || context.funcName === \"\\\\widehat\" || context.funcName === \"\\\\widetilde\" || context.funcName === \"\\\\widecheck\";\n return {\n type: \"accent\",\n mode: context.parser.mode,\n label: context.funcName,\n isStretchy: isStretchy,\n isShifty: isShifty,\n base: base\n };\n },\n htmlBuilder: htmlBuilder,\n mathmlBuilder: mathmlBuilder\n}); // Text-mode accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\'\", \"\\\\`\", \"\\\\^\", \"\\\\~\", \"\\\\=\", \"\\\\u\", \"\\\\.\", '\\\\\"', \"\\\\c\", \"\\\\r\", \"\\\\H\", \"\\\\v\", \"\\\\textcircled\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n allowedInMath: true,\n // unless in strict mode\n argTypes: [\"primitive\"]\n },\n handler: function handler(context, args) {\n var base = args[0];\n var mode = context.parser.mode;\n\n if (mode === \"math\") {\n context.parser.settings.reportNonstrict(\"mathVsTextAccents\", \"LaTeX's accent \" + context.funcName + \" works only in text mode\");\n mode = \"text\";\n }\n\n return {\n type: \"accent\",\n mode: mode,\n label: context.funcName,\n isStretchy: false,\n isShifty: true,\n base: base\n };\n },\n htmlBuilder: htmlBuilder,\n mathmlBuilder: mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/accentunder.js\n// Horizontal overlap functions\n\n\n\n\n\n\ndefineFunction({\n type: \"accentUnder\",\n names: [\"\\\\underleftarrow\", \"\\\\underrightarrow\", \"\\\\underleftrightarrow\", \"\\\\undergroup\", \"\\\\underlinesegment\", \"\\\\utilde\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var base = args[0];\n return {\n type: \"accentUnder\",\n mode: parser.mode,\n label: funcName,\n base: base\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Treat under accents much like underlines.\n var innerGroup = buildGroup(group.base, options);\n var accentBody = stretchy.svgSpan(group, options);\n var kern = group.label === \"\\\\utilde\" ? 0.12 : 0; // Generate the vlist, with the appropriate kerns\n\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: kern\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"accentunder\"], [vlist], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var accentNode = stretchy.mathMLnode(group.label);\n var node = new mathMLTree.MathNode(\"munder\", [buildMathML_buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/arrow.js\n\n\n\n\n\n\n\n// Helper function\nvar paddedNode = function paddedNode(group) {\n var node = new mathMLTree.MathNode(\"mpadded\", group ? [group] : []);\n node.setAttribute(\"width\", \"+0.6em\");\n node.setAttribute(\"lspace\", \"0.3em\");\n return node;\n}; // Stretchy arrows with an optional argument\n\n\ndefineFunction({\n type: \"xArrow\",\n names: [\"\\\\xleftarrow\", \"\\\\xrightarrow\", \"\\\\xLeftarrow\", \"\\\\xRightarrow\", \"\\\\xleftrightarrow\", \"\\\\xLeftrightarrow\", \"\\\\xhookleftarrow\", \"\\\\xhookrightarrow\", \"\\\\xmapsto\", \"\\\\xrightharpoondown\", \"\\\\xrightharpoonup\", \"\\\\xleftharpoondown\", \"\\\\xleftharpoonup\", \"\\\\xrightleftharpoons\", \"\\\\xleftrightharpoons\", \"\\\\xlongequal\", \"\\\\xtwoheadrightarrow\", \"\\\\xtwoheadleftarrow\", \"\\\\xtofrom\", // The next 3 functions are here to support the mhchem extension.\n // Direct use of these functions is discouraged and may break someday.\n \"\\\\xrightleftarrows\", \"\\\\xrightequilibrium\", \"\\\\xleftequilibrium\", // The next 3 functions are here only to support the {CD} environment.\n \"\\\\\\\\cdrightarrow\", \"\\\\\\\\cdleftarrow\", \"\\\\\\\\cdlongequal\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n return {\n type: \"xArrow\",\n mode: parser.mode,\n label: funcName,\n body: args[0],\n below: optArgs[0]\n };\n },\n // Flow is unable to correctly infer the type of `group`, even though it's\n // unamibiguously determined from the passed-in `type` above.\n htmlBuilder: function htmlBuilder(group, options) {\n var style = options.style; // Build the argument groups in the appropriate style.\n // Ref: amsmath.dtx: \\hbox{$\\scriptstyle\\mkern#3mu{#6}\\mkern#4mu$}%\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n var newOptions = options.havingStyle(style.sup());\n var upperGroup = buildCommon.wrapFragment(buildGroup(group.body, newOptions, options), options);\n var arrowPrefix = group.label.slice(0, 2) === \"\\\\x\" ? \"x\" : \"cd\";\n upperGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n var lowerGroup;\n\n if (group.below) {\n // Build the lower group\n newOptions = options.havingStyle(style.sub());\n lowerGroup = buildCommon.wrapFragment(buildGroup(group.below, newOptions, options), options);\n lowerGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n }\n\n var arrowBody = stretchy.svgSpan(group, options); // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0.\n // The point we want on the math axis is at 0.5 * arrowBody.height.\n\n var arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height; // 2 mu kern. Ref: amsmath.dtx: #7\\if0#2\\else\\mkern#2mu\\fi\n\n var upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111; // 0.111 em = 2 mu\n\n if (upperGroup.depth > 0.25 || group.label === \"\\\\xleftequilibrium\") {\n upperShift -= upperGroup.depth; // shift up if depth encroaches\n } // Generate the vlist\n\n\n var vlist;\n\n if (lowerGroup) {\n var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }, {\n type: \"elem\",\n elem: lowerGroup,\n shift: lowerShift\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }]\n }, options);\n } // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n return buildCommon.makeSpan([\"mrel\", \"x-arrow\"], [vlist], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var arrowNode = stretchy.mathMLnode(group.label);\n arrowNode.setAttribute(\"minsize\", group.label.charAt(0) === \"x\" ? \"1.75em\" : \"3.0em\");\n var node;\n\n if (group.body) {\n var upperNode = paddedNode(buildMathML_buildGroup(group.body, options));\n\n if (group.below) {\n var lowerNode = paddedNode(buildMathML_buildGroup(group.below, options));\n node = new mathMLTree.MathNode(\"munderover\", [arrowNode, lowerNode, upperNode]);\n } else {\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, upperNode]);\n }\n } else if (group.below) {\n var _lowerNode = paddedNode(buildMathML_buildGroup(group.below, options));\n\n node = new mathMLTree.MathNode(\"munder\", [arrowNode, _lowerNode]);\n } else {\n // This should never happen.\n // Parser.js throws an error if there is no argument.\n node = paddedNode();\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, node]);\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/environments/cd.js\n\n\n\n\n\n\n\nvar cdArrowFunctionName = {\n \">\": \"\\\\\\\\cdrightarrow\",\n \"<\": \"\\\\\\\\cdleftarrow\",\n \"=\": \"\\\\\\\\cdlongequal\",\n \"A\": \"\\\\uparrow\",\n \"V\": \"\\\\downarrow\",\n \"|\": \"\\\\Vert\",\n \".\": \"no arrow\"\n};\n\nvar newCell = function newCell() {\n // Create an empty cell, to be filled below with parse nodes.\n // The parseTree from this module must be constructed like the\n // one created by parseArray(), so an empty CD cell must\n // be a ParseNode<\"styling\">. And CD is always displaystyle.\n // So these values are fixed and flow can do implicit typing.\n return {\n type: \"styling\",\n body: [],\n mode: \"math\",\n style: \"display\"\n };\n};\n\nvar isStartOfArrow = function isStartOfArrow(node) {\n return node.type === \"textord\" && node.text === \"@\";\n};\n\nvar isLabelEnd = function isLabelEnd(node, endChar) {\n return (node.type === \"mathord\" || node.type === \"atom\") && node.text === endChar;\n};\n\nfunction cdArrow(arrowChar, labels, parser) {\n // Return a parse tree of an arrow and its labels.\n // This acts in a way similar to a macro expansion.\n var funcName = cdArrowFunctionName[arrowChar];\n\n switch (funcName) {\n case \"\\\\\\\\cdrightarrow\":\n case \"\\\\\\\\cdleftarrow\":\n return parser.callFunction(funcName, [labels[0]], [labels[1]]);\n\n case \"\\\\uparrow\":\n case \"\\\\downarrow\":\n {\n var leftLabel = parser.callFunction(\"\\\\\\\\cdleft\", [labels[0]], []);\n var bareArrow = {\n type: \"atom\",\n text: funcName,\n mode: \"math\",\n family: \"rel\"\n };\n var sizedArrow = parser.callFunction(\"\\\\Big\", [bareArrow], []);\n var rightLabel = parser.callFunction(\"\\\\\\\\cdright\", [labels[1]], []);\n var arrowGroup = {\n type: \"ordgroup\",\n mode: \"math\",\n body: [leftLabel, sizedArrow, rightLabel]\n };\n return parser.callFunction(\"\\\\\\\\cdparent\", [arrowGroup], []);\n }\n\n case \"\\\\\\\\cdlongequal\":\n return parser.callFunction(\"\\\\\\\\cdlongequal\", [], []);\n\n case \"\\\\Vert\":\n {\n var arrow = {\n type: \"textord\",\n text: \"\\\\Vert\",\n mode: \"math\"\n };\n return parser.callFunction(\"\\\\Big\", [arrow], []);\n }\n\n default:\n return {\n type: \"textord\",\n text: \" \",\n mode: \"math\"\n };\n }\n}\n\nfunction parseCD(parser) {\n // Get the array's parse nodes with \\\\ temporarily mapped to \\cr.\n var parsedRows = [];\n parser.gullet.beginGroup();\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n parser.gullet.beginGroup();\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Get the parse nodes for the next row.\n parsedRows.push(parser.parseExpression(false, \"\\\\\\\\\"));\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n var next = parser.fetch().text;\n\n if (next === \"&\" || next === \"\\\\\\\\\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n if (parsedRows[parsedRows.length - 1].length === 0) {\n parsedRows.pop(); // final row ended in \\\\\n }\n\n break;\n } else {\n throw new src_ParseError(\"Expected \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n }\n\n var row = [];\n var body = [row]; // Loop thru the parse nodes. Collect them into cells and arrows.\n\n for (var i = 0; i < parsedRows.length; i++) {\n // Start a new row.\n var rowNodes = parsedRows[i]; // Create the first cell.\n\n var cell = newCell();\n\n for (var j = 0; j < rowNodes.length; j++) {\n if (!isStartOfArrow(rowNodes[j])) {\n // If a parseNode is not an arrow, it goes into a cell.\n cell.body.push(rowNodes[j]);\n } else {\n // Parse node j is an \"@\", the start of an arrow.\n // Before starting on the arrow, push the cell into `row`.\n row.push(cell); // Now collect parseNodes into an arrow.\n // The character after \"@\" defines the arrow type.\n\n j += 1;\n var arrowChar = assertSymbolNodeType(rowNodes[j]).text; // Create two empty label nodes. We may or may not use them.\n\n var labels = new Array(2);\n labels[0] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n };\n labels[1] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n }; // Process the arrow.\n\n if (\"=|.\".indexOf(arrowChar) > -1) {// Three \"arrows\", ``@=`, `@|`, and `@.`, do not take labels.\n // Do nothing here.\n } else if (\"<>AV\".indexOf(arrowChar) > -1) {\n // Four arrows, `@>>>`, `@<<<`, `@AAA`, and `@VVV`, each take\n // two optional labels. E.g. the right-point arrow syntax is\n // really: @>{optional label}>{optional label}>\n // Collect parseNodes into labels.\n for (var labelNum = 0; labelNum < 2; labelNum++) {\n var inLabel = true;\n\n for (var k = j + 1; k < rowNodes.length; k++) {\n if (isLabelEnd(rowNodes[k], arrowChar)) {\n inLabel = false;\n j = k;\n break;\n }\n\n if (isStartOfArrow(rowNodes[k])) {\n throw new src_ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[k]);\n }\n\n labels[labelNum].body.push(rowNodes[k]);\n }\n\n if (inLabel) {\n // isLabelEnd never returned a true.\n throw new src_ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[j]);\n }\n }\n } else {\n throw new src_ParseError(\"Expected one of \\\"<>AV=|.\\\" after @\", rowNodes[j]);\n } // Now join the arrow to its labels.\n\n\n var arrow = cdArrow(arrowChar, labels, parser); // Wrap the arrow in ParseNode<\"styling\">.\n // This is done to match parseArray() behavior.\n\n var wrappedArrow = {\n type: \"styling\",\n body: [arrow],\n mode: \"math\",\n style: \"display\" // CD is always displaystyle.\n\n };\n row.push(wrappedArrow); // In CD's syntax, cells are implicit. That is, everything that\n // is not an arrow gets collected into a cell. So create an empty\n // cell now. It will collect upcoming parseNodes.\n\n cell = newCell();\n }\n }\n\n if (i % 2 === 0) {\n // Even-numbered rows consist of: cell, arrow, cell, arrow, ... cell\n // The last cell is not yet pushed into `row`, so:\n row.push(cell);\n } else {\n // Odd-numbered rows consist of: vert arrow, empty cell, ... vert arrow\n // Remove the empty cell that was placed at the beginning of `row`.\n row.shift();\n }\n\n row = [];\n body.push(row);\n } // End row group\n\n\n parser.gullet.endGroup(); // End array group defining \\\\\n\n parser.gullet.endGroup(); // define column separation.\n\n var cols = new Array(body[0].length).fill({\n type: \"align\",\n align: \"c\",\n pregap: 0.25,\n // CD package sets \\enskip between columns.\n postgap: 0.25 // So pre and post each get half an \\enskip, i.e. 0.25em.\n\n });\n return {\n type: \"array\",\n mode: \"math\",\n body: body,\n arraystretch: 1,\n addJot: true,\n rowGaps: [null],\n cols: cols,\n colSeparationType: \"CD\",\n hLinesBeforeRow: new Array(body.length + 1).fill([])\n };\n} // The functions below are not available for general use.\n// They are here only for internal use by the {CD} environment in placing labels\n// next to vertical arrows.\n// We don't need any such functions for horizontal arrows because we can reuse\n// the functionality that already exists for extensible arrows.\n\ndefineFunction({\n type: \"cdlabel\",\n names: [\"\\\\\\\\cdleft\", \"\\\\\\\\cdright\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n return {\n type: \"cdlabel\",\n mode: parser.mode,\n side: funcName.slice(4),\n label: args[0]\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var newOptions = options.havingStyle(options.style.sup());\n var label = buildCommon.wrapFragment(buildGroup(group.label, newOptions, options), options);\n label.classes.push(\"cd-label-\" + group.side);\n label.style.bottom = 0.8 - label.depth + \"em\"; // Zero out label height & depth, so vertical align of arrow is set\n // by the arrow height, not by the label.\n\n label.height = 0;\n label.depth = 0;\n return label;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var label = new mathMLTree.MathNode(\"mrow\", [buildMathML_buildGroup(group.label, options)]);\n label = new mathMLTree.MathNode(\"mpadded\", [label]);\n label.setAttribute(\"width\", \"0\");\n\n if (group.side === \"left\") {\n label.setAttribute(\"lspace\", \"-1width\");\n } // We have to guess at vertical alignment. We know the arrow is 1.8em tall,\n // But we don't know the height or depth of the label.\n\n\n label.setAttribute(\"voffset\", \"0.7em\");\n label = new mathMLTree.MathNode(\"mstyle\", [label]);\n label.setAttribute(\"displaystyle\", \"false\");\n label.setAttribute(\"scriptlevel\", \"1\");\n return label;\n }\n});\ndefineFunction({\n type: \"cdlabelparent\",\n names: [\"\\\\\\\\cdparent\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n return {\n type: \"cdlabelparent\",\n mode: parser.mode,\n fragment: args[0]\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Wrap the vertical arrow and its labels.\n // The parent gets position: relative. The child gets position: absolute.\n // So CSS can locate the label correctly.\n var parent = buildCommon.wrapFragment(buildGroup(group.fragment, options), options);\n parent.classes.push(\"cd-vert-arrow\");\n return parent;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", [buildMathML_buildGroup(group.fragment, options)]);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/char.js\n\n\n // \\@char is an internal function that takes a grouped decimal argument like\n// {123} and converts into symbol with code 123. It is used by the *macro*\n// \\char defined in macros.js.\n\ndefineFunction({\n type: \"textord\",\n names: [\"\\\\@char\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var arg = assertNodeType(args[0], \"ordgroup\");\n var group = arg.body;\n var number = \"\";\n\n for (var i = 0; i < group.length; i++) {\n var node = assertNodeType(group[i], \"textord\");\n number += node.text;\n }\n\n var code = parseInt(number);\n var text;\n\n if (isNaN(code)) {\n throw new src_ParseError(\"\\\\@char has non-numeric argument \" + number); // If we drop IE support, the following code could be replaced with\n // text = String.fromCodePoint(code)\n } else if (code < 0 || code >= 0x10ffff) {\n throw new src_ParseError(\"\\\\@char with invalid code point \" + number);\n } else if (code <= 0xffff) {\n text = String.fromCharCode(code);\n } else {\n // Astral code point; split into surrogate halves\n code -= 0x10000;\n text = String.fromCharCode((code >> 10) + 0xd800, (code & 0x3ff) + 0xdc00);\n }\n\n return {\n type: \"textord\",\n mode: parser.mode,\n text: text\n };\n }\n});\n;// CONCATENATED MODULE: ./src/functions/color.js\n\n\n\n\n\n\n\nvar color_htmlBuilder = function htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options.withColor(group.color), false); // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n\n return buildCommon.makeFragment(elements);\n};\n\nvar color_mathmlBuilder = function mathmlBuilder(group, options) {\n var inner = buildMathML_buildExpression(group.body, options.withColor(group.color));\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"mathcolor\", group.color);\n return node;\n};\n\ndefineFunction({\n type: \"color\",\n names: [\"\\\\textcolor\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"original\"]\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"color\",\n mode: parser.mode,\n color: color,\n body: ordargument(body)\n };\n },\n htmlBuilder: color_htmlBuilder,\n mathmlBuilder: color_mathmlBuilder\n});\ndefineFunction({\n type: \"color\",\n names: [\"\\\\color\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n argTypes: [\"color\"]\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser,\n breakOnTokenText = _ref2.breakOnTokenText;\n var color = assertNodeType(args[0], \"color-token\").color; // Set macro \\current@color in current namespace to store the current\n // color, mimicking the behavior of color.sty.\n // This is currently used just to correctly color a \\right\n // that follows a \\color command.\n\n parser.gullet.macros.set(\"\\\\current@color\", color); // Parse out the implicit body that should be colored.\n\n var body = parser.parseExpression(true, breakOnTokenText);\n return {\n type: \"color\",\n mode: parser.mode,\n color: color,\n body: body\n };\n },\n htmlBuilder: color_htmlBuilder,\n mathmlBuilder: color_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/cr.js\n// Row breaks within tabular environments, and line breaks at top level\n\n\n\n\n // \\DeclareRobustCommand\\\\{...\\@xnewline}\n\ndefineFunction({\n type: \"cr\",\n names: [\"\\\\\\\\\"],\n props: {\n numArgs: 0,\n numOptionalArgs: 1,\n argTypes: [\"size\"],\n allowedInText: true\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser;\n var size = optArgs[0];\n var newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior(\"newLineInDisplayMode\", \"In LaTeX, \\\\\\\\ or \\\\newline \" + \"does nothing in display mode\");\n return {\n type: \"cr\",\n mode: parser.mode,\n newLine: newLine,\n size: size && assertNodeType(size, \"size\").value\n };\n },\n // The following builders are called only at the top level,\n // not within tabular/array environments.\n htmlBuilder: function htmlBuilder(group, options) {\n var span = buildCommon.makeSpan([\"mspace\"], [], options);\n\n if (group.newLine) {\n span.classes.push(\"newline\");\n\n if (group.size) {\n span.style.marginTop = calculateSize(group.size, options) + \"em\";\n }\n }\n\n return span;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mspace\");\n\n if (group.newLine) {\n node.setAttribute(\"linebreak\", \"newline\");\n\n if (group.size) {\n node.setAttribute(\"height\", calculateSize(group.size, options) + \"em\");\n }\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/def.js\n\n\n\nvar globalMap = {\n \"\\\\global\": \"\\\\global\",\n \"\\\\long\": \"\\\\\\\\globallong\",\n \"\\\\\\\\globallong\": \"\\\\\\\\globallong\",\n \"\\\\def\": \"\\\\gdef\",\n \"\\\\gdef\": \"\\\\gdef\",\n \"\\\\edef\": \"\\\\xdef\",\n \"\\\\xdef\": \"\\\\xdef\",\n \"\\\\let\": \"\\\\\\\\globallet\",\n \"\\\\futurelet\": \"\\\\\\\\globalfuture\"\n};\n\nvar checkControlSequence = function checkControlSequence(tok) {\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new src_ParseError(\"Expected a control sequence\", tok);\n }\n\n return name;\n};\n\nvar getRHS = function getRHS(parser) {\n var tok = parser.gullet.popToken();\n\n if (tok.text === \"=\") {\n // consume optional equals\n tok = parser.gullet.popToken();\n\n if (tok.text === \" \") {\n // consume one optional space\n tok = parser.gullet.popToken();\n }\n }\n\n return tok;\n};\n\nvar letCommand = function letCommand(parser, name, tok, global) {\n var macro = parser.gullet.macros.get(tok.text);\n\n if (macro == null) {\n // don't expand it later even if a macro with the same name is defined\n // e.g., \\let\\foo=\\frac \\def\\frac{\\relax} \\frac12\n tok.noexpand = true;\n macro = {\n tokens: [tok],\n numArgs: 0,\n // reproduce the same behavior in expansion\n unexpandable: !parser.gullet.isExpandable(tok.text)\n };\n }\n\n parser.gullet.macros.set(name, macro, global);\n}; // <assignment> -> <non-macro assignment>|<macro assignment>\n// <non-macro assignment> -> <simple assignment>|\\global<non-macro assignment>\n// <macro assignment> -> <definition>|<prefix><macro assignment>\n// <prefix> -> \\global|\\long|\\outer\n\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\global\", \"\\\\long\", \"\\\\\\\\globallong\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: function handler(_ref) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n parser.consumeSpaces();\n var token = parser.fetch();\n\n if (globalMap[token.text]) {\n // KaTeX doesn't have \\par, so ignore \\long\n if (funcName === \"\\\\global\" || funcName === \"\\\\\\\\globallong\") {\n token.text = globalMap[token.text];\n }\n\n return assertNodeType(parser.parseFunction(), \"internal\");\n }\n\n throw new src_ParseError(\"Invalid token after macro prefix\", token);\n }\n}); // Basic support for macro definitions: \\def, \\gdef, \\edef, \\xdef\n// <definition> -> <def><control sequence><definition text>\n// <def> -> \\def|\\gdef|\\edef|\\xdef\n// <definition text> -> <parameter text><left brace><balanced text><right brace>\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\def\", \"\\\\gdef\", \"\\\\edef\", \"\\\\xdef\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n handler: function handler(_ref2) {\n var parser = _ref2.parser,\n funcName = _ref2.funcName;\n var tok = parser.gullet.popToken();\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new src_ParseError(\"Expected a control sequence\", tok);\n }\n\n var numArgs = 0;\n var insert;\n var delimiters = [[]]; // <parameter text> contains no braces\n\n while (parser.gullet.future().text !== \"{\") {\n tok = parser.gullet.popToken();\n\n if (tok.text === \"#\") {\n // If the very last character of the <parameter text> is #, so that\n // this # is immediately followed by {, TeX will behave as if the {\n // had been inserted at the right end of both the parameter text\n // and the replacement text.\n if (parser.gullet.future().text === \"{\") {\n insert = parser.gullet.future();\n delimiters[numArgs].push(\"{\");\n break;\n } // A parameter, the first appearance of # must be followed by 1,\n // the next by 2, and so on; up to nine #’s are allowed\n\n\n tok = parser.gullet.popToken();\n\n if (!/^[1-9]$/.test(tok.text)) {\n throw new src_ParseError(\"Invalid argument number \\\"\" + tok.text + \"\\\"\");\n }\n\n if (parseInt(tok.text) !== numArgs + 1) {\n throw new src_ParseError(\"Argument number \\\"\" + tok.text + \"\\\" out of order\");\n }\n\n numArgs++;\n delimiters.push([]);\n } else if (tok.text === \"EOF\") {\n throw new src_ParseError(\"Expected a macro definition\");\n } else {\n delimiters[numArgs].push(tok.text);\n }\n } // replacement text, enclosed in '{' and '}' and properly nested\n\n\n var _parser$gullet$consum = parser.gullet.consumeArg(),\n tokens = _parser$gullet$consum.tokens;\n\n if (insert) {\n tokens.unshift(insert);\n }\n\n if (funcName === \"\\\\edef\" || funcName === \"\\\\xdef\") {\n tokens = parser.gullet.expandTokens(tokens);\n tokens.reverse(); // to fit in with stack order\n } // Final arg is the expansion of the macro\n\n\n parser.gullet.macros.set(name, {\n tokens: tokens,\n numArgs: numArgs,\n delimiters: delimiters\n }, funcName === globalMap[funcName]);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n}); // <simple assignment> -> <let assignment>\n// <let assignment> -> \\futurelet<control sequence><token><token>\n// | \\let<control sequence><equals><one optional space><token>\n// <equals> -> <optional spaces>|<optional spaces>=\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\let\", \"\\\\\\\\globallet\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n handler: function handler(_ref3) {\n var parser = _ref3.parser,\n funcName = _ref3.funcName;\n var name = checkControlSequence(parser.gullet.popToken());\n parser.gullet.consumeSpaces();\n var tok = getRHS(parser);\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globallet\");\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n}); // ref: https://www.tug.org/TUGboat/tb09-3/tb22bechtolsheim.pdf\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\futurelet\", \"\\\\\\\\globalfuture\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n handler: function handler(_ref4) {\n var parser = _ref4.parser,\n funcName = _ref4.funcName;\n var name = checkControlSequence(parser.gullet.popToken());\n var middle = parser.gullet.popToken();\n var tok = parser.gullet.popToken();\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globalfuture\");\n parser.gullet.pushToken(tok);\n parser.gullet.pushToken(middle);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n});\n;// CONCATENATED MODULE: ./src/delimiter.js\n/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nvar getMetrics = function getMetrics(symbol, font, mode) {\n var replace = src_symbols.math[symbol] && src_symbols.math[symbol].replace;\n var metrics = getCharacterMetrics(replace || symbol, font, mode);\n\n if (!metrics) {\n throw new Error(\"Unsupported symbol \" + symbol + \" and font size \" + font + \".\");\n }\n\n return metrics;\n};\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\n\n\nvar styleWrap = function styleWrap(delim, toStyle, options, classes) {\n var newOptions = options.havingBaseStyle(toStyle);\n var span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options);\n var delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n span.height *= delimSizeMultiplier;\n span.depth *= delimSizeMultiplier;\n span.maxFontSize = newOptions.sizeMultiplier;\n return span;\n};\n\nvar centerSpan = function centerSpan(span, options, style) {\n var newOptions = options.havingBaseStyle(style);\n var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;\n span.classes.push(\"delimcenter\");\n span.style.top = shift + \"em\";\n span.height -= shift;\n span.depth += shift;\n};\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\n\n\nvar makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) {\n var text = buildCommon.makeSymbol(delim, \"Main-Regular\", mode, options);\n var span = styleWrap(text, style, options, classes);\n\n if (center) {\n centerSpan(span, options, style);\n }\n\n return span;\n};\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\n\n\nvar mathrmSize = function mathrmSize(value, size, mode, options) {\n return buildCommon.makeSymbol(value, \"Size\" + size + \"-Regular\", mode, options);\n};\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\n\n\nvar makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) {\n var inner = mathrmSize(delim, size, mode, options);\n var span = styleWrap(buildCommon.makeSpan([\"delimsizing\", \"size\" + size], [inner], options), src_Style.TEXT, options, classes);\n\n if (center) {\n centerSpan(span, options, src_Style.TEXT);\n }\n\n return span;\n};\n/**\n * Make a span from a font glyph with the given offset and in the given font.\n * This is used in makeStackedDelim to make the stacking pieces for the delimiter.\n */\n\n\nvar makeGlyphSpan = function makeGlyphSpan(symbol, font, mode) {\n var sizeClass; // Apply the correct CSS class to choose the right font.\n\n if (font === \"Size1-Regular\") {\n sizeClass = \"delim-size1\";\n } else\n /* if (font === \"Size4-Regular\") */\n {\n sizeClass = \"delim-size4\";\n }\n\n var corner = buildCommon.makeSpan([\"delimsizinginner\", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); // Since this will be passed into `makeVList` in the end, wrap the element\n // in the appropriate tag that VList uses.\n\n return {\n type: \"elem\",\n elem: corner\n };\n};\n\nvar makeInner = function makeInner(ch, height, options) {\n // Create a span with inline SVG for the inner part of a tall stacked delimiter.\n var width = fontMetricsData[\"Size4-Regular\"][ch.charCodeAt(0)] ? fontMetricsData[\"Size4-Regular\"][ch.charCodeAt(0)][4].toFixed(3) : fontMetricsData[\"Size1-Regular\"][ch.charCodeAt(0)][4].toFixed(3);\n var path = new PathNode(\"inner\", innerPath(ch, Math.round(1000 * height)));\n var svgNode = new SvgNode([path], {\n \"width\": width + \"em\",\n \"height\": height + \"em\",\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + width + \"em\",\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + Math.round(1000 * height),\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = buildCommon.makeSvgSpan([], [svgNode], options);\n span.height = height;\n span.style.height = height + \"em\";\n span.style.width = width + \"em\";\n return {\n type: \"elem\",\n elem: span\n };\n}; // Helpers for makeStackedDelim\n\n\nvar lapInEms = 0.008;\nvar lap = {\n type: \"kern\",\n size: -1 * lapInEms\n};\nvar verts = [\"|\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\vert\"];\nvar doubleVerts = [\"\\\\|\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\Vert\"];\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\n\nvar makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) {\n // There are four parts, the top, an optional middle, a repeated part, and a\n // bottom.\n var top;\n var middle;\n var repeat;\n var bottom;\n top = repeat = bottom = delim;\n middle = null; // Also keep track of what font the delimiters are in\n\n var font = \"Size1-Regular\"; // We set the parts and font based on the symbol. Note that we use\n // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n // repeats of the arrows\n\n if (delim === \"\\\\uparrow\") {\n repeat = bottom = \"\\u23D0\";\n } else if (delim === \"\\\\Uparrow\") {\n repeat = bottom = \"\\u2016\";\n } else if (delim === \"\\\\downarrow\") {\n top = repeat = \"\\u23D0\";\n } else if (delim === \"\\\\Downarrow\") {\n top = repeat = \"\\u2016\";\n } else if (delim === \"\\\\updownarrow\") {\n top = \"\\\\uparrow\";\n repeat = \"\\u23D0\";\n bottom = \"\\\\downarrow\";\n } else if (delim === \"\\\\Updownarrow\") {\n top = \"\\\\Uparrow\";\n repeat = \"\\u2016\";\n bottom = \"\\\\Downarrow\";\n } else if (utils.contains(verts, delim)) {\n repeat = \"\\u2223\";\n } else if (utils.contains(doubleVerts, delim)) {\n repeat = \"\\u2225\";\n } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n top = \"\\u23A1\";\n repeat = \"\\u23A2\";\n bottom = \"\\u23A3\";\n font = \"Size4-Regular\";\n } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n top = \"\\u23A4\";\n repeat = \"\\u23A5\";\n bottom = \"\\u23A6\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lfloor\" || delim === \"\\u230A\") {\n repeat = top = \"\\u23A2\";\n bottom = \"\\u23A3\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lceil\" || delim === \"\\u2308\") {\n top = \"\\u23A1\";\n repeat = bottom = \"\\u23A2\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rfloor\" || delim === \"\\u230B\") {\n repeat = top = \"\\u23A5\";\n bottom = \"\\u23A6\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rceil\" || delim === \"\\u2309\") {\n top = \"\\u23A4\";\n repeat = bottom = \"\\u23A5\";\n font = \"Size4-Regular\";\n } else if (delim === \"(\" || delim === \"\\\\lparen\") {\n top = \"\\u239B\";\n repeat = \"\\u239C\";\n bottom = \"\\u239D\";\n font = \"Size4-Regular\";\n } else if (delim === \")\" || delim === \"\\\\rparen\") {\n top = \"\\u239E\";\n repeat = \"\\u239F\";\n bottom = \"\\u23A0\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n top = \"\\u23A7\";\n middle = \"\\u23A8\";\n bottom = \"\\u23A9\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n top = \"\\u23AB\";\n middle = \"\\u23AC\";\n bottom = \"\\u23AD\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lgroup\" || delim === \"\\u27EE\") {\n top = \"\\u23A7\";\n bottom = \"\\u23A9\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rgroup\" || delim === \"\\u27EF\") {\n top = \"\\u23AB\";\n bottom = \"\\u23AD\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lmoustache\" || delim === \"\\u23B0\") {\n top = \"\\u23A7\";\n bottom = \"\\u23AD\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rmoustache\" || delim === \"\\u23B1\") {\n top = \"\\u23AB\";\n bottom = \"\\u23A9\";\n repeat = \"\\u23AA\";\n font = \"Size4-Regular\";\n } // Get the metrics of the four sections\n\n\n var topMetrics = getMetrics(top, font, mode);\n var topHeightTotal = topMetrics.height + topMetrics.depth;\n var repeatMetrics = getMetrics(repeat, font, mode);\n var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n var bottomMetrics = getMetrics(bottom, font, mode);\n var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n var middleHeightTotal = 0;\n var middleFactor = 1;\n\n if (middle !== null) {\n var middleMetrics = getMetrics(middle, font, mode);\n middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n middleFactor = 2; // repeat symmetrically above and below middle\n } // Calcuate the minimal height that the delimiter can have.\n // It is at least the size of the top, bottom, and optional middle combined.\n\n\n var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; // Compute the number of copies of the repeat symbol we will need\n\n var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal))); // Compute the total height of the delimiter including all the symbols\n\n var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; // The center of the delimiter is placed at the center of the axis. Note\n // that in this context, \"center\" means that the delimiter should be\n // centered around the axis in the current style, while normally it is\n // centered around the axis in textstyle.\n\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (center) {\n axisHeight *= options.sizeMultiplier;\n } // Calculate the depth\n\n\n var depth = realHeightTotal / 2 - axisHeight; // Now, we start building the pieces that will go into the vlist\n // Keep a list of the pieces of the stacked delimiter\n\n var stack = []; // Add the bottom symbol\n\n stack.push(makeGlyphSpan(bottom, font, mode));\n stack.push(lap); // overlap\n\n if (middle === null) {\n // The middle section will be an SVG. Make it an extra 0.016em tall.\n // We'll overlap by 0.008em at top and bottom.\n var innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;\n stack.push(makeInner(repeat, innerHeight, options));\n } else {\n // When there is a middle bit, we need the middle part and two repeated\n // sections\n var _innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;\n\n stack.push(makeInner(repeat, _innerHeight, options)); // Now insert the middle of the brace.\n\n stack.push(lap);\n stack.push(makeGlyphSpan(middle, font, mode));\n stack.push(lap);\n stack.push(makeInner(repeat, _innerHeight, options));\n } // Add the top symbol\n\n\n stack.push(lap);\n stack.push(makeGlyphSpan(top, font, mode)); // Finally, build the vlist\n\n var newOptions = options.havingBaseStyle(src_Style.TEXT);\n var inner = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: depth,\n children: stack\n }, newOptions);\n return styleWrap(buildCommon.makeSpan([\"delimsizing\", \"mult\"], [inner], newOptions), src_Style.TEXT, options, classes);\n}; // All surds have 0.08em padding above the viniculum inside the SVG.\n// That keeps browser span height rounding error from pinching the line.\n\n\nvar vbPad = 80; // padding above the surd, measured inside the viewBox.\n\nvar emPad = 0.08; // padding, in ems, measured in the document.\n\nvar sqrtSvg = function sqrtSvg(sqrtName, height, viewBoxHeight, extraViniculum, options) {\n var path = sqrtPath(sqrtName, extraViniculum, viewBoxHeight);\n var pathNode = new PathNode(sqrtName, path);\n var svg = new SvgNode([pathNode], {\n // Note: 1000:1 ratio of viewBox to document em width.\n \"width\": \"400em\",\n \"height\": height + \"em\",\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n });\n return buildCommon.makeSvgSpan([\"hide-tail\"], [svg], options);\n};\n/**\n * Make a sqrt image of the given height,\n */\n\n\nvar makeSqrtImage = function makeSqrtImage(height, options) {\n // Define a newOptions that removes the effect of size changes such as \\Huge.\n // We don't pick different a height surd for \\Huge. For it, we scale up.\n var newOptions = options.havingBaseSizing(); // Pick the desired surd glyph from a sequence of surds.\n\n var delim = traverseSequence(\"\\\\surd\", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);\n var sizeMultiplier = newOptions.sizeMultiplier; // default\n // The standard sqrt SVGs each have a 0.04em thick viniculum.\n // If Settings.minRuleThickness is larger than that, we add extraViniculum.\n\n var extraViniculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness); // Create a span containing an SVG image of a sqrt symbol.\n\n var span;\n var spanHeight = 0;\n var texHeight = 0;\n var viewBoxHeight = 0;\n var advanceWidth; // We create viewBoxes with 80 units of \"padding\" above each surd.\n // Then browser rounding error on the parent span height will not\n // encroach on the ink of the viniculum. But that padding is not\n // included in the TeX-like `height` used for calculation of\n // vertical alignment. So texHeight = span.height < span.style.height.\n\n if (delim.type === \"small\") {\n // Get an SVG that is derived from glyph U+221A in font KaTeX-Main.\n // 1000 unit normal glyph height.\n viewBoxHeight = 1000 + 1000 * extraViniculum + vbPad;\n\n if (height < 1.0) {\n sizeMultiplier = 1.0; // mimic a \\textfont radical\n } else if (height < 1.4) {\n sizeMultiplier = 0.7; // mimic a \\scriptfont radical\n }\n\n spanHeight = (1.0 + extraViniculum + emPad) / sizeMultiplier;\n texHeight = (1.00 + extraViniculum) / sizeMultiplier;\n span = sqrtSvg(\"sqrtMain\", spanHeight, viewBoxHeight, extraViniculum, options);\n span.style.minWidth = \"0.853em\";\n advanceWidth = 0.833 / sizeMultiplier; // from the font.\n } else if (delim.type === \"large\") {\n // These SVGs come from fonts: KaTeX_Size1, _Size2, etc.\n viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size];\n texHeight = (sizeToMaxHeight[delim.size] + extraViniculum) / sizeMultiplier;\n spanHeight = (sizeToMaxHeight[delim.size] + extraViniculum + emPad) / sizeMultiplier;\n span = sqrtSvg(\"sqrtSize\" + delim.size, spanHeight, viewBoxHeight, extraViniculum, options);\n span.style.minWidth = \"1.02em\";\n advanceWidth = 1.0 / sizeMultiplier; // 1.0 from the font.\n } else {\n // Tall sqrt. In TeX, this would be stacked using multiple glyphs.\n // We'll use a single SVG to accomplish the same thing.\n spanHeight = height + extraViniculum + emPad;\n texHeight = height + extraViniculum;\n viewBoxHeight = Math.floor(1000 * height + extraViniculum) + vbPad;\n span = sqrtSvg(\"sqrtTall\", spanHeight, viewBoxHeight, extraViniculum, options);\n span.style.minWidth = \"0.742em\";\n advanceWidth = 1.056;\n }\n\n span.height = texHeight;\n span.style.height = spanHeight + \"em\";\n return {\n span: span,\n advanceWidth: advanceWidth,\n // Calculate the actual line width.\n // This actually should depend on the chosen font -- e.g. \\boldmath\n // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and\n // have thicker rules.\n ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraViniculum) * sizeMultiplier\n };\n}; // There are three kinds of delimiters, delimiters that stack when they become\n// too large\n\n\nvar stackLargeDelimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230A\", \"\\u230B\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"\\\\surd\"]; // delimiters that always stack\n\nvar stackAlwaysDelimiters = [\"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\", \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\", \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27EE\", \"\\u27EF\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23B0\", \"\\u23B1\"]; // and delimiters that never stack\n\nvar stackNeverDelimiters = [\"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\"]; // Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\n\nvar sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\n\nvar makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) {\n // < and > turn into \\langle and \\rangle in delimiters\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27E8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27E9\") {\n delim = \"\\\\rangle\";\n } // Sized delimiters are never centered.\n\n\n if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) {\n return makeLargeDelim(delim, size, false, options, mode, classes);\n } else if (utils.contains(stackAlwaysDelimiters, delim)) {\n return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);\n } else {\n throw new src_ParseError(\"Illegal delimiter: '\" + delim + \"'\");\n }\n};\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n\n// Delimiters that never stack try small delimiters and large delimiters only\nvar stackNeverDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}]; // Delimiters that always stack try the small delimiters first, then stack\n\nvar stackAlwaysDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"stack\"\n}]; // Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\n\nvar stackLargeDelimiterSequence = [{\n type: \"small\",\n style: src_Style.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: src_Style.SCRIPT\n}, {\n type: \"small\",\n style: src_Style.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}, {\n type: \"stack\"\n}];\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n * TODO(#963) Use more specific font family return type once that is introduced.\n */\n\nvar delimTypeToFont = function delimTypeToFont(type) {\n if (type.type === \"small\") {\n return \"Main-Regular\";\n } else if (type.type === \"large\") {\n return \"Size\" + type.size + \"-Regular\";\n } else if (type.type === \"stack\") {\n return \"Size4-Regular\";\n } else {\n throw new Error(\"Add support for delim type '\" + type.type + \"' here.\");\n }\n};\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\n\n\nvar traverseSequence = function traverseSequence(delim, height, sequence, options) {\n // Here, we choose the index we should start at in the sequences. In smaller\n // sizes (which correspond to larger numbers in style.size) we start earlier\n // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n var start = Math.min(2, 3 - options.style.size);\n\n for (var i = start; i < sequence.length; i++) {\n if (sequence[i].type === \"stack\") {\n // This is always the last delimiter, so we just break the loop now.\n break;\n }\n\n var metrics = getMetrics(delim, delimTypeToFont(sequence[i]), \"math\");\n var heightDepth = metrics.height + metrics.depth; // Small delimiters are scaled down versions of the same font, so we\n // account for the style change size.\n\n if (sequence[i].type === \"small\") {\n var newOptions = options.havingBaseStyle(sequence[i].style);\n heightDepth *= newOptions.sizeMultiplier;\n } // Check if the delimiter at this size works for the given height.\n\n\n if (heightDepth > height) {\n return sequence[i];\n }\n } // If we reached the end of the sequence, return the last sequence element.\n\n\n return sequence[sequence.length - 1];\n};\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\n\n\nvar makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) {\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27E8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27E9\") {\n delim = \"\\\\rangle\";\n } // Decide what sequence to use\n\n\n var sequence;\n\n if (utils.contains(stackNeverDelimiters, delim)) {\n sequence = stackNeverDelimiterSequence;\n } else if (utils.contains(stackLargeDelimiters, delim)) {\n sequence = stackLargeDelimiterSequence;\n } else {\n sequence = stackAlwaysDelimiterSequence;\n } // Look through the sequence\n\n\n var delimType = traverseSequence(delim, height, sequence, options); // Get the delimiter from font glyphs.\n // Depending on the sequence element we decided on, call the\n // appropriate function.\n\n if (delimType.type === \"small\") {\n return makeSmallDelim(delim, delimType.style, center, options, mode, classes);\n } else if (delimType.type === \"large\") {\n return makeLargeDelim(delim, delimType.size, center, options, mode, classes);\n } else\n /* if (delimType.type === \"stack\") */\n {\n return makeStackedDelim(delim, height, center, options, mode, classes);\n }\n};\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\n\n\nvar makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) {\n // We always center \\left/\\right delimiters, so the axis is always shifted\n var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; // Taken from TeX source, tex.web, function make_left_right\n\n var delimiterFactor = 901;\n var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm;\n var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);\n var totalHeight = Math.max( // In real TeX, calculations are done using integral values which are\n // 65536 per pt, or 655360 per em. So, the division here truncates in\n // TeX but doesn't here, producing different results. If we wanted to\n // exactly match TeX's calculation, we could do\n // Math.floor(655360 * maxDistFromAxis / 500) *\n // delimiterFactor / 655360\n // (To see the difference, compare\n // x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n // in TeX and KaTeX)\n maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n // height\n\n return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);\n};\n\n/* harmony default export */ var delimiter = ({\n sqrtImage: makeSqrtImage,\n sizedDelim: makeSizedDelim,\n sizeToMaxHeight: sizeToMaxHeight,\n customSizedDelim: makeCustomSizedDelim,\n leftRightDelim: makeLeftRightDelim\n});\n;// CONCATENATED MODULE: ./src/functions/delimsizing.js\n\n\n\n\n\n\n\n\n\n// Extra data needed for the delimiter handler down below\nvar delimiterSizes = {\n \"\\\\bigl\": {\n mclass: \"mopen\",\n size: 1\n },\n \"\\\\Bigl\": {\n mclass: \"mopen\",\n size: 2\n },\n \"\\\\biggl\": {\n mclass: \"mopen\",\n size: 3\n },\n \"\\\\Biggl\": {\n mclass: \"mopen\",\n size: 4\n },\n \"\\\\bigr\": {\n mclass: \"mclose\",\n size: 1\n },\n \"\\\\Bigr\": {\n mclass: \"mclose\",\n size: 2\n },\n \"\\\\biggr\": {\n mclass: \"mclose\",\n size: 3\n },\n \"\\\\Biggr\": {\n mclass: \"mclose\",\n size: 4\n },\n \"\\\\bigm\": {\n mclass: \"mrel\",\n size: 1\n },\n \"\\\\Bigm\": {\n mclass: \"mrel\",\n size: 2\n },\n \"\\\\biggm\": {\n mclass: \"mrel\",\n size: 3\n },\n \"\\\\Biggm\": {\n mclass: \"mrel\",\n size: 4\n },\n \"\\\\big\": {\n mclass: \"mord\",\n size: 1\n },\n \"\\\\Big\": {\n mclass: \"mord\",\n size: 2\n },\n \"\\\\bigg\": {\n mclass: \"mord\",\n size: 3\n },\n \"\\\\Bigg\": {\n mclass: \"mord\",\n size: 4\n }\n};\nvar delimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230A\", \"\\u230B\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"<\", \">\", \"\\\\langle\", \"\\u27E8\", \"\\\\rangle\", \"\\u27E9\", \"\\\\lt\", \"\\\\gt\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27EE\", \"\\u27EF\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23B0\", \"\\u23B1\", \"/\", \"\\\\backslash\", \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\", \"\\\\uparrow\", \"\\\\Uparrow\", \"\\\\downarrow\", \"\\\\Downarrow\", \"\\\\updownarrow\", \"\\\\Updownarrow\", \".\"];\n\n// Delimiter functions\nfunction checkDelimiter(delim, context) {\n var symDelim = checkSymbolNodeType(delim);\n\n if (symDelim && utils.contains(delimiters, symDelim.text)) {\n return symDelim;\n } else if (symDelim) {\n throw new src_ParseError(\"Invalid delimiter '\" + symDelim.text + \"' after '\" + context.funcName + \"'\", delim);\n } else {\n throw new src_ParseError(\"Invalid delimiter type '\" + delim.type + \"'\", delim);\n }\n}\n\ndefineFunction({\n type: \"delimsizing\",\n names: [\"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\", \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\", \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\", \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\"],\n props: {\n numArgs: 1,\n argTypes: [\"primitive\"]\n },\n handler: function handler(context, args) {\n var delim = checkDelimiter(args[0], context);\n return {\n type: \"delimsizing\",\n mode: context.parser.mode,\n size: delimiterSizes[context.funcName].size,\n mclass: delimiterSizes[context.funcName].mclass,\n delim: delim.text\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n if (group.delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return buildCommon.makeSpan([group.mclass]);\n } // Use delimiter.sizedDelim to generate the delimiter.\n\n\n return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]);\n },\n mathmlBuilder: function mathmlBuilder(group) {\n var children = [];\n\n if (group.delim !== \".\") {\n children.push(makeText(group.delim, group.mode));\n }\n\n var node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"mopen\" or \"mclose\" mclass.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n node.setAttribute(\"stretchy\", \"true\");\n node.setAttribute(\"minsize\", delimiter.sizeToMaxHeight[group.size] + \"em\");\n node.setAttribute(\"maxsize\", delimiter.sizeToMaxHeight[group.size] + \"em\");\n return node;\n }\n});\n\nfunction assertParsed(group) {\n if (!group.body) {\n throw new Error(\"Bug: The leftright ParseNode wasn't fully parsed.\");\n }\n}\n\ndefineFunction({\n type: \"leftright-right\",\n names: [\"\\\\right\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: function handler(context, args) {\n // \\left case below triggers parsing of \\right in\n // `const right = parser.parseFunction();`\n // uses this return value.\n var color = context.parser.gullet.macros.get(\"\\\\current@color\");\n\n if (color && typeof color !== \"string\") {\n throw new src_ParseError(\"\\\\current@color set to non-string in \\\\right\");\n }\n\n return {\n type: \"leftright-right\",\n mode: context.parser.mode,\n delim: checkDelimiter(args[0], context).text,\n color: color // undefined if not set via \\color\n\n };\n }\n});\ndefineFunction({\n type: \"leftright\",\n names: [\"\\\\left\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: function handler(context, args) {\n var delim = checkDelimiter(args[0], context);\n var parser = context.parser; // Parse out the implicit body\n\n ++parser.leftrightDepth; // parseExpression stops before '\\\\right'\n\n var body = parser.parseExpression(false);\n --parser.leftrightDepth; // Check the next token\n\n parser.expect(\"\\\\right\", false);\n var right = assertNodeType(parser.parseFunction(), \"leftright-right\");\n return {\n type: \"leftright\",\n mode: parser.mode,\n body: body,\n left: delim.text,\n right: right.delim,\n rightColor: right.color\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n assertParsed(group); // Build the inner expression\n\n var inner = buildExpression(group.body, options, true, [\"mopen\", \"mclose\"]);\n var innerHeight = 0;\n var innerDepth = 0;\n var hadMiddle = false; // Calculate its height and depth\n\n for (var i = 0; i < inner.length; i++) {\n // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n if (inner[i].isMiddle) {\n hadMiddle = true;\n } else {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n } // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n\n\n innerHeight *= options.sizeMultiplier;\n innerDepth *= options.sizeMultiplier;\n var leftDelim;\n\n if (group.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, [\"mopen\"]);\n } // Add it to the beginning of the expression\n\n\n inner.unshift(leftDelim); // Handle middle delimiters\n\n if (hadMiddle) {\n for (var _i = 1; _i < inner.length; _i++) {\n var middleDelim = inner[_i]; // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n\n var isMiddle = middleDelim.isMiddle;\n\n if (isMiddle) {\n // Apply the options that were active when \\middle was called\n inner[_i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []);\n }\n }\n }\n\n var rightDelim; // Same for the right delimiter, but using color specified by \\color\n\n if (group.right === \".\") {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n var colorOptions = group.rightColor ? options.withColor(group.rightColor) : options;\n rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, [\"mclose\"]);\n } // Add it to the end of the expression.\n\n\n inner.push(rightDelim);\n return buildCommon.makeSpan([\"minner\"], inner, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n assertParsed(group);\n var inner = buildMathML_buildExpression(group.body, options);\n\n if (group.left !== \".\") {\n var leftNode = new mathMLTree.MathNode(\"mo\", [makeText(group.left, group.mode)]);\n leftNode.setAttribute(\"fence\", \"true\");\n inner.unshift(leftNode);\n }\n\n if (group.right !== \".\") {\n var rightNode = new mathMLTree.MathNode(\"mo\", [makeText(group.right, group.mode)]);\n rightNode.setAttribute(\"fence\", \"true\");\n\n if (group.rightColor) {\n rightNode.setAttribute(\"mathcolor\", group.rightColor);\n }\n\n inner.push(rightNode);\n }\n\n return makeRow(inner);\n }\n});\ndefineFunction({\n type: \"middle\",\n names: [\"\\\\middle\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: function handler(context, args) {\n var delim = checkDelimiter(args[0], context);\n\n if (!context.parser.leftrightDepth) {\n throw new src_ParseError(\"\\\\middle without preceding \\\\left\", delim);\n }\n\n return {\n type: \"middle\",\n mode: context.parser.mode,\n delim: delim.text\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var middleDelim;\n\n if (group.delim === \".\") {\n middleDelim = makeNullDelimiter(options, []);\n } else {\n middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []);\n var isMiddle = {\n delim: group.delim,\n options: options\n }; // Property `isMiddle` not defined on `span`. It is only used in\n // this file above.\n // TODO: Fix this violation of the `span` type and possibly rename\n // things since `isMiddle` sounds like a boolean, but is a struct.\n // $FlowFixMe\n\n middleDelim.isMiddle = isMiddle;\n }\n\n return middleDelim;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n // A Firefox \\middle will strech a character vertically only if it\n // is in the fence part of the operator dictionary at:\n // https://www.w3.org/TR/MathML3/appendixc.html.\n // So we need to avoid U+2223 and use plain \"|\" instead.\n var textNode = group.delim === \"\\\\vert\" || group.delim === \"|\" ? makeText(\"|\", \"text\") : makeText(group.delim, group.mode);\n var middleNode = new mathMLTree.MathNode(\"mo\", [textNode]);\n middleNode.setAttribute(\"fence\", \"true\"); // MathML gives 5/18em spacing to each <mo> element.\n // \\middle should get delimiter spacing instead.\n\n middleNode.setAttribute(\"lspace\", \"0.05em\");\n middleNode.setAttribute(\"rspace\", \"0.05em\");\n return middleNode;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/enclose.js\n\n\n\n\n\n\n\n\n\n\n\n\nvar enclose_htmlBuilder = function htmlBuilder(group, options) {\n // \\cancel, \\bcancel, \\xcancel, \\sout, \\fbox, \\colorbox, \\fcolorbox, \\phase\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n var inner = buildCommon.wrapFragment(buildGroup(group.body, options), options);\n var label = group.label.substr(1);\n var scale = options.sizeMultiplier;\n var img;\n var imgShift = 0; // In the LaTeX cancel package, line geometry is slightly different\n // depending on whether the subject is wider than it is tall, or vice versa.\n // We don't know the width of a group, so as a proxy, we test if\n // the subject is a single character. This captures most of the\n // subjects that should get the \"tall\" treatment.\n\n var isSingleChar = utils.isCharacterBox(group.body);\n\n if (label === \"sout\") {\n img = buildCommon.makeSpan([\"stretchy\", \"sout\"]);\n img.height = options.fontMetrics().defaultRuleThickness / scale;\n imgShift = -0.5 * options.fontMetrics().xHeight;\n } else if (label === \"phase\") {\n // Set a couple of dimensions from the steinmetz package.\n var lineWeight = calculateSize({\n number: 0.6,\n unit: \"pt\"\n }, options);\n var clearance = calculateSize({\n number: 0.35,\n unit: \"ex\"\n }, options); // Prevent size changes like \\Huge from affecting line thickness\n\n var newOptions = options.havingBaseSizing();\n scale = scale / newOptions.sizeMultiplier;\n var angleHeight = inner.height + inner.depth + lineWeight + clearance; // Reserve a left pad for the angle.\n\n inner.style.paddingLeft = angleHeight / 2 + lineWeight + \"em\"; // Create an SVG\n\n var viewBoxHeight = Math.floor(1000 * angleHeight * scale);\n var path = phasePath(viewBoxHeight);\n var svgNode = new SvgNode([new PathNode(\"phase\", path)], {\n \"width\": \"400em\",\n \"height\": viewBoxHeight / 1000 + \"em\",\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n }); // Wrap it in a span with overflow: hidden.\n\n img = buildCommon.makeSvgSpan([\"hide-tail\"], [svgNode], options);\n img.style.height = angleHeight + \"em\";\n imgShift = inner.depth + lineWeight + clearance;\n } else {\n // Add horizontal padding\n if (/cancel/.test(label)) {\n if (!isSingleChar) {\n inner.classes.push(\"cancel-pad\");\n }\n } else if (label === \"angl\") {\n inner.classes.push(\"anglpad\");\n } else {\n inner.classes.push(\"boxpad\");\n } // Add vertical padding\n\n\n var topPad = 0;\n var bottomPad = 0;\n var ruleThickness = 0; // ref: cancel package: \\advance\\totalheight2\\p@ % \"+2\"\n\n if (/box/.test(label)) {\n ruleThickness = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // User override.\n );\n topPad = options.fontMetrics().fboxsep + (label === \"colorbox\" ? 0 : ruleThickness);\n bottomPad = topPad;\n } else if (label === \"angl\") {\n ruleThickness = Math.max(options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n topPad = 4 * ruleThickness; // gap = 3 × line, plus the line itself.\n\n bottomPad = Math.max(0, 0.25 - inner.depth);\n } else {\n topPad = isSingleChar ? 0.2 : 0;\n bottomPad = topPad;\n }\n\n img = stretchy.encloseSpan(inner, label, topPad, bottomPad, options);\n\n if (/fbox|boxed|fcolorbox/.test(label)) {\n img.style.borderStyle = \"solid\";\n img.style.borderWidth = ruleThickness + \"em\";\n } else if (label === \"angl\" && ruleThickness !== 0.049) {\n img.style.borderTopWidth = ruleThickness + \"em\";\n img.style.borderRightWidth = ruleThickness + \"em\";\n }\n\n imgShift = inner.depth + bottomPad;\n\n if (group.backgroundColor) {\n img.style.backgroundColor = group.backgroundColor;\n\n if (group.borderColor) {\n img.style.borderColor = group.borderColor;\n }\n }\n }\n\n var vlist;\n\n if (group.backgroundColor) {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Put the color background behind inner;\n {\n type: \"elem\",\n elem: img,\n shift: imgShift\n }, {\n type: \"elem\",\n elem: inner,\n shift: 0\n }]\n }, options);\n } else {\n var classes = /cancel|phase/.test(label) ? [\"svg-align\"] : [];\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Write the \\cancel stroke on top of inner.\n {\n type: \"elem\",\n elem: inner,\n shift: 0\n }, {\n type: \"elem\",\n elem: img,\n shift: imgShift,\n wrapperClasses: classes\n }]\n }, options);\n }\n\n if (/cancel/.test(label)) {\n // The cancel package documentation says that cancel lines add their height\n // to the expression, but tests show that isn't how it actually works.\n vlist.height = inner.height;\n vlist.depth = inner.depth;\n }\n\n if (/cancel/.test(label) && !isSingleChar) {\n // cancel does not create horiz space for its line extension.\n return buildCommon.makeSpan([\"mord\", \"cancel-lap\"], [vlist], options);\n } else {\n return buildCommon.makeSpan([\"mord\"], [vlist], options);\n }\n};\n\nvar enclose_mathmlBuilder = function mathmlBuilder(group, options) {\n var fboxsep = 0;\n var node = new mathMLTree.MathNode(group.label.indexOf(\"colorbox\") > -1 ? \"mpadded\" : \"menclose\", [buildMathML_buildGroup(group.body, options)]);\n\n switch (group.label) {\n case \"\\\\cancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike\");\n break;\n\n case \"\\\\bcancel\":\n node.setAttribute(\"notation\", \"downdiagonalstrike\");\n break;\n\n case \"\\\\phase\":\n node.setAttribute(\"notation\", \"phasorangle\");\n break;\n\n case \"\\\\sout\":\n node.setAttribute(\"notation\", \"horizontalstrike\");\n break;\n\n case \"\\\\fbox\":\n node.setAttribute(\"notation\", \"box\");\n break;\n\n case \"\\\\angl\":\n node.setAttribute(\"notation\", \"actuarial\");\n break;\n\n case \"\\\\fcolorbox\":\n case \"\\\\colorbox\":\n // <menclose> doesn't have a good notation option. So use <mpadded>\n // instead. Set some attributes that come included with <menclose>.\n fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm;\n node.setAttribute(\"width\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"height\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"lspace\", fboxsep + \"pt\"); //\n\n node.setAttribute(\"voffset\", fboxsep + \"pt\");\n\n if (group.label === \"\\\\fcolorbox\") {\n var thk = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // user override\n );\n node.setAttribute(\"style\", \"border: \" + thk + \"em solid \" + String(group.borderColor));\n }\n\n break;\n\n case \"\\\\xcancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike downdiagonalstrike\");\n break;\n }\n\n if (group.backgroundColor) {\n node.setAttribute(\"mathbackground\", group.backgroundColor);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\colorbox\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"text\"]\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor: color,\n body: body\n };\n },\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fcolorbox\"],\n props: {\n numArgs: 3,\n allowedInText: true,\n argTypes: [\"color\", \"color\", \"text\"]\n },\n handler: function handler(_ref2, args, optArgs) {\n var parser = _ref2.parser,\n funcName = _ref2.funcName;\n var borderColor = assertNodeType(args[0], \"color-token\").color;\n var backgroundColor = assertNodeType(args[1], \"color-token\").color;\n var body = args[2];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor: backgroundColor,\n borderColor: borderColor,\n body: body\n };\n },\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: true\n },\n handler: function handler(_ref3, args) {\n var parser = _ref3.parser;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\fbox\",\n body: args[0]\n };\n }\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\cancel\", \"\\\\bcancel\", \"\\\\xcancel\", \"\\\\sout\", \"\\\\phase\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref4, args) {\n var parser = _ref4.parser,\n funcName = _ref4.funcName;\n var body = args[0];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n body: body\n };\n },\n htmlBuilder: enclose_htmlBuilder,\n mathmlBuilder: enclose_mathmlBuilder\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\angl\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: false\n },\n handler: function handler(_ref5, args) {\n var parser = _ref5.parser;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\angl\",\n body: args[0]\n };\n }\n});\n;// CONCATENATED MODULE: ./src/defineEnvironment.js\n\n\n/**\n * All registered environments.\n * `environments.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `environments.js`.\n */\nvar _environments = {};\nfunction defineEnvironment(_ref) {\n var type = _ref.type,\n names = _ref.names,\n props = _ref.props,\n handler = _ref.handler,\n htmlBuilder = _ref.htmlBuilder,\n mathmlBuilder = _ref.mathmlBuilder;\n // Set default values of environments.\n var data = {\n type: type,\n numArgs: props.numArgs || 0,\n allowedInText: false,\n numOptionalArgs: 0,\n handler: handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n // TODO: The value type of _environments should be a type union of all\n // possible `EnvSpec<>` possibilities instead of `EnvSpec<*>`, which is\n // an existential type.\n _environments[names[i]] = data;\n }\n\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n}\n;// CONCATENATED MODULE: ./src/environments/array.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Helper functions\nfunction getHLines(parser) {\n // Return an array. The array length = number of hlines.\n // Each element in the array tells if the line is dashed.\n var hlineInfo = [];\n parser.consumeSpaces();\n var nxt = parser.fetch().text;\n\n while (nxt === \"\\\\hline\" || nxt === \"\\\\hdashline\") {\n parser.consume();\n hlineInfo.push(nxt === \"\\\\hdashline\");\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n return hlineInfo;\n}\n\nvar validateAmsEnvironmentContext = function validateAmsEnvironmentContext(context) {\n var settings = context.parser.settings;\n\n if (!settings.displayMode) {\n throw new src_ParseError(\"{\" + context.envName + \"} can be used only in\" + \" display mode.\");\n }\n};\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell. If given an optional argument style\n * (\"text\", \"display\", etc.), then each cell is cast into that style.\n */\n\n\nfunction parseArray(parser, _ref, style) {\n var hskipBeforeAndAfter = _ref.hskipBeforeAndAfter,\n addJot = _ref.addJot,\n cols = _ref.cols,\n arraystretch = _ref.arraystretch,\n colSeparationType = _ref.colSeparationType,\n addEqnNum = _ref.addEqnNum,\n singleRow = _ref.singleRow,\n emptySingleRow = _ref.emptySingleRow,\n maxNumCols = _ref.maxNumCols,\n leqno = _ref.leqno;\n parser.gullet.beginGroup();\n\n if (!singleRow) {\n // \\cr is equivalent to \\\\ without the optional size argument (see below)\n // TODO: provide helpful error when \\cr is used outside array environment\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n } // Get current arraystretch if it's not set by the environment\n\n\n if (!arraystretch) {\n var stretch = parser.gullet.expandMacroAsText(\"\\\\arraystretch\");\n\n if (stretch == null) {\n // Default \\arraystretch from lttab.dtx\n arraystretch = 1;\n } else {\n arraystretch = parseFloat(stretch);\n\n if (!arraystretch || arraystretch < 0) {\n throw new src_ParseError(\"Invalid \\\\arraystretch: \" + stretch);\n }\n }\n } // Start group for first cell\n\n\n parser.gullet.beginGroup();\n var row = [];\n var body = [row];\n var rowGaps = [];\n var hLinesBeforeRow = []; // Test for \\hline at the top of the array.\n\n hLinesBeforeRow.push(getHLines(parser));\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Parse each cell in its own group (namespace)\n var cell = parser.parseExpression(false, singleRow ? \"\\\\end\" : \"\\\\\\\\\");\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n cell = {\n type: \"ordgroup\",\n mode: parser.mode,\n body: cell\n };\n\n if (style) {\n cell = {\n type: \"styling\",\n mode: parser.mode,\n style: style,\n body: [cell]\n };\n }\n\n row.push(cell);\n var next = parser.fetch().text;\n\n if (next === \"&\") {\n if (maxNumCols && row.length === maxNumCols) {\n if (singleRow || colSeparationType) {\n // {equation} or {split}\n throw new src_ParseError(\"Too many tab characters: &\", parser.nextToken);\n } else {\n // {array} environment\n parser.settings.reportNonstrict(\"textEnv\", \"Too few columns \" + \"specified in the {array} column argument.\");\n }\n }\n\n parser.consume();\n } else if (next === \"\\\\end\") {\n // Arrays terminate newlines with `\\crcr` which consumes a `\\cr` if\n // the last line is empty. However, AMS environments keep the\n // empty row if it's the only one.\n // NOTE: Currently, `cell` is the last item added into `row`.\n if (row.length === 1 && cell.type === \"styling\" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {\n body.pop();\n }\n\n if (hLinesBeforeRow.length < body.length + 1) {\n hLinesBeforeRow.push([]);\n }\n\n break;\n } else if (next === \"\\\\\\\\\") {\n parser.consume();\n var size = void 0; // \\def\\Let@{\\let\\\\\\math@cr}\n // \\def\\math@cr{...\\math@cr@}\n // \\def\\math@cr@{\\new@ifnextchar[\\math@cr@@{\\math@cr@@[\\z@]}}\n // \\def\\math@cr@@[#1]{...\\math@cr@@@...}\n // \\def\\math@cr@@@{\\cr}\n\n if (parser.gullet.future().text !== \" \") {\n size = parser.parseSizeGroup(true);\n }\n\n rowGaps.push(size ? size.value : null); // check for \\hline(s) following the row separator\n\n hLinesBeforeRow.push(getHLines(parser));\n row = [];\n body.push(row);\n } else {\n throw new src_ParseError(\"Expected & or \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n } // End cell group\n\n\n parser.gullet.endGroup(); // End array group defining \\cr\n\n parser.gullet.endGroup();\n return {\n type: \"array\",\n mode: parser.mode,\n addJot: addJot,\n arraystretch: arraystretch,\n body: body,\n cols: cols,\n rowGaps: rowGaps,\n hskipBeforeAndAfter: hskipBeforeAndAfter,\n hLinesBeforeRow: hLinesBeforeRow,\n colSeparationType: colSeparationType,\n addEqnNum: addEqnNum,\n leqno: leqno\n };\n} // Decides on a style for cells in an array according to whether the given\n// environment name starts with the letter 'd'.\n\n\nfunction dCellStyle(envName) {\n if (envName.substr(0, 1) === \"d\") {\n return \"display\";\n } else {\n return \"text\";\n }\n}\n\nvar array_htmlBuilder = function htmlBuilder(group, options) {\n var r;\n var c;\n var nr = group.body.length;\n var hLinesBeforeRow = group.hLinesBeforeRow;\n var nc = 0;\n var body = new Array(nr);\n var hlines = [];\n var ruleThickness = Math.max(options.fontMetrics().arrayRuleWidth, options.minRuleThickness // User override.\n ); // Horizontal spacing\n\n var pt = 1 / options.fontMetrics().ptPerEm;\n var arraycolsep = 5 * pt; // default value, i.e. \\arraycolsep in article.cls\n\n if (group.colSeparationType && group.colSeparationType === \"small\") {\n // We're in a {smallmatrix}. Default column space is \\thickspace,\n // i.e. 5/18em = 0.2778em, per amsmath.dtx for {smallmatrix}.\n // But that needs adjustment because LaTeX applies \\scriptstyle to the\n // entire array, including the colspace, but this function applies\n // \\scriptstyle only inside each element.\n var localMultiplier = options.havingStyle(src_Style.SCRIPT).sizeMultiplier;\n arraycolsep = 0.2778 * (localMultiplier / options.sizeMultiplier);\n } // Vertical spacing\n\n\n var baselineskip = group.colSeparationType === \"CD\" ? calculateSize({\n number: 3,\n unit: \"ex\"\n }, options) : 12 * pt; // see size10.clo\n // Default \\jot from ltmath.dtx\n // TODO(edemaine): allow overriding \\jot via \\setlength (#687)\n\n var jot = 3 * pt;\n var arrayskip = group.arraystretch * baselineskip;\n var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n\n var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n var totalHeight = 0; // Set a position for \\hline(s) at the top of the array, if any.\n\n function setHLinePos(hlinesInGap) {\n for (var i = 0; i < hlinesInGap.length; ++i) {\n if (i > 0) {\n totalHeight += 0.25;\n }\n\n hlines.push({\n pos: totalHeight,\n isDashed: hlinesInGap[i]\n });\n }\n }\n\n setHLinePos(hLinesBeforeRow[0]);\n\n for (r = 0; r < group.body.length; ++r) {\n var inrow = group.body[r];\n var height = arstrutHeight; // \\@array adds an \\@arstrut\n\n var depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n var outrow = new Array(inrow.length);\n\n for (c = 0; c < inrow.length; ++c) {\n var elt = buildGroup(inrow[c], options);\n\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n\n if (height < elt.height) {\n height = elt.height;\n }\n\n outrow[c] = elt;\n }\n\n var rowGap = group.rowGaps[r];\n var gap = 0;\n\n if (rowGap) {\n gap = calculateSize(rowGap, options);\n\n if (gap > 0) {\n // \\@argarraycr\n gap += arstrutDepth;\n\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n\n gap = 0;\n }\n } // In AMS multiline environments such as aligned and gathered, rows\n // correspond to lines that have additional \\jot added to the\n // \\baselineskip via \\openup.\n\n\n if (group.addJot) {\n depth += jot;\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n\n body[r] = outrow; // Set a position for \\hline(s), if any.\n\n setHLinePos(hLinesBeforeRow[r + 1]);\n }\n\n var offset = totalHeight / 2 + options.fontMetrics().axisHeight;\n var colDescriptions = group.cols || [];\n var cols = [];\n var colSep;\n var colDescrNum;\n var eqnNumSpans = [];\n\n if (group.addEqnNum) {\n // An environment with automatic equation numbers.\n // Create node(s) that will trigger CSS counter increment.\n for (r = 0; r < nr; ++r) {\n var rw = body[r];\n var shift = rw.pos - offset;\n var eqnTag = buildCommon.makeSpan([\"eqn-num\"], [], options);\n eqnTag.depth = rw.depth;\n eqnTag.height = rw.height;\n eqnNumSpans.push({\n type: \"elem\",\n elem: eqnTag,\n shift: shift\n });\n }\n }\n\n for (c = 0, colDescrNum = 0; // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) {\n var colDescr = colDescriptions[colDescrNum] || {};\n var firstSeparator = true;\n\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = options.fontMetrics().doubleRuleSep + \"em\";\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\" || colDescr.separator === \":\") {\n var lineType = colDescr.separator === \"|\" ? \"solid\" : \"dashed\";\n var separator = buildCommon.makeSpan([\"vertical-separator\"], [], options);\n separator.style.height = totalHeight + \"em\";\n separator.style.borderRightWidth = ruleThickness + \"em\";\n separator.style.borderRightStyle = lineType;\n separator.style.margin = \"0 -\" + ruleThickness / 2 + \"em\";\n separator.style.verticalAlign = -(totalHeight - offset) + \"em\";\n cols.push(separator);\n } else {\n throw new src_ParseError(\"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n var sepwidth = void 0;\n\n if (c > 0 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n\n var col = [];\n\n for (r = 0; r < nr; ++r) {\n var row = body[r];\n var elem = row[c];\n\n if (!elem) {\n continue;\n }\n\n var _shift = row.pos - offset;\n\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({\n type: \"elem\",\n elem: elem,\n shift: _shift\n });\n }\n\n col = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: col\n }, options);\n col = buildCommon.makeSpan([\"col-align-\" + (colDescr.align || \"c\")], [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = sepwidth + \"em\";\n cols.push(colSep);\n }\n }\n }\n\n body = buildCommon.makeSpan([\"mtable\"], cols); // Add \\hline(s), if any.\n\n if (hlines.length > 0) {\n var line = buildCommon.makeLineSpan(\"hline\", options, ruleThickness);\n var dashes = buildCommon.makeLineSpan(\"hdashline\", options, ruleThickness);\n var vListElems = [{\n type: \"elem\",\n elem: body,\n shift: 0\n }];\n\n while (hlines.length > 0) {\n var hline = hlines.pop();\n var lineShift = hline.pos - offset;\n\n if (hline.isDashed) {\n vListElems.push({\n type: \"elem\",\n elem: dashes,\n shift: lineShift\n });\n } else {\n vListElems.push({\n type: \"elem\",\n elem: line,\n shift: lineShift\n });\n }\n }\n\n body = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vListElems\n }, options);\n }\n\n if (!group.addEqnNum) {\n return buildCommon.makeSpan([\"mord\"], [body], options);\n } else {\n var eqnNumCol = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: eqnNumSpans\n }, options);\n eqnNumCol = buildCommon.makeSpan([\"tag\"], [eqnNumCol], options);\n return buildCommon.makeFragment([body, eqnNumCol]);\n }\n};\n\nvar alignMap = {\n c: \"center \",\n l: \"left \",\n r: \"right \"\n};\n\nvar array_mathmlBuilder = function mathmlBuilder(group, options) {\n var tbl = [];\n var glue = new mathMLTree.MathNode(\"mtd\", [], [\"mtr-glue\"]);\n var tag = new mathMLTree.MathNode(\"mtd\", [], [\"mml-eqn-num\"]);\n\n for (var i = 0; i < group.body.length; i++) {\n var rw = group.body[i];\n var row = [];\n\n for (var j = 0; j < rw.length; j++) {\n row.push(new mathMLTree.MathNode(\"mtd\", [buildMathML_buildGroup(rw[j], options)]));\n }\n\n if (group.addEqnNum) {\n row.unshift(glue);\n row.push(glue);\n\n if (group.leqno) {\n row.unshift(tag);\n } else {\n row.push(tag);\n }\n }\n\n tbl.push(new mathMLTree.MathNode(\"mtr\", row));\n }\n\n var table = new mathMLTree.MathNode(\"mtable\", tbl); // Set column alignment, row spacing, column spacing, and\n // array lines by setting attributes on the table element.\n // Set the row spacing. In MathML, we specify a gap distance.\n // We do not use rowGap[] because MathML automatically increases\n // cell height with the height/depth of the element content.\n // LaTeX \\arraystretch multiplies the row baseline-to-baseline distance.\n // We simulate this by adding (arraystretch - 1)em to the gap. This\n // does a reasonable job of adjusting arrays containing 1 em tall content.\n // The 0.16 and 0.09 values are found emprically. They produce an array\n // similar to LaTeX and in which content does not interfere with \\hines.\n\n var gap = group.arraystretch === 0.5 ? 0.1 // {smallmatrix}, {subarray}\n : 0.16 + group.arraystretch - 1 + (group.addJot ? 0.09 : 0);\n table.setAttribute(\"rowspacing\", gap.toFixed(4) + \"em\"); // MathML table lines go only between cells.\n // To place a line on an edge we'll use <menclose>, if necessary.\n\n var menclose = \"\";\n var align = \"\";\n\n if (group.cols && group.cols.length > 0) {\n // Find column alignment, column spacing, and vertical lines.\n var cols = group.cols;\n var columnLines = \"\";\n var prevTypeWasAlign = false;\n var iStart = 0;\n var iEnd = cols.length;\n\n if (cols[0].type === \"separator\") {\n menclose += \"top \";\n iStart = 1;\n }\n\n if (cols[cols.length - 1].type === \"separator\") {\n menclose += \"bottom \";\n iEnd -= 1;\n }\n\n for (var _i = iStart; _i < iEnd; _i++) {\n if (cols[_i].type === \"align\") {\n align += alignMap[cols[_i].align];\n\n if (prevTypeWasAlign) {\n columnLines += \"none \";\n }\n\n prevTypeWasAlign = true;\n } else if (cols[_i].type === \"separator\") {\n // MathML accepts only single lines between cells.\n // So we read only the first of consecutive separators.\n if (prevTypeWasAlign) {\n columnLines += cols[_i].separator === \"|\" ? \"solid \" : \"dashed \";\n prevTypeWasAlign = false;\n }\n }\n }\n\n table.setAttribute(\"columnalign\", align.trim());\n\n if (/[sd]/.test(columnLines)) {\n table.setAttribute(\"columnlines\", columnLines.trim());\n }\n } // Set column spacing.\n\n\n if (group.colSeparationType === \"align\") {\n var _cols = group.cols || [];\n\n var spacing = \"\";\n\n for (var _i2 = 1; _i2 < _cols.length; _i2++) {\n spacing += _i2 % 2 ? \"0em \" : \"1em \";\n }\n\n table.setAttribute(\"columnspacing\", spacing.trim());\n } else if (group.colSeparationType === \"alignat\" || group.colSeparationType === \"gather\") {\n table.setAttribute(\"columnspacing\", \"0em\");\n } else if (group.colSeparationType === \"small\") {\n table.setAttribute(\"columnspacing\", \"0.2778em\");\n } else if (group.colSeparationType === \"CD\") {\n table.setAttribute(\"columnspacing\", \"0.5em\");\n } else {\n table.setAttribute(\"columnspacing\", \"1em\");\n } // Address \\hline and \\hdashline\n\n\n var rowLines = \"\";\n var hlines = group.hLinesBeforeRow;\n menclose += hlines[0].length > 0 ? \"left \" : \"\";\n menclose += hlines[hlines.length - 1].length > 0 ? \"right \" : \"\";\n\n for (var _i3 = 1; _i3 < hlines.length - 1; _i3++) {\n rowLines += hlines[_i3].length === 0 ? \"none \" // MathML accepts only a single line between rows. Read one element.\n : hlines[_i3][0] ? \"dashed \" : \"solid \";\n }\n\n if (/[sd]/.test(rowLines)) {\n table.setAttribute(\"rowlines\", rowLines.trim());\n }\n\n if (menclose !== \"\") {\n table = new mathMLTree.MathNode(\"menclose\", [table]);\n table.setAttribute(\"notation\", menclose.trim());\n }\n\n if (group.arraystretch && group.arraystretch < 1) {\n // A small array. Wrap in scriptstyle so row gap is not too large.\n table = new mathMLTree.MathNode(\"mstyle\", [table]);\n table.setAttribute(\"scriptlevel\", \"1\");\n }\n\n return table;\n}; // Convenience function for align, align*, aligned, alignat, alignat*, alignedat.\n\n\nvar alignedHandler = function alignedHandler(context, args) {\n if (context.envName.indexOf(\"ed\") === -1) {\n validateAmsEnvironmentContext(context);\n }\n\n var cols = [];\n var separationType = context.envName.indexOf(\"at\") > -1 ? \"alignat\" : \"align\";\n var res = parseArray(context.parser, {\n cols: cols,\n addJot: true,\n addEqnNum: context.envName === \"align\" || context.envName === \"alignat\",\n emptySingleRow: true,\n colSeparationType: separationType,\n maxNumCols: context.envName === \"split\" ? 2 : undefined,\n leqno: context.parser.settings.leqno\n }, \"display\"); // Determining number of columns.\n // 1. If the first argument is given, we use it as a number of columns,\n // and makes sure that each row doesn't exceed that number.\n // 2. Otherwise, just count number of columns = maximum number\n // of cells in each row (\"aligned\" mode -- isAligned will be true).\n //\n // At the same time, prepend empty group {} at beginning of every second\n // cell in each row (starting with second cell) so that operators become\n // binary. This behavior is implemented in amsmath's \\start@aligned.\n\n var numMaths;\n var numCols = 0;\n var emptyGroup = {\n type: \"ordgroup\",\n mode: context.mode,\n body: []\n };\n\n if (args[0] && args[0].type === \"ordgroup\") {\n var arg0 = \"\";\n\n for (var i = 0; i < args[0].body.length; i++) {\n var textord = assertNodeType(args[0].body[i], \"textord\");\n arg0 += textord.text;\n }\n\n numMaths = Number(arg0);\n numCols = numMaths * 2;\n }\n\n var isAligned = !numCols;\n res.body.forEach(function (row) {\n for (var _i4 = 1; _i4 < row.length; _i4 += 2) {\n // Modify ordgroup node within styling node\n var styling = assertNodeType(row[_i4], \"styling\");\n var ordgroup = assertNodeType(styling.body[0], \"ordgroup\");\n ordgroup.body.unshift(emptyGroup);\n }\n\n if (!isAligned) {\n // Case 1\n var curMaths = row.length / 2;\n\n if (numMaths < curMaths) {\n throw new src_ParseError(\"Too many math in a row: \" + (\"expected \" + numMaths + \", but got \" + curMaths), row[0]);\n }\n } else if (numCols < row.length) {\n // Case 2\n numCols = row.length;\n }\n }); // Adjusting alignment.\n // In aligned mode, we add one \\qquad between columns;\n // otherwise we add nothing.\n\n for (var _i5 = 0; _i5 < numCols; ++_i5) {\n var align = \"r\";\n var pregap = 0;\n\n if (_i5 % 2 === 1) {\n align = \"l\";\n } else if (_i5 > 0 && isAligned) {\n // \"aligned\" mode.\n pregap = 1; // add one \\quad\n }\n\n cols[_i5] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0\n };\n }\n\n res.colSeparationType = isAligned ? \"align\" : \"alignat\";\n return res;\n}; // Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\n// {darray} is an {array} environment where cells are set in \\displaystyle,\n// as defined in nccmath.sty.\n\n\ndefineEnvironment({\n type: \"array\",\n names: [\"array\", \"darray\"],\n props: {\n numArgs: 1\n },\n handler: function handler(context, args) {\n // Since no types are specified above, the two possibilities are\n // - The argument is wrapped in {} or [], in which case Parser's\n // parseGroup() returns an \"ordgroup\" wrapping some symbol node.\n // - The argument is a bare symbol node.\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text;\n\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\"\n };\n } else if (ca === \":\") {\n return {\n type: \"separator\",\n separator: \":\"\n };\n }\n\n throw new src_ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n var res = {\n cols: cols,\n hskipBeforeAndAfter: true,\n // \\@preamble in lttab.dtx\n maxNumCols: cols.length\n };\n return parseArray(context.parser, res, dCellStyle(context.envName));\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\n// The mathtools package adds starred versions of the same environments.\n// These have an optional argument to choose left|center|right justification.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"matrix\", \"pmatrix\", \"bmatrix\", \"Bmatrix\", \"vmatrix\", \"Vmatrix\", \"matrix*\", \"pmatrix*\", \"bmatrix*\", \"Bmatrix*\", \"vmatrix*\", \"Vmatrix*\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n var delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"]\n }[context.envName.replace(\"*\", \"\")]; // \\hskip -\\arraycolsep in amsmath\n\n var colAlign = \"c\";\n var payload = {\n hskipBeforeAndAfter: false,\n cols: [{\n type: \"align\",\n align: colAlign\n }]\n };\n\n if (context.envName.charAt(context.envName.length - 1) === \"*\") {\n // It's one of the mathtools starred functions.\n // Parse the optional alignment argument.\n var parser = context.parser;\n parser.consumeSpaces();\n\n if (parser.fetch().text === \"[\") {\n parser.consume();\n parser.consumeSpaces();\n colAlign = parser.fetch().text;\n\n if (\"lcr\".indexOf(colAlign) === -1) {\n throw new src_ParseError(\"Expected l or c or r\", parser.nextToken);\n }\n\n parser.consume();\n parser.consumeSpaces();\n parser.expect(\"]\");\n parser.consume();\n payload.cols = [{\n type: \"align\",\n align: colAlign\n }];\n }\n }\n\n var res = parseArray(context.parser, payload, dCellStyle(context.envName)); // Populate cols with the correct number of column alignment specs.\n\n var numCols = Math.max.apply(Math, [0].concat(res.body.map(function (row) {\n return row.length;\n })));\n res.cols = new Array(numCols).fill({\n type: \"align\",\n align: colAlign\n });\n return delimiters ? {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n rightColor: undefined // \\right uninfluenced by \\color in array\n\n } : res;\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"smallmatrix\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n var payload = {\n arraystretch: 0.5\n };\n var res = parseArray(context.parser, payload, \"script\");\n res.colSeparationType = \"small\";\n return res;\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"subarray\"],\n props: {\n numArgs: 1\n },\n handler: function handler(context, args) {\n // Parsing of {subarray} is similar to {array}\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text; // {subarray} only recognizes \"l\" & \"c\"\n\n if (\"lc\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n }\n\n throw new src_ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n\n if (cols.length > 1) {\n throw new src_ParseError(\"{subarray} can contain only one column\");\n }\n\n var res = {\n cols: cols,\n hskipBeforeAndAfter: false,\n arraystretch: 0.5\n };\n res = parseArray(context.parser, res, \"script\");\n\n if (res.body.length > 0 && res.body[0].length > 1) {\n throw new src_ParseError(\"{subarray} can contain only one column\");\n }\n\n return res;\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\n// {dcases} is a {cases} environment where cells are set in \\displaystyle,\n// as defined in mathtools.sty.\n// {rcases} is another mathtools environment. It's brace is on the right side.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"cases\", \"dcases\", \"rcases\", \"drcases\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n var payload = {\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n // TODO(kevinb) get the current style.\n // For now we use the metrics for TEXT style which is what we were\n // doing before. Before attempting to get the current style we\n // should look at TeX's behavior especially for \\over and matrices.\n postgap: 1.0\n /* 1em quad */\n\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0\n }]\n };\n var res = parseArray(context.parser, payload, dCellStyle(context.envName));\n return {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: context.envName.indexOf(\"r\") > -1 ? \".\" : \"\\\\{\",\n right: context.envName.indexOf(\"r\") > -1 ? \"\\\\}\" : \".\",\n rightColor: undefined\n };\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // In the align environment, one uses ampersands, &, to specify number of\n// columns in each row, and to locate spacing between each column.\n// align gets automatic numbering. align* and aligned do not.\n// The alignedat environment can be used in math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"align\", \"align*\", \"aligned\", \"split\"],\n props: {\n numArgs: 0\n },\n handler: alignedHandler,\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // A gathered environment is like an array environment with one centered\n// column, but where rows are considered lines so get \\jot line spacing\n// and contents are set in \\displaystyle.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"gathered\", \"gather\", \"gather*\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n if (utils.contains([\"gather\", \"gather*\"], context.envName)) {\n validateAmsEnvironmentContext(context);\n }\n\n var res = {\n cols: [{\n type: \"align\",\n align: \"c\"\n }],\n addJot: true,\n colSeparationType: \"gather\",\n addEqnNum: context.envName === \"gather\",\n emptySingleRow: true,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // alignat environment is like an align environment, but one must explicitly\n// specify maximum number of columns in each row, and can adjust spacing between\n// each columns.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"alignat\", \"alignat*\", \"alignedat\"],\n props: {\n numArgs: 1\n },\n handler: alignedHandler,\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"equation\", \"equation*\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n validateAmsEnvironmentContext(context);\n var res = {\n addEqnNum: context.envName === \"equation\",\n emptySingleRow: true,\n singleRow: true,\n maxNumCols: 1,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"CD\"],\n props: {\n numArgs: 0\n },\n handler: function handler(context) {\n validateAmsEnvironmentContext(context);\n return parseCD(context.parser);\n },\n htmlBuilder: array_htmlBuilder,\n mathmlBuilder: array_mathmlBuilder\n}); // Catch \\hline outside array environment\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\hline\", \"\\\\hdashline\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: true\n },\n handler: function handler(context, args) {\n throw new src_ParseError(context.funcName + \" valid only within array environment\");\n }\n});\n;// CONCATENATED MODULE: ./src/environments.js\n\nvar environments = _environments;\n/* harmony default export */ var src_environments = (environments); // All environment definitions should be imported below\n\n\n;// CONCATENATED MODULE: ./src/functions/environment.js\n\n\n\n // Environment delimiters. HTML/MathML rendering is defined in the corresponding\n// defineEnvironment definitions.\n\ndefineFunction({\n type: \"environment\",\n names: [\"\\\\begin\", \"\\\\end\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"]\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var nameGroup = args[0];\n\n if (nameGroup.type !== \"ordgroup\") {\n throw new src_ParseError(\"Invalid environment name\", nameGroup);\n }\n\n var envName = \"\";\n\n for (var i = 0; i < nameGroup.body.length; ++i) {\n envName += assertNodeType(nameGroup.body[i], \"textord\").text;\n }\n\n if (funcName === \"\\\\begin\") {\n // begin...end is similar to left...right\n if (!src_environments.hasOwnProperty(envName)) {\n throw new src_ParseError(\"No such environment: \" + envName, nameGroup);\n } // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n\n\n var env = src_environments[envName];\n\n var _parser$parseArgument = parser.parseArguments(\"\\\\begin{\" + envName + \"}\", env),\n _args = _parser$parseArgument.args,\n optArgs = _parser$parseArgument.optArgs;\n\n var context = {\n mode: parser.mode,\n envName: envName,\n parser: parser\n };\n var result = env.handler(context, _args, optArgs);\n parser.expect(\"\\\\end\", false);\n var endNameToken = parser.nextToken;\n var end = assertNodeType(parser.parseFunction(), \"environment\");\n\n if (end.name !== envName) {\n throw new src_ParseError(\"Mismatch: \\\\begin{\" + envName + \"} matched by \\\\end{\" + end.name + \"}\", endNameToken);\n } // $FlowFixMe, \"environment\" handler returns an environment ParseNode\n\n\n return result;\n }\n\n return {\n type: \"environment\",\n mode: parser.mode,\n name: envName,\n nameGroup: nameGroup\n };\n }\n});\n;// CONCATENATED MODULE: ./src/functions/mclass.js\n\n\n\n\n\n\nvar mclass_makeSpan = buildCommon.makeSpan;\n\nfunction mclass_htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options, true);\n return mclass_makeSpan([group.mclass], elements, options);\n}\n\nfunction mclass_mathmlBuilder(group, options) {\n var node;\n var inner = buildMathML_buildExpression(group.body, options);\n\n if (group.mclass === \"minner\") {\n return mathMLTree.newDocumentFragment(inner);\n } else if (group.mclass === \"mord\") {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mi\";\n } else {\n node = new mathMLTree.MathNode(\"mi\", inner);\n }\n } else {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mo\";\n } else {\n node = new mathMLTree.MathNode(\"mo\", inner);\n } // Set spacing based on what is the most likely adjacent atom type.\n // See TeXbook p170.\n\n\n if (group.mclass === \"mbin\") {\n node.attributes.lspace = \"0.22em\"; // medium space\n\n node.attributes.rspace = \"0.22em\";\n } else if (group.mclass === \"mpunct\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0.17em\"; // thinspace\n } else if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0em\";\n } // MathML <mo> default space is 5/18 em, so <mrel> needs no action.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo\n\n }\n\n return node;\n} // Math class commands except \\mathop\n\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\mathord\", \"\\\\mathbin\", \"\\\\mathrel\", \"\\\\mathopen\", \"\\\\mathclose\", \"\\\\mathpunct\", \"\\\\mathinner\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var body = args[0];\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: \"m\" + funcName.substr(5),\n // TODO(kevinb): don't prefix with 'm'\n body: ordargument(body),\n isCharacterBox: utils.isCharacterBox(body)\n };\n },\n htmlBuilder: mclass_htmlBuilder,\n mathmlBuilder: mclass_mathmlBuilder\n});\nvar binrelClass = function binrelClass(arg) {\n // \\binrel@ spacing varies with (bin|rel|ord) of the atom in the argument.\n // (by rendering separately and with {}s before and after, and measuring\n // the change in spacing). We'll do roughly the same by detecting the\n // atom type directly.\n var atom = arg.type === \"ordgroup\" && arg.body.length ? arg.body[0] : arg;\n\n if (atom.type === \"atom\" && (atom.family === \"bin\" || atom.family === \"rel\")) {\n return \"m\" + atom.family;\n } else {\n return \"mord\";\n }\n}; // \\@binrel{x}{y} renders like y but as mbin/mrel/mord if x is mbin/mrel/mord.\n// This is equivalent to \\binrel@{x}\\binrel@@{y} in AMSTeX.\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\@binrel\"],\n props: {\n numArgs: 2\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[1]),\n isCharacterBox: utils.isCharacterBox(args[1])\n };\n }\n}); // Build a relation or stacked op by placing one symbol on top of another\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\stackrel\", \"\\\\overset\", \"\\\\underset\"],\n props: {\n numArgs: 2\n },\n handler: function handler(_ref3, args) {\n var parser = _ref3.parser,\n funcName = _ref3.funcName;\n var baseArg = args[1];\n var shiftedArg = args[0];\n var mclass;\n\n if (funcName !== \"\\\\stackrel\") {\n // LaTeX applies \\binrel spacing to \\overset and \\underset.\n mclass = binrelClass(baseArg);\n } else {\n mclass = \"mrel\"; // for \\stackrel\n }\n\n var baseOp = {\n type: \"op\",\n mode: baseArg.mode,\n limits: true,\n alwaysHandleSupSub: true,\n parentIsSupSub: false,\n symbol: false,\n suppressBaseShift: funcName !== \"\\\\stackrel\",\n body: ordargument(baseArg)\n };\n var supsub = {\n type: \"supsub\",\n mode: shiftedArg.mode,\n base: baseOp,\n sup: funcName === \"\\\\underset\" ? null : shiftedArg,\n sub: funcName === \"\\\\underset\" ? shiftedArg : null\n };\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: mclass,\n body: [supsub],\n isCharacterBox: utils.isCharacterBox(supsub)\n };\n },\n htmlBuilder: mclass_htmlBuilder,\n mathmlBuilder: mclass_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/font.js\n// TODO(kevinb): implement \\\\sl and \\\\sc\n\n\n\n\n\n\nvar font_htmlBuilder = function htmlBuilder(group, options) {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildGroup(group.body, newOptions);\n};\n\nvar font_mathmlBuilder = function mathmlBuilder(group, options) {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildMathML_buildGroup(group.body, newOptions);\n};\n\nvar fontAliases = {\n \"\\\\Bbb\": \"\\\\mathbb\",\n \"\\\\bold\": \"\\\\mathbf\",\n \"\\\\frak\": \"\\\\mathfrak\",\n \"\\\\bm\": \"\\\\boldsymbol\"\n};\ndefineFunction({\n type: \"font\",\n names: [// styles, except \\boldsymbol defined below\n \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\", \"\\\\mathnormal\", // families\n \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\", \"\\\\mathtt\", // aliases, except \\bm defined below\n \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\"],\n props: {\n numArgs: 1,\n allowedInArgument: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var body = normalizeArgument(args[0]);\n var func = funcName;\n\n if (func in fontAliases) {\n func = fontAliases[func];\n }\n\n return {\n type: \"font\",\n mode: parser.mode,\n font: func.slice(1),\n body: body\n };\n },\n htmlBuilder: font_htmlBuilder,\n mathmlBuilder: font_mathmlBuilder\n});\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\boldsymbol\", \"\\\\bm\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n var body = args[0];\n var isCharacterBox = utils.isCharacterBox(body); // amsbsy.sty's \\boldsymbol uses \\binrel spacing to inherit the\n // argument's bin|rel|ord status\n\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(body),\n body: [{\n type: \"font\",\n mode: parser.mode,\n font: \"boldsymbol\",\n body: body\n }],\n isCharacterBox: isCharacterBox\n };\n }\n}); // Old font changing functions\n\ndefineFunction({\n type: \"font\",\n names: [\"\\\\rm\", \"\\\\sf\", \"\\\\tt\", \"\\\\bf\", \"\\\\it\", \"\\\\cal\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: function handler(_ref3, args) {\n var parser = _ref3.parser,\n funcName = _ref3.funcName,\n breakOnTokenText = _ref3.breakOnTokenText;\n var mode = parser.mode;\n var body = parser.parseExpression(true, breakOnTokenText);\n var style = \"math\" + funcName.slice(1);\n return {\n type: \"font\",\n mode: mode,\n font: style,\n body: {\n type: \"ordgroup\",\n mode: parser.mode,\n body: body\n }\n };\n },\n htmlBuilder: font_htmlBuilder,\n mathmlBuilder: font_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/genfrac.js\n\n\n\n\n\n\n\n\n\n\n\nvar adjustStyle = function adjustStyle(size, originalStyle) {\n // Figure out what style this fraction should be in based on the\n // function used\n var style = originalStyle;\n\n if (size === \"display\") {\n // Get display style as a default.\n // If incoming style is sub/sup, use style.text() to get correct size.\n style = style.id >= src_Style.SCRIPT.id ? style.text() : src_Style.DISPLAY;\n } else if (size === \"text\" && style.size === src_Style.DISPLAY.size) {\n // We're in a \\tfrac but incoming style is displaystyle, so:\n style = src_Style.TEXT;\n } else if (size === \"script\") {\n style = src_Style.SCRIPT;\n } else if (size === \"scriptscript\") {\n style = src_Style.SCRIPTSCRIPT;\n }\n\n return style;\n};\n\nvar genfrac_htmlBuilder = function htmlBuilder(group, options) {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n var style = adjustStyle(group.size, options.style);\n var nstyle = style.fracNum();\n var dstyle = style.fracDen();\n var newOptions;\n newOptions = options.havingStyle(nstyle);\n var numerm = buildGroup(group.numer, newOptions, options);\n\n if (group.continued) {\n // \\cfrac inserts a \\strut into the numerator.\n // Get \\strut dimensions from TeXbook page 353.\n var hStrut = 8.5 / options.fontMetrics().ptPerEm;\n var dStrut = 3.5 / options.fontMetrics().ptPerEm;\n numerm.height = numerm.height < hStrut ? hStrut : numerm.height;\n numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;\n }\n\n newOptions = options.havingStyle(dstyle);\n var denomm = buildGroup(group.denom, newOptions, options);\n var rule;\n var ruleWidth;\n var ruleSpacing;\n\n if (group.hasBarLine) {\n if (group.barSize) {\n ruleWidth = calculateSize(group.barSize, options);\n rule = buildCommon.makeLineSpan(\"frac-line\", options, ruleWidth);\n } else {\n rule = buildCommon.makeLineSpan(\"frac-line\", options);\n }\n\n ruleWidth = rule.height;\n ruleSpacing = rule.height;\n } else {\n rule = null;\n ruleWidth = 0;\n ruleSpacing = options.fontMetrics().defaultRuleThickness;\n } // Rule 15b\n\n\n var numShift;\n var clearance;\n var denomShift;\n\n if (style.size === src_Style.DISPLAY.size || group.size === \"display\") {\n numShift = options.fontMetrics().num1;\n\n if (ruleWidth > 0) {\n clearance = 3 * ruleSpacing;\n } else {\n clearance = 7 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = options.fontMetrics().num2;\n clearance = ruleSpacing;\n } else {\n numShift = options.fontMetrics().num3;\n clearance = 3 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom2;\n }\n\n var frac;\n\n if (!rule) {\n // Rule 15c\n var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);\n\n if (candidateClearance < clearance) {\n numShift += 0.5 * (clearance - candidateClearance);\n denomShift += 0.5 * (clearance - candidateClearance);\n }\n\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } else {\n // Rule 15d\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {\n numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));\n }\n\n if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {\n denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));\n }\n\n var midShift = -(axisHeight - 0.5 * ruleWidth);\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: rule,\n shift: midShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n\n\n newOptions = options.havingStyle(style);\n frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier;\n frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; // Rule 15e\n\n var delimSize;\n\n if (style.size === src_Style.DISPLAY.size) {\n delimSize = options.fontMetrics().delim1;\n } else if (style.size === src_Style.SCRIPTSCRIPT.size) {\n delimSize = options.havingStyle(src_Style.SCRIPT).fontMetrics().delim2;\n } else {\n delimSize = options.fontMetrics().delim2;\n }\n\n var leftDelim;\n var rightDelim;\n\n if (group.leftDelim == null) {\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mopen\"]);\n }\n\n if (group.continued) {\n rightDelim = buildCommon.makeSpan([]); // zero width for \\cfrac\n } else if (group.rightDelim == null) {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mclose\"]);\n }\n\n return buildCommon.makeSpan([\"mord\"].concat(newOptions.sizingClasses(options)), [leftDelim, buildCommon.makeSpan([\"mfrac\"], [frac]), rightDelim], options);\n};\n\nvar genfrac_mathmlBuilder = function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mfrac\", [buildMathML_buildGroup(group.numer, options), buildMathML_buildGroup(group.denom, options)]);\n\n if (!group.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n } else if (group.barSize) {\n var ruleWidth = calculateSize(group.barSize, options);\n node.setAttribute(\"linethickness\", ruleWidth + \"em\");\n }\n\n var style = adjustStyle(group.size, options.style);\n\n if (style.size !== options.style.size) {\n node = new mathMLTree.MathNode(\"mstyle\", [node]);\n var isDisplay = style.size === src_Style.DISPLAY.size ? \"true\" : \"false\";\n node.setAttribute(\"displaystyle\", isDisplay);\n node.setAttribute(\"scriptlevel\", \"0\");\n }\n\n if (group.leftDelim != null || group.rightDelim != null) {\n var withDelims = [];\n\n if (group.leftDelim != null) {\n var leftOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.leftDelim.replace(\"\\\\\", \"\"))]);\n leftOp.setAttribute(\"fence\", \"true\");\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.rightDelim != null) {\n var rightOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.rightDelim.replace(\"\\\\\", \"\"))]);\n rightOp.setAttribute(\"fence\", \"true\");\n withDelims.push(rightOp);\n }\n\n return makeRow(withDelims);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\", \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\", \"\\\\\\\\atopfrac\", // can’t be entered directly\n \"\\\\\\\\bracefrac\", \"\\\\\\\\brackfrac\" // ditto\n ],\n props: {\n numArgs: 2,\n allowedInArgument: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var numer = args[0];\n var denom = args[1];\n var hasBarLine;\n var leftDelim = null;\n var rightDelim = null;\n var size = \"auto\";\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\frac\":\n case \"\\\\tfrac\":\n hasBarLine = true;\n break;\n\n case \"\\\\\\\\atopfrac\":\n hasBarLine = false;\n break;\n\n case \"\\\\dbinom\":\n case \"\\\\binom\":\n case \"\\\\tbinom\":\n hasBarLine = false;\n leftDelim = \"(\";\n rightDelim = \")\";\n break;\n\n case \"\\\\\\\\bracefrac\":\n hasBarLine = false;\n leftDelim = \"\\\\{\";\n rightDelim = \"\\\\}\";\n break;\n\n case \"\\\\\\\\brackfrac\":\n hasBarLine = false;\n leftDelim = \"[\";\n rightDelim = \"]\";\n break;\n\n default:\n throw new Error(\"Unrecognized genfrac command\");\n }\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\dbinom\":\n size = \"display\";\n break;\n\n case \"\\\\tfrac\":\n case \"\\\\tbinom\":\n size = \"text\";\n break;\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: false,\n numer: numer,\n denom: denom,\n hasBarLine: hasBarLine,\n leftDelim: leftDelim,\n rightDelim: rightDelim,\n size: size,\n barSize: null\n };\n },\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\cfrac\"],\n props: {\n numArgs: 2\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser,\n funcName = _ref2.funcName;\n var numer = args[0];\n var denom = args[1];\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: true,\n numer: numer,\n denom: denom,\n hasBarLine: true,\n leftDelim: null,\n rightDelim: null,\n size: \"display\",\n barSize: null\n };\n }\n}); // Infix generalized fractions -- these are not rendered directly, but replaced\n// immediately by one of the variants above.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\over\", \"\\\\choose\", \"\\\\atop\", \"\\\\brace\", \"\\\\brack\"],\n props: {\n numArgs: 0,\n infix: true\n },\n handler: function handler(_ref3) {\n var parser = _ref3.parser,\n funcName = _ref3.funcName,\n token = _ref3.token;\n var replaceWith;\n\n switch (funcName) {\n case \"\\\\over\":\n replaceWith = \"\\\\frac\";\n break;\n\n case \"\\\\choose\":\n replaceWith = \"\\\\binom\";\n break;\n\n case \"\\\\atop\":\n replaceWith = \"\\\\\\\\atopfrac\";\n break;\n\n case \"\\\\brace\":\n replaceWith = \"\\\\\\\\bracefrac\";\n break;\n\n case \"\\\\brack\":\n replaceWith = \"\\\\\\\\brackfrac\";\n break;\n\n default:\n throw new Error(\"Unrecognized infix genfrac command\");\n }\n\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith: replaceWith,\n token: token\n };\n }\n});\nvar stylArray = [\"display\", \"text\", \"script\", \"scriptscript\"];\n\nvar delimFromValue = function delimFromValue(delimString) {\n var delim = null;\n\n if (delimString.length > 0) {\n delim = delimString;\n delim = delim === \".\" ? null : delim;\n }\n\n return delim;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\genfrac\"],\n props: {\n numArgs: 6,\n allowedInArgument: true,\n argTypes: [\"math\", \"math\", \"size\", \"text\", \"math\", \"math\"]\n },\n handler: function handler(_ref4, args) {\n var parser = _ref4.parser;\n var numer = args[4];\n var denom = args[5]; // Look into the parse nodes to get the desired delimiters.\n\n var leftNode = normalizeArgument(args[0]);\n var leftDelim = leftNode.type === \"atom\" && leftNode.family === \"open\" ? delimFromValue(leftNode.text) : null;\n var rightNode = normalizeArgument(args[1]);\n var rightDelim = rightNode.type === \"atom\" && rightNode.family === \"close\" ? delimFromValue(rightNode.text) : null;\n var barNode = assertNodeType(args[2], \"size\");\n var hasBarLine;\n var barSize = null;\n\n if (barNode.isBlank) {\n // \\genfrac acts differently than \\above.\n // \\genfrac treats an empty size group as a signal to use a\n // standard bar size. \\above would see size = 0 and omit the bar.\n hasBarLine = true;\n } else {\n barSize = barNode.value;\n hasBarLine = barSize.number > 0;\n } // Find out if we want displaystyle, textstyle, etc.\n\n\n var size = \"auto\";\n var styl = args[3];\n\n if (styl.type === \"ordgroup\") {\n if (styl.body.length > 0) {\n var textOrd = assertNodeType(styl.body[0], \"textord\");\n size = stylArray[Number(textOrd.text)];\n }\n } else {\n styl = assertNodeType(styl, \"textord\");\n size = stylArray[Number(styl.text)];\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer: numer,\n denom: denom,\n continued: false,\n hasBarLine: hasBarLine,\n barSize: barSize,\n leftDelim: leftDelim,\n rightDelim: rightDelim,\n size: size\n };\n },\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n}); // \\above is an infix fraction that also defines a fraction bar size.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\above\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n infix: true\n },\n handler: function handler(_ref5, args) {\n var parser = _ref5.parser,\n funcName = _ref5.funcName,\n token = _ref5.token;\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith: \"\\\\\\\\abovefrac\",\n size: assertNodeType(args[0], \"size\").value,\n token: token\n };\n }\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\\\\\abovefrac\"],\n props: {\n numArgs: 3,\n argTypes: [\"math\", \"size\", \"math\"]\n },\n handler: function handler(_ref6, args) {\n var parser = _ref6.parser,\n funcName = _ref6.funcName;\n var numer = args[0];\n var barSize = assert(assertNodeType(args[1], \"infix\").size);\n var denom = args[2];\n var hasBarLine = barSize.number > 0;\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer: numer,\n denom: denom,\n continued: false,\n hasBarLine: hasBarLine,\n barSize: barSize,\n leftDelim: null,\n rightDelim: null,\n size: \"auto\"\n };\n },\n htmlBuilder: genfrac_htmlBuilder,\n mathmlBuilder: genfrac_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/horizBrace.js\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"horizBrace\", but\n// also \"supsub\" since an over/underbrace can affect super/subscripting.\nvar horizBrace_htmlBuilder = function htmlBuilder(grp, options) {\n var style = options.style; // Pull out the `ParseNode<\"horizBrace\">` if `grp` is a \"supsub\" node.\n\n var supSubGroup;\n var group;\n\n if (grp.type === \"supsub\") {\n // Ref: LaTeX source2e: }}}}\\limits}\n // i.e. LaTeX treats the brace similar to an op and passes it\n // with \\limits, so we need to assign supsub style.\n supSubGroup = grp.sup ? buildGroup(grp.sup, options.havingStyle(style.sup()), options) : buildGroup(grp.sub, options.havingStyle(style.sub()), options);\n group = assertNodeType(grp.base, \"horizBrace\");\n } else {\n group = assertNodeType(grp, \"horizBrace\");\n } // Build the base group\n\n\n var body = buildGroup(group.base, options.havingBaseStyle(src_Style.DISPLAY)); // Create the stretchy element\n\n var braceBody = stretchy.svgSpan(group, options); // Generate the vlist, with the appropriate kerns â”â”â”â”â”â”â”â”â”┓\n // This first vlist contains the content and the brace: equation\n\n var vlist;\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: braceBody\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: body.depth + 0.1 + braceBody.height,\n children: [{\n type: \"elem\",\n elem: braceBody\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: body\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[0].classes.push(\"svg-align\");\n }\n\n if (supSubGroup) {\n // To write the supsub, wrap the first vlist in another vlist:\n // They can't all go in the same vlist, because the note might be\n // wider than the equation. We want the equation to control the\n // brace width.\n // note long note long note\n // â”â”â”â”â”â”â”â”â”┓ or â”â”â”â”┓ not â”â”â”â”â”â”â”â”â”â”┓\n // equation eqn eqn\n var vSpan = buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: vSpan\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: supSubGroup\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth,\n children: [{\n type: \"elem\",\n elem: supSubGroup\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: vSpan\n }]\n }, options);\n }\n }\n\n return buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n};\n\nvar horizBrace_mathmlBuilder = function mathmlBuilder(group, options) {\n var accentNode = stretchy.mathMLnode(group.label);\n return new mathMLTree.MathNode(group.isOver ? \"mover\" : \"munder\", [buildMathML_buildGroup(group.base, options), accentNode]);\n}; // Horizontal stretchy braces\n\n\ndefineFunction({\n type: \"horizBrace\",\n names: [\"\\\\overbrace\", \"\\\\underbrace\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n return {\n type: \"horizBrace\",\n mode: parser.mode,\n label: funcName,\n isOver: /^\\\\over/.test(funcName),\n base: args[0]\n };\n },\n htmlBuilder: horizBrace_htmlBuilder,\n mathmlBuilder: horizBrace_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/functions/href.js\n\n\n\n\n\n\ndefineFunction({\n type: \"href\",\n names: [\"\\\\href\"],\n props: {\n numArgs: 2,\n argTypes: [\"url\", \"original\"],\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var body = args[1];\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\href\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\href\");\n }\n\n return {\n type: \"href\",\n mode: parser.mode,\n href: href,\n body: ordargument(body)\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options, false);\n return buildCommon.makeAnchor(group.href, [], elements, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var math = buildExpressionRow(group.body, options);\n\n if (!(math instanceof MathNode)) {\n math = new MathNode(\"mrow\", [math]);\n }\n\n math.setAttribute(\"href\", group.href);\n return math;\n }\n});\ndefineFunction({\n type: \"href\",\n names: [\"\\\\url\"],\n props: {\n numArgs: 1,\n argTypes: [\"url\"],\n allowedInText: true\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\url\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\url\");\n }\n\n var chars = [];\n\n for (var i = 0; i < href.length; i++) {\n var c = href[i];\n\n if (c === \"~\") {\n c = \"\\\\textasciitilde\";\n }\n\n chars.push({\n type: \"textord\",\n mode: \"text\",\n text: c\n });\n }\n\n var body = {\n type: \"text\",\n mode: parser.mode,\n font: \"\\\\texttt\",\n body: chars\n };\n return {\n type: \"href\",\n mode: parser.mode,\n href: href,\n body: ordargument(body)\n };\n }\n});\n;// CONCATENATED MODULE: ./src/functions/hbox.js\n\n\n\n\n // \\hbox is provided for compatibility with LaTeX \\vcenter.\n// In LaTeX, \\vcenter can act only on a box, as in\n// \\vcenter{\\hbox{$\\frac{a+b}{\\dfrac{c}{d}}$}}\n// This function by itself doesn't do anything but prevent a soft line break.\n\ndefineFunction({\n type: \"hbox\",\n names: [\"\\\\hbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInText: true,\n primitive: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n return {\n type: \"hbox\",\n mode: parser.mode,\n body: ordargument(args[0])\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", buildMathML_buildExpression(group.body, options));\n }\n});\n;// CONCATENATED MODULE: ./src/functions/html.js\n\n\n\n\n\n\ndefineFunction({\n type: \"html\",\n names: [\"\\\\htmlClass\", \"\\\\htmlId\", \"\\\\htmlStyle\", \"\\\\htmlData\"],\n props: {\n numArgs: 2,\n argTypes: [\"raw\", \"original\"],\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName,\n token = _ref.token;\n var value = assertNodeType(args[0], \"raw\").string;\n var body = args[1];\n\n if (parser.settings.strict) {\n parser.settings.reportNonstrict(\"htmlExtension\", \"HTML extension is disabled on strict mode\");\n }\n\n var trustContext;\n var attributes = {};\n\n switch (funcName) {\n case \"\\\\htmlClass\":\n attributes.class = value;\n trustContext = {\n command: \"\\\\htmlClass\",\n class: value\n };\n break;\n\n case \"\\\\htmlId\":\n attributes.id = value;\n trustContext = {\n command: \"\\\\htmlId\",\n id: value\n };\n break;\n\n case \"\\\\htmlStyle\":\n attributes.style = value;\n trustContext = {\n command: \"\\\\htmlStyle\",\n style: value\n };\n break;\n\n case \"\\\\htmlData\":\n {\n var data = value.split(\",\");\n\n for (var i = 0; i < data.length; i++) {\n var keyVal = data[i].split(\"=\");\n\n if (keyVal.length !== 2) {\n throw new src_ParseError(\"Error parsing key-value for \\\\htmlData\");\n }\n\n attributes[\"data-\" + keyVal[0].trim()] = keyVal[1].trim();\n }\n\n trustContext = {\n command: \"\\\\htmlData\",\n attributes: attributes\n };\n break;\n }\n\n default:\n throw new Error(\"Unrecognized html command\");\n }\n\n if (!parser.settings.isTrusted(trustContext)) {\n return parser.formatUnsupportedCmd(funcName);\n }\n\n return {\n type: \"html\",\n mode: parser.mode,\n attributes: attributes,\n body: ordargument(body)\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options, false);\n var classes = [\"enclosing\"];\n\n if (group.attributes.class) {\n classes.push.apply(classes, group.attributes.class.trim().split(/\\s+/));\n }\n\n var span = buildCommon.makeSpan(classes, elements, options);\n\n for (var attr in group.attributes) {\n if (attr !== \"class\" && group.attributes.hasOwnProperty(attr)) {\n span.setAttribute(attr, group.attributes[attr]);\n }\n }\n\n return span;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n return buildExpressionRow(group.body, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/htmlmathml.js\n\n\n\n\ndefineFunction({\n type: \"htmlmathml\",\n names: [\"\\\\html@mathml\"],\n props: {\n numArgs: 2,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n return {\n type: \"htmlmathml\",\n mode: parser.mode,\n html: ordargument(args[0]),\n mathml: ordargument(args[1])\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var elements = buildExpression(group.html, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n return buildExpressionRow(group.mathml, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/includegraphics.js\n\n\n\n\n\n\n\nvar sizeData = function sizeData(str) {\n if (/^[-+]? *(\\d+(\\.\\d*)?|\\.\\d+)$/.test(str)) {\n // str is a number with no unit specified.\n // default unit is bp, per graphix package.\n return {\n number: +str,\n unit: \"bp\"\n };\n } else {\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(str);\n\n if (!match) {\n throw new src_ParseError(\"Invalid size: '\" + str + \"' in \\\\includegraphics\");\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new src_ParseError(\"Invalid unit: '\" + data.unit + \"' in \\\\includegraphics.\");\n }\n\n return data;\n }\n};\n\ndefineFunction({\n type: \"includegraphics\",\n names: [\"\\\\includegraphics\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n argTypes: [\"raw\", \"url\"],\n allowedInText: false\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser;\n var width = {\n number: 0,\n unit: \"em\"\n };\n var height = {\n number: 0.9,\n unit: \"em\"\n }; // sorta character sized.\n\n var totalheight = {\n number: 0,\n unit: \"em\"\n };\n var alt = \"\";\n\n if (optArgs[0]) {\n var attributeStr = assertNodeType(optArgs[0], \"raw\").string; // Parser.js does not parse key/value pairs. We get a string.\n\n var attributes = attributeStr.split(\",\");\n\n for (var i = 0; i < attributes.length; i++) {\n var keyVal = attributes[i].split(\"=\");\n\n if (keyVal.length === 2) {\n var str = keyVal[1].trim();\n\n switch (keyVal[0].trim()) {\n case \"alt\":\n alt = str;\n break;\n\n case \"width\":\n width = sizeData(str);\n break;\n\n case \"height\":\n height = sizeData(str);\n break;\n\n case \"totalheight\":\n totalheight = sizeData(str);\n break;\n\n default:\n throw new src_ParseError(\"Invalid key: '\" + keyVal[0] + \"' in \\\\includegraphics.\");\n }\n }\n }\n }\n\n var src = assertNodeType(args[0], \"url\").url;\n\n if (alt === \"\") {\n // No alt given. Use the file name. Strip away the path.\n alt = src;\n alt = alt.replace(/^.*[\\\\/]/, '');\n alt = alt.substring(0, alt.lastIndexOf('.'));\n }\n\n if (!parser.settings.isTrusted({\n command: \"\\\\includegraphics\",\n url: src\n })) {\n return parser.formatUnsupportedCmd(\"\\\\includegraphics\");\n }\n\n return {\n type: \"includegraphics\",\n mode: parser.mode,\n alt: alt,\n width: width,\n height: height,\n totalheight: totalheight,\n src: src\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n depth = Number(depth.toFixed(2));\n }\n\n var width = 0;\n\n if (group.width.number > 0) {\n width = calculateSize(group.width, options);\n }\n\n var style = {\n height: height + depth + \"em\"\n };\n\n if (width > 0) {\n style.width = width + \"em\";\n }\n\n if (depth > 0) {\n style.verticalAlign = -depth + \"em\";\n }\n\n var node = new Img(group.src, group.alt, style);\n node.height = height;\n node.depth = depth;\n return node;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mglyph\", []);\n node.setAttribute(\"alt\", group.alt);\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n depth = depth.toFixed(2);\n node.setAttribute(\"valign\", \"-\" + depth + \"em\");\n }\n\n node.setAttribute(\"height\", height + depth + \"em\");\n\n if (group.width.number > 0) {\n var width = calculateSize(group.width, options);\n node.setAttribute(\"width\", width + \"em\");\n }\n\n node.setAttribute(\"src\", group.src);\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/kern.js\n// Horizontal spacing commands\n\n\n\n\n // TODO: \\hskip and \\mskip should support plus and minus in lengths\n\ndefineFunction({\n type: \"kern\",\n names: [\"\\\\kern\", \"\\\\mkern\", \"\\\\hskip\", \"\\\\mskip\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n primitive: true,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var size = assertNodeType(args[0], \"size\");\n\n if (parser.settings.strict) {\n var mathFunction = funcName[1] === 'm'; // \\mkern, \\mskip\n\n var muUnit = size.value.unit === 'mu';\n\n if (mathFunction) {\n if (!muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" supports only mu units, \" + (\"not \" + size.value.unit + \" units\"));\n }\n\n if (parser.mode !== \"math\") {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" works only in math mode\");\n }\n } else {\n // !mathFunction\n if (muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" doesn't support mu units\");\n }\n }\n }\n\n return {\n type: \"kern\",\n mode: parser.mode,\n dimension: size.value\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n return buildCommon.makeGlue(group.dimension, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var dimension = calculateSize(group.dimension, options);\n return new mathMLTree.SpaceNode(dimension);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/lap.js\n// Horizontal overlap functions\n\n\n\n\n\ndefineFunction({\n type: \"lap\",\n names: [\"\\\\mathllap\", \"\\\\mathrlap\", \"\\\\mathclap\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var body = args[0];\n return {\n type: \"lap\",\n mode: parser.mode,\n alignment: funcName.slice(5),\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // mathllap, mathrlap, mathclap\n var inner;\n\n if (group.alignment === \"clap\") {\n // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/\n inner = buildCommon.makeSpan([], [buildGroup(group.body, options)]); // wrap, since CSS will center a .clap > .inner > span\n\n inner = buildCommon.makeSpan([\"inner\"], [inner], options);\n } else {\n inner = buildCommon.makeSpan([\"inner\"], [buildGroup(group.body, options)]);\n }\n\n var fix = buildCommon.makeSpan([\"fix\"], []);\n var node = buildCommon.makeSpan([group.alignment], [inner, fix], options); // At this point, we have correctly set horizontal alignment of the\n // two items involved in the lap.\n // Next, use a strut to set the height of the HTML bounding box.\n // Otherwise, a tall argument may be misplaced.\n // This code resolved issue #1153\n\n var strut = buildCommon.makeSpan([\"strut\"]);\n strut.style.height = node.height + node.depth + \"em\";\n strut.style.verticalAlign = -node.depth + \"em\";\n node.children.unshift(strut); // Next, prevent vertical misplacement when next to something tall.\n // This code resolves issue #1234\n\n node = buildCommon.makeSpan([\"thinbox\"], [node], options);\n return buildCommon.makeSpan([\"mord\", \"vbox\"], [node], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n // mathllap, mathrlap, mathclap\n var node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n\n if (group.alignment !== \"rlap\") {\n var offset = group.alignment === \"llap\" ? \"-1\" : \"-0.5\";\n node.setAttribute(\"lspace\", offset + \"width\");\n }\n\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/math.js\n\n // Switching from text mode back to math mode\n\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\(\", \"$\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n handler: function handler(_ref, args) {\n var funcName = _ref.funcName,\n parser = _ref.parser;\n var outerMode = parser.mode;\n parser.switchMode(\"math\");\n var close = funcName === \"\\\\(\" ? \"\\\\)\" : \"$\";\n var body = parser.parseExpression(false, close);\n parser.expect(close);\n parser.switchMode(outerMode);\n return {\n type: \"styling\",\n mode: parser.mode,\n style: \"text\",\n body: body\n };\n }\n}); // Check for extra closing math delimiters\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\)\", \"\\\\]\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n handler: function handler(context, args) {\n throw new src_ParseError(\"Mismatched \" + context.funcName);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/mathchoice.js\n\n\n\n\n\n\nvar chooseMathStyle = function chooseMathStyle(group, options) {\n switch (options.style.size) {\n case src_Style.DISPLAY.size:\n return group.display;\n\n case src_Style.TEXT.size:\n return group.text;\n\n case src_Style.SCRIPT.size:\n return group.script;\n\n case src_Style.SCRIPTSCRIPT.size:\n return group.scriptscript;\n\n default:\n return group.text;\n }\n};\n\ndefineFunction({\n type: \"mathchoice\",\n names: [\"\\\\mathchoice\"],\n props: {\n numArgs: 4,\n primitive: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n return {\n type: \"mathchoice\",\n mode: parser.mode,\n display: ordargument(args[0]),\n text: ordargument(args[1]),\n script: ordargument(args[2]),\n scriptscript: ordargument(args[3])\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var body = chooseMathStyle(group, options);\n var elements = buildExpression(body, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var body = chooseMathStyle(group, options);\n return buildExpressionRow(body, options);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/utils/assembleSupSub.js\n\n\n\n// For an operator with limits, assemble the base, sup, and sub into a span.\nvar assembleSupSub = function assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift) {\n base = buildCommon.makeSpan([], [base]);\n var subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);\n var sub;\n var sup; // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n\n if (supGroup) {\n var elem = buildGroup(supGroup, options.havingStyle(style.sup()), options);\n sup = {\n elem: elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)\n };\n }\n\n if (subGroup) {\n var _elem = buildGroup(subGroup, options.havingStyle(style.sub()), options);\n\n sub = {\n elem: _elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height)\n };\n } // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n\n\n var finalGroup;\n\n if (sup && sub) {\n var bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift;\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: bottom,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: -slant + \"em\"\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: slant + \"em\"\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else if (sub) {\n var top = base.height - baseShift; // Shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n\n finalGroup = buildCommon.makeVList({\n positionType: \"top\",\n positionData: top,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: -slant + \"em\"\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }]\n }, options);\n } else if (sup) {\n var _bottom = base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: _bottom,\n children: [{\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: slant + \"em\"\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n }\n\n var parts = [finalGroup];\n\n if (sub && slant !== 0 && !subIsSingleCharacter) {\n // A negative margin-left was applied to the lower limit.\n // Avoid an overlap by placing a spacer on the left on the group.\n var spacer = buildCommon.makeSpan([\"mspace\"], [], options);\n spacer.style.marginRight = slant + \"em\";\n parts.unshift(spacer);\n }\n\n return buildCommon.makeSpan([\"mop\", \"op-limits\"], parts, options);\n};\n;// CONCATENATED MODULE: ./src/functions/op.js\n// Limits, symbols\n\n\n\n\n\n\n\n\n\n\n// Most operators have a large successor symbol, but these don't.\nvar noSuccessor = [\"\\\\smallint\"]; // NOTE: Unlike most `htmlBuilder`s, this one handles not only \"op\", but also\n// \"supsub\" since some of them (like \\int) can affect super/subscripting.\n\nvar op_htmlBuilder = function htmlBuilder(grp, options) {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"op\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"op\");\n }\n\n var style = options.style;\n var large = false;\n\n if (style.size === src_Style.DISPLAY.size && group.symbol && !utils.contains(noSuccessor, group.name)) {\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n var base;\n\n if (group.symbol) {\n // If this is a symbol, create the symbol.\n var fontName = large ? \"Size2-Regular\" : \"Size1-Regular\";\n var stash = \"\";\n\n if (group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") {\n // No font glyphs yet, so use a glyph w/o the oval.\n // TODO: When font glyphs are available, delete this code.\n stash = group.name.substr(1);\n group.name = stash === \"oiint\" ? \"\\\\iint\" : \"\\\\iiint\";\n }\n\n base = buildCommon.makeSymbol(group.name, fontName, \"math\", options, [\"mop\", \"op-symbol\", large ? \"large-op\" : \"small-op\"]);\n\n if (stash.length > 0) {\n // We're in \\oiint or \\oiiint. Overlay the oval.\n // TODO: When font glyphs are available, delete this code.\n var italic = base.italic;\n var oval = buildCommon.staticSvg(stash + \"Size\" + (large ? \"2\" : \"1\"), options);\n base = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: base,\n shift: 0\n }, {\n type: \"elem\",\n elem: oval,\n shift: large ? 0.08 : 0\n }]\n }, options);\n group.name = \"\\\\\" + stash;\n base.classes.unshift(\"mop\"); // $FlowFixMe\n\n base.italic = italic;\n }\n } else if (group.body) {\n // If this is a list, compose that list.\n var inner = buildExpression(group.body, options, true);\n\n if (inner.length === 1 && inner[0] instanceof SymbolNode) {\n base = inner[0];\n base.classes[0] = \"mop\"; // replace old mclass\n } else {\n base = buildCommon.makeSpan([\"mop\"], inner, options);\n }\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n var output = [];\n\n for (var i = 1; i < group.name.length; i++) {\n output.push(buildCommon.mathsym(group.name[i], group.mode, options));\n }\n\n base = buildCommon.makeSpan([\"mop\"], output, options);\n } // If content of op is a single symbol, shift it vertically.\n\n\n var baseShift = 0;\n var slant = 0;\n\n if ((base instanceof SymbolNode || group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") && !group.suppressBaseShift) {\n // We suppress the shift of the base of \\overset and \\underset. Otherwise,\n // shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; // The slant of the symbol is just its italic correction.\n // $FlowFixMe\n\n slant = base.italic;\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift);\n } else {\n if (baseShift) {\n base.style.position = \"relative\";\n base.style.top = baseShift + \"em\";\n }\n\n return base;\n }\n};\n\nvar op_mathmlBuilder = function mathmlBuilder(group, options) {\n var node;\n\n if (group.symbol) {\n // This is a symbol. Just add the symbol.\n node = new MathNode(\"mo\", [makeText(group.name, group.mode)]);\n\n if (utils.contains(noSuccessor, group.name)) {\n node.setAttribute(\"largeop\", \"false\");\n }\n } else if (group.body) {\n // This is an operator with children. Add them.\n node = new MathNode(\"mo\", buildMathML_buildExpression(group.body, options));\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n node = new MathNode(\"mi\", [new TextNode(group.name.slice(1))]); // Append an <mo>⁡</mo>.\n // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4\n\n var operator = new MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n node = new MathNode(\"mrow\", [node, operator]);\n } else {\n node = newDocumentFragment([node, operator]);\n }\n }\n\n return node;\n};\n\nvar singleCharBigOps = {\n \"\\u220F\": \"\\\\prod\",\n \"\\u2210\": \"\\\\coprod\",\n \"\\u2211\": \"\\\\sum\",\n \"\\u22C0\": \"\\\\bigwedge\",\n \"\\u22C1\": \"\\\\bigvee\",\n \"\\u22C2\": \"\\\\bigcap\",\n \"\\u22C3\": \"\\\\bigcup\",\n \"\\u2A00\": \"\\\\bigodot\",\n \"\\u2A01\": \"\\\\bigoplus\",\n \"\\u2A02\": \"\\\\bigotimes\",\n \"\\u2A04\": \"\\\\biguplus\",\n \"\\u2A06\": \"\\\\bigsqcup\"\n};\ndefineFunction({\n type: \"op\",\n names: [\"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\", \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\", \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\", \"\\u220F\", \"\\u2210\", \"\\u2211\", \"\\u22C0\", \"\\u22C1\", \"\\u22C2\", \"\\u22C3\", \"\\u2A00\", \"\\u2A01\", \"\\u2A02\", \"\\u2A04\", \"\\u2A06\"],\n props: {\n numArgs: 0\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharBigOps[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\mathop\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n var body = args[0];\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n body: ordargument(body)\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\nvar singleCharIntegrals = {\n \"\\u222B\": \"\\\\int\",\n \"\\u222C\": \"\\\\iint\",\n \"\\u222D\": \"\\\\iiint\",\n \"\\u222E\": \"\\\\oint\",\n \"\\u222F\": \"\\\\oiint\",\n \"\\u2230\": \"\\\\oiiint\"\n}; // No limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arctg\", \"\\\\arcctg\", \"\\\\arg\", \"\\\\ch\", \"\\\\cos\", \"\\\\cosec\", \"\\\\cosh\", \"\\\\cot\", \"\\\\cotg\", \"\\\\coth\", \"\\\\csc\", \"\\\\ctg\", \"\\\\cth\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\", \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\", \"\\\\sh\", \"\\\\tan\", \"\\\\tanh\", \"\\\\tg\", \"\\\\th\"],\n props: {\n numArgs: 0\n },\n handler: function handler(_ref3) {\n var parser = _ref3.parser,\n funcName = _ref3.funcName;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // Limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\max\", \"\\\\min\", \"\\\\Pr\", \"\\\\sup\"],\n props: {\n numArgs: 0\n },\n handler: function handler(_ref4) {\n var parser = _ref4.parser,\n funcName = _ref4.funcName;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n}); // No limits, symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\", \"\\\\oiint\", \"\\\\oiiint\", \"\\u222B\", \"\\u222C\", \"\\u222D\", \"\\u222E\", \"\\u222F\", \"\\u2230\"],\n props: {\n numArgs: 0\n },\n handler: function handler(_ref5) {\n var parser = _ref5.parser,\n funcName = _ref5.funcName;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharIntegrals[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n htmlBuilder: op_htmlBuilder,\n mathmlBuilder: op_mathmlBuilder\n});\n;// CONCATENATED MODULE: ./src/defineMacro.js\n\n\n/**\n * All registered global/built-in macros.\n * `macros.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `macros.js`.\n */\nvar _macros = {}; // This function might one day accept an additional argument and do more things.\n\nfunction defineMacro(name, body) {\n _macros[name] = body;\n}\n;// CONCATENATED MODULE: ./src/functions/operatorname.js\n\n\n\n\n\n\n\n\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only\n// \"operatorname\", but also \"supsub\" since \\operatorname* can\n// affect super/subscripting.\nvar operatorname_htmlBuilder = function htmlBuilder(grp, options) {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"operatorname\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"operatorname\");\n }\n\n var base;\n\n if (group.body.length > 0) {\n var body = group.body.map(function (child) {\n // $FlowFixMe: Check if the node has a string `text` property.\n var childText = child.text;\n\n if (typeof childText === \"string\") {\n return {\n type: \"textord\",\n mode: child.mode,\n text: childText\n };\n } else {\n return child;\n }\n }); // Consolidate function names into symbol characters.\n\n var expression = buildExpression(body, options.withFont(\"mathrm\"), true);\n\n for (var i = 0; i < expression.length; i++) {\n var child = expression[i];\n\n if (child instanceof SymbolNode) {\n // Per amsopn package,\n // change minus to hyphen and \\ast to asterisk\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n }\n }\n\n base = buildCommon.makeSpan([\"mop\"], expression, options);\n } else {\n base = buildCommon.makeSpan([\"mop\"], [], options);\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0);\n } else {\n return base;\n }\n};\n\nvar operatorname_mathmlBuilder = function mathmlBuilder(group, options) {\n // The steps taken here are similar to the html version.\n var expression = buildMathML_buildExpression(group.body, options.withFont(\"mathrm\")); // Is expression a string or has it something like a fraction?\n\n var isAllString = true; // default\n\n for (var i = 0; i < expression.length; i++) {\n var node = expression[i];\n\n if (node instanceof mathMLTree.SpaceNode) {// Do nothing\n } else if (node instanceof mathMLTree.MathNode) {\n switch (node.type) {\n case \"mi\":\n case \"mn\":\n case \"ms\":\n case \"mspace\":\n case \"mtext\":\n break;\n // Do nothing yet.\n\n case \"mo\":\n {\n var child = node.children[0];\n\n if (node.children.length === 1 && child instanceof mathMLTree.TextNode) {\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n } else {\n isAllString = false;\n }\n\n break;\n }\n\n default:\n isAllString = false;\n }\n } else {\n isAllString = false;\n }\n }\n\n if (isAllString) {\n // Write a single TextNode instead of multiple nested tags.\n var word = expression.map(function (node) {\n return node.toText();\n }).join(\"\");\n expression = [new mathMLTree.TextNode(word)];\n }\n\n var identifier = new mathMLTree.MathNode(\"mi\", expression);\n identifier.setAttribute(\"mathvariant\", \"normal\"); // \\u2061 is the same as ⁡\n // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp\n\n var operator = new mathMLTree.MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n return new mathMLTree.MathNode(\"mrow\", [identifier, operator]);\n } else {\n return mathMLTree.newDocumentFragment([identifier, operator]);\n }\n}; // \\operatorname\n// amsopn.dtx: \\mathop{#1\\kern\\z@\\operator@font#3}\\newmcodes@\n\n\ndefineFunction({\n type: \"operatorname\",\n names: [\"\\\\operatorname@\", \"\\\\operatornamewithlimits\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var body = args[0];\n return {\n type: \"operatorname\",\n mode: parser.mode,\n body: ordargument(body),\n alwaysHandleSupSub: funcName === \"\\\\operatornamewithlimits\",\n limits: false,\n parentIsSupSub: false\n };\n },\n htmlBuilder: operatorname_htmlBuilder,\n mathmlBuilder: operatorname_mathmlBuilder\n});\ndefineMacro(\"\\\\operatorname\", \"\\\\@ifstar\\\\operatornamewithlimits\\\\operatorname@\");\n;// CONCATENATED MODULE: ./src/functions/ordgroup.js\n\n\n\n\ndefineFunctionBuilders({\n type: \"ordgroup\",\n htmlBuilder: function htmlBuilder(group, options) {\n if (group.semisimple) {\n return buildCommon.makeFragment(buildExpression(group.body, options, false));\n }\n\n return buildCommon.makeSpan([\"mord\"], buildExpression(group.body, options, true), options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n return buildExpressionRow(group.body, options, true);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/overline.js\n\n\n\n\n\ndefineFunction({\n type: \"overline\",\n names: [\"\\\\overline\"],\n props: {\n numArgs: 1\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var body = args[0];\n return {\n type: \"overline\",\n mode: parser.mode,\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n // Build the inner group in the cramped style.\n var innerGroup = buildGroup(group.body, options.havingCrampedStyle()); // Create the line above the body\n\n var line = buildCommon.makeLineSpan(\"overline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: innerGroup\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: defaultRuleThickness\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"overline\"], [vlist], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203E\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"mover\", [buildMathML_buildGroup(group.body, options), operator]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/phantom.js\n\n\n\n\n\ndefineFunction({\n type: \"phantom\",\n names: [\"\\\\phantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var body = args[0];\n return {\n type: \"phantom\",\n mode: parser.mode,\n body: ordargument(body)\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var elements = buildExpression(group.body, options.withPhantom(), false); // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var inner = buildMathML_buildExpression(group.body, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n }\n});\ndefineFunction({\n type: \"hphantom\",\n names: [\"\\\\hphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref2, args) {\n var parser = _ref2.parser;\n var body = args[0];\n return {\n type: \"hphantom\",\n mode: parser.mode,\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var node = buildCommon.makeSpan([], [buildGroup(group.body, options.withPhantom())]);\n node.height = 0;\n node.depth = 0;\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n node.children[i].depth = 0;\n }\n } // See smash for comment re: use of makeVList\n\n\n node = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\smash as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [node], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var inner = buildMathML_buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"height\", \"0px\");\n node.setAttribute(\"depth\", \"0px\");\n return node;\n }\n});\ndefineFunction({\n type: \"vphantom\",\n names: [\"\\\\vphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref3, args) {\n var parser = _ref3.parser;\n var body = args[0];\n return {\n type: \"vphantom\",\n mode: parser.mode,\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var inner = buildCommon.makeSpan([\"inner\"], [buildGroup(group.body, options.withPhantom())]);\n var fix = buildCommon.makeSpan([\"fix\"], []);\n return buildCommon.makeSpan([\"mord\", \"rlap\"], [inner, fix], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var inner = buildMathML_buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/raisebox.js\n\n\n\n\n\n\n // Box manipulation\n\ndefineFunction({\n type: \"raisebox\",\n names: [\"\\\\raisebox\"],\n props: {\n numArgs: 2,\n argTypes: [\"size\", \"hbox\"],\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n var amount = assertNodeType(args[0], \"size\").value;\n var body = args[1];\n return {\n type: \"raisebox\",\n mode: parser.mode,\n dy: amount,\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var body = buildGroup(group.body, options);\n var dy = calculateSize(group.dy, options);\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n var dy = group.dy.number + group.dy.unit;\n node.setAttribute(\"voffset\", dy);\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/rule.js\n\n\n\n\n\ndefineFunction({\n type: \"rule\",\n names: [\"\\\\rule\"],\n props: {\n numArgs: 2,\n numOptionalArgs: 1,\n argTypes: [\"size\", \"size\", \"size\"]\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser;\n var shift = optArgs[0];\n var width = assertNodeType(args[0], \"size\");\n var height = assertNodeType(args[1], \"size\");\n return {\n type: \"rule\",\n mode: parser.mode,\n shift: shift && assertNodeType(shift, \"size\").value,\n width: width.value,\n height: height.value\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Make an empty span for the rule\n var rule = buildCommon.makeSpan([\"mord\", \"rule\"], [], options); // Calculate the shift, width, and height of the rule, and account for units\n\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0; // Style the rule to the right size\n\n rule.style.borderRightWidth = width + \"em\";\n rule.style.borderTopWidth = height + \"em\";\n rule.style.bottom = shift + \"em\"; // Record the height and width\n\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift; // Font size is the number large enough that the browser will\n // reserve at least `absHeight` space above the baseline.\n // The 1.125 factor was empirically determined\n\n rule.maxFontSize = height * 1.125 * options.sizeMultiplier;\n return rule;\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0;\n var color = options.color && options.getColor() || \"black\";\n var rule = new mathMLTree.MathNode(\"mspace\");\n rule.setAttribute(\"mathbackground\", color);\n rule.setAttribute(\"width\", width + \"em\");\n rule.setAttribute(\"height\", height + \"em\");\n var wrapper = new mathMLTree.MathNode(\"mpadded\", [rule]);\n\n if (shift >= 0) {\n wrapper.setAttribute(\"height\", \"+\" + shift + \"em\");\n } else {\n wrapper.setAttribute(\"height\", shift + \"em\");\n wrapper.setAttribute(\"depth\", \"+\" + -shift + \"em\");\n }\n\n wrapper.setAttribute(\"voffset\", shift + \"em\");\n return wrapper;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/sizing.js\n\n\n\n\n\nfunction sizingGroup(value, options, baseOptions) {\n var inner = buildExpression(value, options, false);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; // Add size-resetting classes to the inner list and set maxFontSize\n // manually. Handle nested size changes.\n\n for (var i = 0; i < inner.length; i++) {\n var pos = inner[i].classes.indexOf(\"sizing\");\n\n if (pos < 0) {\n Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions));\n } else if (inner[i].classes[pos + 1] === \"reset-size\" + options.size) {\n // This is a nested size change: e.g., inner[i] is the \"b\" in\n // `\\Huge a \\small b`. Override the old size (the `reset-` class)\n // but not the new size.\n inner[i].classes[pos + 1] = \"reset-size\" + baseOptions.size;\n }\n\n inner[i].height *= multiplier;\n inner[i].depth *= multiplier;\n }\n\n return buildCommon.makeFragment(inner);\n}\nvar sizeFuncs = [\"\\\\tiny\", \"\\\\sixptsize\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\"];\nvar sizing_htmlBuilder = function htmlBuilder(group, options) {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n var newOptions = options.havingSize(group.size);\n return sizingGroup(group.body, newOptions, options);\n};\ndefineFunction({\n type: \"sizing\",\n names: sizeFuncs,\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var breakOnTokenText = _ref.breakOnTokenText,\n funcName = _ref.funcName,\n parser = _ref.parser;\n var body = parser.parseExpression(false, breakOnTokenText);\n return {\n type: \"sizing\",\n mode: parser.mode,\n // Figure out what size to use based on the list of functions above\n size: sizeFuncs.indexOf(funcName) + 1,\n body: body\n };\n },\n htmlBuilder: sizing_htmlBuilder,\n mathmlBuilder: function mathmlBuilder(group, options) {\n var newOptions = options.havingSize(group.size);\n var inner = buildMathML_buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner); // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n\n node.setAttribute(\"mathsize\", newOptions.sizeMultiplier + \"em\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/smash.js\n// smash, with optional [tb], as in AMS\n\n\n\n\n\n\ndefineFunction({\n type: \"smash\",\n names: [\"\\\\smash\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser;\n var smashHeight = false;\n var smashDepth = false;\n var tbArg = optArgs[0] && assertNodeType(optArgs[0], \"ordgroup\");\n\n if (tbArg) {\n // Optional [tb] argument is engaged.\n // ref: amsmath: \\renewcommand{\\smash}[1][tb]{%\n // def\\mb@t{\\ht}\\def\\mb@b{\\dp}\\def\\mb@tb{\\ht\\z@\\z@\\dp}%\n var letter = \"\";\n\n for (var i = 0; i < tbArg.body.length; ++i) {\n var node = tbArg.body[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n letter = node.text;\n\n if (letter === \"t\") {\n smashHeight = true;\n } else if (letter === \"b\") {\n smashDepth = true;\n } else {\n smashHeight = false;\n smashDepth = false;\n break;\n }\n }\n } else {\n smashHeight = true;\n smashDepth = true;\n }\n\n var body = args[0];\n return {\n type: \"smash\",\n mode: parser.mode,\n body: body,\n smashHeight: smashHeight,\n smashDepth: smashDepth\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var node = buildCommon.makeSpan([], [buildGroup(group.body, options)]);\n\n if (!group.smashHeight && !group.smashDepth) {\n return node;\n }\n\n if (group.smashHeight) {\n node.height = 0; // In order to influence makeVList, we have to reset the children.\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n }\n }\n }\n\n if (group.smashDepth) {\n node.depth = 0;\n\n if (node.children) {\n for (var _i = 0; _i < node.children.length; _i++) {\n node.children[_i].depth = 0;\n }\n }\n } // At this point, we've reset the TeX-like height and depth values.\n // But the span still has an HTML line height.\n // makeVList applies \"display: table-cell\", which prevents the browser\n // from acting on that line height. So we'll call makeVList now.\n\n\n var smashedNode = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\hphantom as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [smashedNode], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)]);\n\n if (group.smashHeight) {\n node.setAttribute(\"height\", \"0px\");\n }\n\n if (group.smashDepth) {\n node.setAttribute(\"depth\", \"0px\");\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/sqrt.js\n\n\n\n\n\n\n\ndefineFunction({\n type: \"sqrt\",\n names: [\"\\\\sqrt\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n handler: function handler(_ref, args, optArgs) {\n var parser = _ref.parser;\n var index = optArgs[0];\n var body = args[0];\n return {\n type: \"sqrt\",\n mode: parser.mode,\n body: body,\n index: index\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n // First, we do the same steps as in overline to build the inner group\n // and line\n var inner = buildGroup(group.body, options.havingCrampedStyle());\n\n if (inner.height === 0) {\n // Render a small surd.\n inner.height = options.fontMetrics().xHeight;\n } // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n\n inner = buildCommon.wrapFragment(inner, options); // Calculate the minimum size for the \\surd delimiter\n\n var metrics = options.fontMetrics();\n var theta = metrics.defaultRuleThickness;\n var phi = theta;\n\n if (options.style.id < src_Style.TEXT.id) {\n phi = options.fontMetrics().xHeight;\n } // Calculate the clearance between the body and line\n\n\n var lineClearance = theta + phi / 4;\n var minDelimiterHeight = inner.height + inner.depth + lineClearance + theta; // Create a sqrt SVG of the required minimum size\n\n var _delimiter$sqrtImage = delimiter.sqrtImage(minDelimiterHeight, options),\n img = _delimiter$sqrtImage.span,\n ruleWidth = _delimiter$sqrtImage.ruleWidth,\n advanceWidth = _delimiter$sqrtImage.advanceWidth;\n\n var delimDepth = img.height - ruleWidth; // Adjust the clearance based on the delimiter size\n\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n } // Shift the sqrt image\n\n\n var imgShift = img.height - inner.height - lineClearance - ruleWidth;\n inner.style.paddingLeft = advanceWidth + \"em\"; // Overlay the image and the argument.\n\n var body = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: inner,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: -(inner.height + imgShift)\n }, {\n type: \"elem\",\n elem: img\n }, {\n type: \"kern\",\n size: ruleWidth\n }]\n }, options);\n\n if (!group.index) {\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [body], options);\n } else {\n // Handle the optional root index\n // The index is always in scriptscript style\n var newOptions = options.havingStyle(src_Style.SCRIPTSCRIPT);\n var rootm = buildGroup(group.index, newOptions, options); // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n\n var toShift = 0.6 * (body.height - body.depth); // Build a VList with the superscript shifted up correctly\n\n var rootVList = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -toShift,\n children: [{\n type: \"elem\",\n elem: rootm\n }]\n }, options); // Add a class surrounding it so we can add on the appropriate\n // kerning\n\n var rootVListWrap = buildCommon.makeSpan([\"root\"], [rootVList]);\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [rootVListWrap, body], options);\n }\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var body = group.body,\n index = group.index;\n return index ? new mathMLTree.MathNode(\"mroot\", [buildMathML_buildGroup(body, options), buildMathML_buildGroup(index, options)]) : new mathMLTree.MathNode(\"msqrt\", [buildMathML_buildGroup(body, options)]);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/styling.js\n\n\n\n\n\nvar styling_styleMap = {\n \"display\": src_Style.DISPLAY,\n \"text\": src_Style.TEXT,\n \"script\": src_Style.SCRIPT,\n \"scriptscript\": src_Style.SCRIPTSCRIPT\n};\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n handler: function handler(_ref, args) {\n var breakOnTokenText = _ref.breakOnTokenText,\n funcName = _ref.funcName,\n parser = _ref.parser;\n // parse out the implicit body\n var body = parser.parseExpression(true, breakOnTokenText); // TODO: Refactor to avoid duplicating styleMap in multiple places (e.g.\n // here and in buildHTML and de-dupe the enumeration of all the styles).\n // $FlowFixMe: The names above exactly match the styles.\n\n var style = funcName.slice(1, funcName.length - 5);\n return {\n type: \"styling\",\n mode: parser.mode,\n // Figure out what style to use by pulling out the style from\n // the function name\n style: style,\n body: body\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n var newStyle = styling_styleMap[group.style];\n var newOptions = options.havingStyle(newStyle).withFont('');\n return sizingGroup(group.body, newOptions, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n // Figure out what style we're changing to.\n var newStyle = styling_styleMap[group.style];\n var newOptions = options.havingStyle(newStyle);\n var inner = buildMathML_buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n var styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"]\n };\n var attr = styleAttributes[group.style];\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/supsub.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * Sometimes, groups perform special rules when they have superscripts or\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar htmlBuilderDelegate = function htmlBuilderDelegate(group, options) {\n var base = group.base;\n\n if (!base) {\n return null;\n } else if (base.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n var delegate = base.limits && (options.style.size === src_Style.DISPLAY.size || base.alwaysHandleSupSub);\n return delegate ? op_htmlBuilder : null;\n } else if (base.type === \"operatorname\") {\n var _delegate = base.alwaysHandleSupSub && (options.style.size === src_Style.DISPLAY.size || base.limits);\n\n return _delegate ? operatorname_htmlBuilder : null;\n } else if (base.type === \"accent\") {\n return utils.isCharacterBox(base.base) ? htmlBuilder : null;\n } else if (base.type === \"horizBrace\") {\n var isSup = !group.sub;\n return isSup === base.isOver ? horizBrace_htmlBuilder : null;\n } else {\n return null;\n }\n}; // Super scripts and subscripts, whose precise placement can depend on other\n// functions that precede them.\n\n\ndefineFunctionBuilders({\n type: \"supsub\",\n htmlBuilder: function htmlBuilder(group, options) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n var builderDelegate = htmlBuilderDelegate(group, options);\n\n if (builderDelegate) {\n return builderDelegate(group, options);\n }\n\n var valueBase = group.base,\n valueSup = group.sup,\n valueSub = group.sub;\n var base = buildGroup(valueBase, options);\n var supm;\n var subm;\n var metrics = options.fontMetrics(); // Rule 18a\n\n var supShift = 0;\n var subShift = 0;\n var isCharacterBox = valueBase && utils.isCharacterBox(valueBase);\n\n if (valueSup) {\n var newOptions = options.havingStyle(options.style.sup());\n supm = buildGroup(valueSup, newOptions, options);\n\n if (!isCharacterBox) {\n supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n if (valueSub) {\n var _newOptions = options.havingStyle(options.style.sub());\n\n subm = buildGroup(valueSub, _newOptions, options);\n\n if (!isCharacterBox) {\n subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n } // Rule 18c\n\n\n var minSupShift;\n\n if (options.style === src_Style.DISPLAY) {\n minSupShift = metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = metrics.sup3;\n } else {\n minSupShift = metrics.sup2;\n } // scriptspace is a font-size-independent size, so scale it\n // appropriately for use as the marginRight.\n\n\n var multiplier = options.sizeMultiplier;\n var marginRight = 0.5 / metrics.ptPerEm / multiplier + \"em\";\n var marginLeft = null;\n\n if (subm) {\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n var isOiint = group.base && group.base.type === \"op\" && group.base.name && (group.base.name === \"\\\\oiint\" || group.base.name === \"\\\\oiiint\");\n\n if (base instanceof SymbolNode || isOiint) {\n // $FlowFixMe\n marginLeft = -base.italic + \"em\";\n }\n }\n\n var supsub;\n\n if (supm && subm) {\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n subShift = Math.max(subShift, metrics.sub2);\n var ruleWidth = metrics.defaultRuleThickness; // Rule 18e\n\n var maxWidth = 4 * ruleWidth;\n\n if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {\n subShift = maxWidth - (supShift - supm.depth) + subm.height;\n var psi = 0.8 * metrics.xHeight - (supShift - supm.depth);\n\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n var vlistElem = [{\n type: \"elem\",\n elem: subm,\n shift: subShift,\n marginRight: marginRight,\n marginLeft: marginLeft\n }, {\n type: \"elem\",\n elem: supm,\n shift: -supShift,\n marginRight: marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vlistElem\n }, options);\n } else if (subm) {\n // Rule 18b\n subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);\n var _vlistElem = [{\n type: \"elem\",\n elem: subm,\n marginLeft: marginLeft,\n marginRight: marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: subShift,\n children: _vlistElem\n }, options);\n } else if (supm) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -supShift,\n children: [{\n type: \"elem\",\n elem: supm,\n marginRight: marginRight\n }]\n }, options);\n } else {\n throw new Error(\"supsub must have either sup or sub.\");\n } // Wrap the supsub vlist in a span.msupsub to reset text-align.\n\n\n var mclass = getTypeOfDomTree(base, \"right\") || \"mord\";\n return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan([\"msupsub\"], [supsub])], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n // Is the inner group a relevant horizonal brace?\n var isBrace = false;\n var isOver;\n var isSup;\n\n if (group.base && group.base.type === \"horizBrace\") {\n isSup = !!group.sup;\n\n if (isSup === group.base.isOver) {\n isBrace = true;\n isOver = group.base.isOver;\n }\n }\n\n if (group.base && (group.base.type === \"op\" || group.base.type === \"operatorname\")) {\n group.base.parentIsSupSub = true;\n }\n\n var children = [buildMathML_buildGroup(group.base, options)];\n\n if (group.sub) {\n children.push(buildMathML_buildGroup(group.sub, options));\n }\n\n if (group.sup) {\n children.push(buildMathML_buildGroup(group.sup, options));\n }\n\n var nodeType;\n\n if (isBrace) {\n nodeType = isOver ? \"mover\" : \"munder\";\n } else if (!group.sub) {\n var base = group.base;\n\n if (base && base.type === \"op\" && base.limits && (options.style === src_Style.DISPLAY || base.alwaysHandleSupSub)) {\n nodeType = \"mover\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (base.limits || options.style === src_Style.DISPLAY)) {\n nodeType = \"mover\";\n } else {\n nodeType = \"msup\";\n }\n } else if (!group.sup) {\n var _base = group.base;\n\n if (_base && _base.type === \"op\" && _base.limits && (options.style === src_Style.DISPLAY || _base.alwaysHandleSupSub)) {\n nodeType = \"munder\";\n } else if (_base && _base.type === \"operatorname\" && _base.alwaysHandleSupSub && (_base.limits || options.style === src_Style.DISPLAY)) {\n nodeType = \"munder\";\n } else {\n nodeType = \"msub\";\n }\n } else {\n var _base2 = group.base;\n\n if (_base2 && _base2.type === \"op\" && _base2.limits && options.style === src_Style.DISPLAY) {\n nodeType = \"munderover\";\n } else if (_base2 && _base2.type === \"operatorname\" && _base2.alwaysHandleSupSub && (options.style === src_Style.DISPLAY || _base2.limits)) {\n nodeType = \"munderover\";\n } else {\n nodeType = \"msubsup\";\n }\n }\n\n return new mathMLTree.MathNode(nodeType, children);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsOp.js\n\n\n\n // Operator ParseNodes created in Parser.js from symbol Groups in src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"atom\",\n htmlBuilder: function htmlBuilder(group, options) {\n return buildCommon.mathsym(group.text, group.mode, options, [\"m\" + group.family]);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mo\", [makeText(group.text, group.mode)]);\n\n if (group.family === \"bin\") {\n var variant = getVariant(group, options);\n\n if (variant === \"bold-italic\") {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else if (group.family === \"punct\") {\n node.setAttribute(\"separator\", \"true\");\n } else if (group.family === \"open\" || group.family === \"close\") {\n // Delims built here should not stretch vertically.\n // See delimsizing.js for stretchy delims.\n node.setAttribute(\"stretchy\", \"false\");\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsOrd.js\n\n\n\n\n// \"mathord\" and \"textord\" ParseNodes created in Parser.js from symbol Groups in\n// src/symbols.js.\nvar defaultVariant = {\n \"mi\": \"italic\",\n \"mn\": \"normal\",\n \"mtext\": \"normal\"\n};\ndefineFunctionBuilders({\n type: \"mathord\",\n htmlBuilder: function htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mi\", [makeText(group.text, group.mode, options)]);\n var variant = getVariant(group, options) || \"italic\";\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n});\ndefineFunctionBuilders({\n type: \"textord\",\n htmlBuilder: function htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"textord\");\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var text = makeText(group.text, group.mode, options);\n var variant = getVariant(group, options) || \"normal\";\n var node;\n\n if (group.mode === 'text') {\n node = new mathMLTree.MathNode(\"mtext\", [text]);\n } else if (/[0-9]/.test(group.text)) {\n node = new mathMLTree.MathNode(\"mn\", [text]);\n } else if (group.text === \"\\\\prime\") {\n node = new mathMLTree.MathNode(\"mo\", [text]);\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n }\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/symbolsSpacing.js\n\n\n\n // A map of CSS-based spacing functions to their CSS class.\n\nvar cssSpace = {\n \"\\\\nobreak\": \"nobreak\",\n \"\\\\allowbreak\": \"allowbreak\"\n}; // A lookup table to determine whether a spacing function/symbol should be\n// treated like a regular space character. If a symbol or command is a key\n// in this table, then it should be a regular space character. Furthermore,\n// the associated value may have a `className` specifying an extra CSS class\n// to add to the created `span`.\n\nvar regularSpace = {\n \" \": {},\n \"\\\\ \": {},\n \"~\": {\n className: \"nobreak\"\n },\n \"\\\\space\": {},\n \"\\\\nobreakspace\": {\n className: \"nobreak\"\n }\n}; // ParseNode<\"spacing\"> created in Parser.js from the \"spacing\" symbol Groups in\n// src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"spacing\",\n htmlBuilder: function htmlBuilder(group, options) {\n if (regularSpace.hasOwnProperty(group.text)) {\n var className = regularSpace[group.text].className || \"\"; // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n\n if (group.mode === \"text\") {\n var ord = buildCommon.makeOrd(group, options, \"textord\");\n ord.classes.push(className);\n return ord;\n } else {\n return buildCommon.makeSpan([\"mspace\", className], [buildCommon.mathsym(group.text, group.mode, options)], options);\n }\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // Spaces based on just a CSS class.\n return buildCommon.makeSpan([\"mspace\", cssSpace[group.text]], [], options);\n } else {\n throw new src_ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var node;\n\n if (regularSpace.hasOwnProperty(group.text)) {\n node = new mathMLTree.MathNode(\"mtext\", [new mathMLTree.TextNode(\"\\xA0\")]);\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // CSS-based MathML spaces (\\nobreak, \\allowbreak) are ignored\n return new mathMLTree.MathNode(\"mspace\");\n } else {\n throw new src_ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/tag.js\n\n\n\n\nvar pad = function pad() {\n var padNode = new mathMLTree.MathNode(\"mtd\", []);\n padNode.setAttribute(\"width\", \"50%\");\n return padNode;\n};\n\ndefineFunctionBuilders({\n type: \"tag\",\n mathmlBuilder: function mathmlBuilder(group, options) {\n var table = new mathMLTree.MathNode(\"mtable\", [new mathMLTree.MathNode(\"mtr\", [pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.body, options)]), pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.tag, options)])])]);\n table.setAttribute(\"width\", \"100%\");\n return table; // TODO: Left-aligned tags.\n // Currently, the group and options passed here do not contain\n // enough info to set tag alignment. `leqno` is in Settings but it is\n // not passed to Options. On the HTML side, leqno is\n // set by a CSS class applied in buildTree.js. That would have worked\n // in MathML if browsers supported <mlabeledtr>. Since they don't, we\n // need to rewrite the way this function is called.\n }\n});\n;// CONCATENATED MODULE: ./src/functions/text.js\n\n\n\n // Non-mathy text, possibly in a font\n\nvar textFontFamilies = {\n \"\\\\text\": undefined,\n \"\\\\textrm\": \"textrm\",\n \"\\\\textsf\": \"textsf\",\n \"\\\\texttt\": \"texttt\",\n \"\\\\textnormal\": \"textrm\"\n};\nvar textFontWeights = {\n \"\\\\textbf\": \"textbf\",\n \"\\\\textmd\": \"textmd\"\n};\nvar textFontShapes = {\n \"\\\\textit\": \"textit\",\n \"\\\\textup\": \"textup\"\n};\n\nvar optionsWithFont = function optionsWithFont(group, options) {\n var font = group.font; // Checks if the argument is a font family or a font style.\n\n if (!font) {\n return options;\n } else if (textFontFamilies[font]) {\n return options.withTextFontFamily(textFontFamilies[font]);\n } else if (textFontWeights[font]) {\n return options.withTextFontWeight(textFontWeights[font]);\n } else {\n return options.withTextFontShape(textFontShapes[font]);\n }\n};\n\ndefineFunction({\n type: \"text\",\n names: [// Font families\n \"\\\\text\", \"\\\\textrm\", \"\\\\textsf\", \"\\\\texttt\", \"\\\\textnormal\", // Font weights\n \"\\\\textbf\", \"\\\\textmd\", // Font Shapes\n \"\\\\textit\", \"\\\\textup\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInArgument: true,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser,\n funcName = _ref.funcName;\n var body = args[0];\n return {\n type: \"text\",\n mode: parser.mode,\n body: ordargument(body),\n font: funcName\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n var inner = buildExpression(group.body, newOptions, true);\n return buildCommon.makeSpan([\"mord\", \"text\"], inner, newOptions);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n return buildExpressionRow(group.body, newOptions);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/underline.js\n\n\n\n\n\ndefineFunction({\n type: \"underline\",\n names: [\"\\\\underline\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n return {\n type: \"underline\",\n mode: parser.mode,\n body: args[0]\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n // Build the inner group.\n var innerGroup = buildGroup(group.body, options); // Create the line to go below the body\n\n var line = buildCommon.makeLineSpan(\"underline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"kern\",\n size: defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"underline\"], [vlist], options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203E\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"munder\", [buildMathML_buildGroup(group.body, options), operator]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n});\n;// CONCATENATED MODULE: ./src/functions/vcenter.js\n\n\n\n\n // \\vcenter: Vertically center the argument group on the math axis.\n\ndefineFunction({\n type: \"vcenter\",\n names: [\"\\\\vcenter\"],\n props: {\n numArgs: 1,\n argTypes: [\"original\"],\n // In LaTeX, \\vcenter can act only on a box.\n allowedInText: false\n },\n handler: function handler(_ref, args) {\n var parser = _ref.parser;\n return {\n type: \"vcenter\",\n mode: parser.mode,\n body: args[0]\n };\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var body = buildGroup(group.body, options);\n var axisHeight = options.fontMetrics().axisHeight;\n var dy = 0.5 * (body.height - axisHeight - (body.depth + axisHeight));\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n // There is no way to do this in MathML.\n // Write a class as a breadcrumb in case some post-processor wants\n // to perform a vcenter adjustment.\n return new mathMLTree.MathNode(\"mpadded\", [buildMathML_buildGroup(group.body, options)], [\"vcenter\"]);\n }\n});\n;// CONCATENATED MODULE: ./src/functions/verb.js\n\n\n\n\ndefineFunction({\n type: \"verb\",\n names: [\"\\\\verb\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: function handler(context, args, optArgs) {\n // \\verb and \\verb* are dealt with directly in Parser.js.\n // If we end up here, it's because of a failure to match the two delimiters\n // in the regex in Lexer.js. LaTeX raises the following error when \\verb is\n // terminated by end of line (or file).\n throw new src_ParseError(\"\\\\verb ended by end of line instead of matching delimiter\");\n },\n htmlBuilder: function htmlBuilder(group, options) {\n var text = makeVerb(group);\n var body = []; // \\verb enters text mode and therefore is sized like \\textstyle\n\n var newOptions = options.havingStyle(options.style.text());\n\n for (var i = 0; i < text.length; i++) {\n var c = text[i];\n\n if (c === '~') {\n c = '\\\\textasciitilde';\n }\n\n body.push(buildCommon.makeSymbol(c, \"Typewriter-Regular\", group.mode, newOptions, [\"mord\", \"texttt\"]));\n }\n\n return buildCommon.makeSpan([\"mord\", \"text\"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions);\n },\n mathmlBuilder: function mathmlBuilder(group, options) {\n var text = new mathMLTree.TextNode(makeVerb(group));\n var node = new mathMLTree.MathNode(\"mtext\", [text]);\n node.setAttribute(\"mathvariant\", \"monospace\");\n return node;\n }\n});\n/**\n * Converts verb group into body string.\n *\n * \\verb* replaces each space with an open box \\u2423\n * \\verb replaces each space with a no-break space \\xA0\n */\n\nvar makeVerb = function makeVerb(group) {\n return group.body.replace(/ /g, group.star ? \"\\u2423\" : '\\xA0');\n};\n;// CONCATENATED MODULE: ./src/functions.js\n/** Include this to ensure that all functions are defined. */\n\nvar functions = _functions;\n/* harmony default export */ var src_functions = (functions); // TODO(kevinb): have functions return an object and call defineFunction with\n// that object in this file instead of relying on side-effects.\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n;// CONCATENATED MODULE: ./src/SourceLocation.js\n/**\n * Lexing or parsing positional information for error reporting.\n * This object is immutable.\n */\nvar SourceLocation = /*#__PURE__*/function () {\n // The + prefix indicates that these fields aren't writeable\n // Lexer holding the input string.\n // Start offset, zero-based inclusive.\n // End offset, zero-based exclusive.\n function SourceLocation(lexer, start, end) {\n this.lexer = void 0;\n this.start = void 0;\n this.end = void 0;\n this.lexer = lexer;\n this.start = start;\n this.end = end;\n }\n /**\n * Merges two `SourceLocation`s from location providers, given they are\n * provided in order of appearance.\n * - Returns the first one's location if only the first is provided.\n * - Returns a merged range of the first and the last if both are provided\n * and their lexers match.\n * - Otherwise, returns null.\n */\n\n\n SourceLocation.range = function range(first, second) {\n if (!second) {\n return first && first.loc;\n } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {\n return null;\n } else {\n return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);\n }\n };\n\n return SourceLocation;\n}();\n\n\n;// CONCATENATED MODULE: ./src/Token.js\n\n/**\n * Interface required to break circular dependency between Token, Lexer, and\n * ParseError.\n */\n\n/**\n * The resulting token returned from `lex`.\n *\n * It consists of the token text plus some position information.\n * The position information is essentially a range in an input string,\n * but instead of referencing the bare input string, we refer to the lexer.\n * That way it is possible to attach extra metadata to the input string,\n * like for example a file name or similar.\n *\n * The position information is optional, so it is OK to construct synthetic\n * tokens if appropriate. Not providing available position information may\n * lead to degraded error reporting, though.\n */\nvar Token = /*#__PURE__*/function () {\n // don't expand the token\n // used in \\noexpand\n function Token(text, // the text of this token\n loc) {\n this.text = void 0;\n this.loc = void 0;\n this.noexpand = void 0;\n this.treatAsRelax = void 0;\n this.text = text;\n this.loc = loc;\n }\n /**\n * Given a pair of tokens (this and endToken), compute a `Token` encompassing\n * the whole input range enclosed by these two.\n */\n\n\n var _proto = Token.prototype;\n\n _proto.range = function range(endToken, // last token of the range, inclusive\n text // the text of the newly constructed token\n ) {\n return new Token(text, SourceLocation.range(this, endToken));\n };\n\n return Token;\n}();\n;// CONCATENATED MODULE: ./src/Lexer.js\n/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\n\n\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more whitespace characters\n * - matches a backslash followed by one or more letters then whitespace\n * - matches a backslash followed by any BMP character\n * Capturing groups:\n * [1] regular whitespace\n * [2] backslash followed by whitespace\n * [3] anything else, which may include:\n * [4] left character of \\verb*\n * [5] left character of \\verb\n * [6] backslash followed by word, excluding any trailing whitespace\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar spaceRegexString = \"[ \\r\\n\\t]\";\nvar controlWordRegexString = \"\\\\\\\\[a-zA-Z@]+\";\nvar controlSymbolRegexString = \"\\\\\\\\[^\\uD800-\\uDFFF]\";\nvar controlWordWhitespaceRegexString = \"(\" + controlWordRegexString + \")\" + spaceRegexString + \"*\";\nvar controlSpaceRegexString = \"\\\\\\\\(\\n|[ \\r\\t]+\\n?)[ \\r\\t]*\";\nvar combiningDiacriticalMarkString = \"[\\u0300-\\u036F]\";\nvar combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + \"+$\");\nvar tokenRegexString = \"(\" + spaceRegexString + \"+)|\" + ( // whitespace\ncontrolSpaceRegexString + \"|\") + // \\whitespace\n\"([!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + ( // single codepoint\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + ( // surrogate pair\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|\\\\\\\\verb\\\\*([^]).*?\\\\4\" + // \\verb*\n\"|\\\\\\\\verb([^*a-zA-Z]).*?\\\\5\" + ( // \\verb unstarred\n\"|\" + controlWordWhitespaceRegexString) + ( // \\macroName + spaces\n\"|\" + controlSymbolRegexString + \")\"); // \\\\, \\', etc.\n\n/** Main Lexer class */\n\nvar Lexer = /*#__PURE__*/function () {\n // Category codes. The lexer only supports comment characters (14) for now.\n // MacroExpander additionally distinguishes active (13).\n function Lexer(input, settings) {\n this.input = void 0;\n this.settings = void 0;\n this.tokenRegex = void 0;\n this.catcodes = void 0;\n // Separate accents from characters\n this.input = input;\n this.settings = settings;\n this.tokenRegex = new RegExp(tokenRegexString, 'g');\n this.catcodes = {\n \"%\": 14,\n // comment character\n \"~\": 13 // active character\n\n };\n }\n\n var _proto = Lexer.prototype;\n\n _proto.setCatcode = function setCatcode(char, code) {\n this.catcodes[char] = code;\n }\n /**\n * This function lexes a single token.\n */\n ;\n\n _proto.lex = function lex() {\n var input = this.input;\n var pos = this.tokenRegex.lastIndex;\n\n if (pos === input.length) {\n return new Token(\"EOF\", new SourceLocation(this, pos, pos));\n }\n\n var match = this.tokenRegex.exec(input);\n\n if (match === null || match.index !== pos) {\n throw new src_ParseError(\"Unexpected character: '\" + input[pos] + \"'\", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));\n }\n\n var text = match[6] || match[3] || (match[2] ? \"\\\\ \" : \" \");\n\n if (this.catcodes[text] === 14) {\n // comment character\n var nlIndex = input.indexOf('\\n', this.tokenRegex.lastIndex);\n\n if (nlIndex === -1) {\n this.tokenRegex.lastIndex = input.length; // EOF\n\n this.settings.reportNonstrict(\"commentAtEnd\", \"% comment has no terminating newline; LaTeX would \" + \"fail because of commenting the end of math mode (e.g. $)\");\n } else {\n this.tokenRegex.lastIndex = nlIndex + 1;\n }\n\n return this.lex();\n }\n\n return new Token(text, new SourceLocation(this, pos, this.tokenRegex.lastIndex));\n };\n\n return Lexer;\n}();\n\n\n;// CONCATENATED MODULE: ./src/Namespace.js\n/**\n * A `Namespace` refers to a space of nameable things like macros or lengths,\n * which can be `set` either globally or local to a nested group, using an\n * undo stack similar to how TeX implements this functionality.\n * Performance-wise, `get` and local `set` take constant time, while global\n * `set` takes time proportional to the depth of group nesting.\n */\n\n\nvar Namespace = /*#__PURE__*/function () {\n /**\n * Both arguments are optional. The first argument is an object of\n * built-in mappings which never change. The second argument is an object\n * of initial (global-level) mappings, which will constantly change\n * according to any global/top-level `set`s done.\n */\n function Namespace(builtins, globalMacros) {\n if (builtins === void 0) {\n builtins = {};\n }\n\n if (globalMacros === void 0) {\n globalMacros = {};\n }\n\n this.current = void 0;\n this.builtins = void 0;\n this.undefStack = void 0;\n this.current = globalMacros;\n this.builtins = builtins;\n this.undefStack = [];\n }\n /**\n * Start a new nested group, affecting future local `set`s.\n */\n\n\n var _proto = Namespace.prototype;\n\n _proto.beginGroup = function beginGroup() {\n this.undefStack.push({});\n }\n /**\n * End current nested group, restoring values before the group began.\n */\n ;\n\n _proto.endGroup = function endGroup() {\n if (this.undefStack.length === 0) {\n throw new src_ParseError(\"Unbalanced namespace destruction: attempt \" + \"to pop global namespace; please report this as a bug\");\n }\n\n var undefs = this.undefStack.pop();\n\n for (var undef in undefs) {\n if (undefs.hasOwnProperty(undef)) {\n if (undefs[undef] === undefined) {\n delete this.current[undef];\n } else {\n this.current[undef] = undefs[undef];\n }\n }\n }\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n ;\n\n _proto.endGroups = function endGroups() {\n while (this.undefStack.length > 0) {\n this.endGroup();\n }\n }\n /**\n * Detect whether `name` has a definition. Equivalent to\n * `get(name) != null`.\n */\n ;\n\n _proto.has = function has(name) {\n return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);\n }\n /**\n * Get the current value of a name, or `undefined` if there is no value.\n *\n * Note: Do not use `if (namespace.get(...))` to detect whether a macro\n * is defined, as the definition may be the empty string which evaluates\n * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or\n * `if (namespace.has(...))`.\n */\n ;\n\n _proto.get = function get(name) {\n if (this.current.hasOwnProperty(name)) {\n return this.current[name];\n } else {\n return this.builtins[name];\n }\n }\n /**\n * Set the current value of a name, and optionally set it globally too.\n * Local set() sets the current value and (when appropriate) adds an undo\n * operation to the undo stack. Global set() may change the undo\n * operation at every level, so takes time linear in their number.\n */\n ;\n\n _proto.set = function set(name, value, global) {\n if (global === void 0) {\n global = false;\n }\n\n if (global) {\n // Global set is equivalent to setting in all groups. Simulate this\n // by destroying any undos currently scheduled for this name,\n // and adding an undo with the *new* value (in case it later gets\n // locally reset within this environment).\n for (var i = 0; i < this.undefStack.length; i++) {\n delete this.undefStack[i][name];\n }\n\n if (this.undefStack.length > 0) {\n this.undefStack[this.undefStack.length - 1][name] = value;\n }\n } else {\n // Undo this set at end of this group (possibly to `undefined`),\n // unless an undo is already in place, in which case that older\n // value is the correct one.\n var top = this.undefStack[this.undefStack.length - 1];\n\n if (top && !top.hasOwnProperty(name)) {\n top[name] = this.current[name];\n }\n }\n\n this.current[name] = value;\n };\n\n return Namespace;\n}();\n\n\n;// CONCATENATED MODULE: ./src/macros.js\n/**\n * Predefined macros for KaTeX.\n * This can be used to define some commands in terms of others.\n */\n// Export global macros object from defineMacro\n\nvar macros = _macros;\n/* harmony default export */ var src_macros = (macros);\n\n\n\n\n //////////////////////////////////////////////////////////////////////\n// macro tools\n\ndefineMacro(\"\\\\noexpand\", function (context) {\n // The expansion is the token itself; but that token is interpreted\n // as if its meaning were ‘\\relax’ if it is a control sequence that\n // would ordinarily be expanded by TeX’s expansion rules.\n var t = context.popToken();\n\n if (context.isExpandable(t.text)) {\n t.noexpand = true;\n t.treatAsRelax = true;\n }\n\n return {\n tokens: [t],\n numArgs: 0\n };\n});\ndefineMacro(\"\\\\expandafter\", function (context) {\n // TeX first reads the token that comes immediately after \\expandafter,\n // without expanding it; let’s call this token t. Then TeX reads the\n // token that comes after t (and possibly more tokens, if that token\n // has an argument), replacing it by its expansion. Finally TeX puts\n // t back in front of that expansion.\n var t = context.popToken();\n context.expandOnce(true); // expand only an expandable token\n\n return {\n tokens: [t],\n numArgs: 0\n };\n}); // LaTeX's \\@firstoftwo{#1}{#2} expands to #1, skipping #2\n// TeX source: \\long\\def\\@firstoftwo#1#2{#1}\n\ndefineMacro(\"\\\\@firstoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[0],\n numArgs: 0\n };\n}); // LaTeX's \\@secondoftwo{#1}{#2} expands to #2, skipping #1\n// TeX source: \\long\\def\\@secondoftwo#1#2{#2}\n\ndefineMacro(\"\\\\@secondoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[1],\n numArgs: 0\n };\n}); // LaTeX's \\@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded)\n// symbol that isn't a space, consuming any spaces but not consuming the\n// first nonspace character. If that nonspace character matches #1, then\n// the macro expands to #2; otherwise, it expands to #3.\n\ndefineMacro(\"\\\\@ifnextchar\", function (context) {\n var args = context.consumeArgs(3); // symbol, if, else\n\n context.consumeSpaces();\n var nextToken = context.future();\n\n if (args[0].length === 1 && args[0][0].text === nextToken.text) {\n return {\n tokens: args[1],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[2],\n numArgs: 0\n };\n }\n}); // LaTeX's \\@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol.\n// If it is `*`, then it consumes the symbol, and the macro expands to #1;\n// otherwise, the macro expands to #2 (without consuming the symbol).\n// TeX source: \\def\\@ifstar#1{\\@ifnextchar *{\\@firstoftwo{#1}}}\n\ndefineMacro(\"\\\\@ifstar\", \"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\"); // LaTeX's \\TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode\n\ndefineMacro(\"\\\\TextOrMath\", function (context) {\n var args = context.consumeArgs(2);\n\n if (context.mode === 'text') {\n return {\n tokens: args[0],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[1],\n numArgs: 0\n };\n }\n}); // Lookup table for parsing numbers in base 8 through 16\n\nvar digitToNumber = {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"a\": 10,\n \"A\": 10,\n \"b\": 11,\n \"B\": 11,\n \"c\": 12,\n \"C\": 12,\n \"d\": 13,\n \"D\": 13,\n \"e\": 14,\n \"E\": 14,\n \"f\": 15,\n \"F\": 15\n}; // TeX \\char makes a literal character (catcode 12) using the following forms:\n// (see The TeXBook, p. 43)\n// \\char123 -- decimal\n// \\char'123 -- octal\n// \\char\"123 -- hex\n// \\char`x -- character that can be written (i.e. isn't active)\n// \\char`\\x -- character that cannot be written (e.g. %)\n// These all refer to characters from the font, so we turn them into special\n// calls to a function \\@char dealt with in the Parser.\n\ndefineMacro(\"\\\\char\", function (context) {\n var token = context.popToken();\n var base;\n var number = '';\n\n if (token.text === \"'\") {\n base = 8;\n token = context.popToken();\n } else if (token.text === '\"') {\n base = 16;\n token = context.popToken();\n } else if (token.text === \"`\") {\n token = context.popToken();\n\n if (token.text[0] === \"\\\\\") {\n number = token.text.charCodeAt(1);\n } else if (token.text === \"EOF\") {\n throw new src_ParseError(\"\\\\char` missing argument\");\n } else {\n number = token.text.charCodeAt(0);\n }\n } else {\n base = 10;\n }\n\n if (base) {\n // Parse a number in the given base, starting with first `token`.\n number = digitToNumber[token.text];\n\n if (number == null || number >= base) {\n throw new src_ParseError(\"Invalid base-\" + base + \" digit \" + token.text);\n }\n\n var digit;\n\n while ((digit = digitToNumber[context.future().text]) != null && digit < base) {\n number *= base;\n number += digit;\n context.popToken();\n }\n }\n\n return \"\\\\@char{\" + number + \"}\";\n}); // \\newcommand{\\macro}[args]{definition}\n// \\renewcommand{\\macro}[args]{definition}\n// TODO: Optional arguments: \\newcommand{\\macro}[args][default]{definition}\n\nvar newcommand = function newcommand(context, existsOK, nonexistsOK) {\n var arg = context.consumeArg().tokens;\n\n if (arg.length !== 1) {\n throw new src_ParseError(\"\\\\newcommand's first argument must be a macro name\");\n }\n\n var name = arg[0].text;\n var exists = context.isDefined(name);\n\n if (exists && !existsOK) {\n throw new src_ParseError(\"\\\\newcommand{\" + name + \"} attempting to redefine \" + (name + \"; use \\\\renewcommand\"));\n }\n\n if (!exists && !nonexistsOK) {\n throw new src_ParseError(\"\\\\renewcommand{\" + name + \"} when command \" + name + \" \" + \"does not yet exist; use \\\\newcommand\");\n }\n\n var numArgs = 0;\n arg = context.consumeArg().tokens;\n\n if (arg.length === 1 && arg[0].text === \"[\") {\n var argText = '';\n var token = context.expandNextToken();\n\n while (token.text !== \"]\" && token.text !== \"EOF\") {\n // TODO: Should properly expand arg, e.g., ignore {}s\n argText += token.text;\n token = context.expandNextToken();\n }\n\n if (!argText.match(/^\\s*[0-9]+\\s*$/)) {\n throw new src_ParseError(\"Invalid number of arguments: \" + argText);\n }\n\n numArgs = parseInt(argText);\n arg = context.consumeArg().tokens;\n } // Final arg is the expansion of the macro\n\n\n context.macros.set(name, {\n tokens: arg,\n numArgs: numArgs\n });\n return '';\n};\n\ndefineMacro(\"\\\\newcommand\", function (context) {\n return newcommand(context, false, true);\n});\ndefineMacro(\"\\\\renewcommand\", function (context) {\n return newcommand(context, true, false);\n});\ndefineMacro(\"\\\\providecommand\", function (context) {\n return newcommand(context, true, true);\n}); // terminal (console) tools\n\ndefineMacro(\"\\\\message\", function (context) {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.log(arg.reverse().map(function (token) {\n return token.text;\n }).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\errmessage\", function (context) {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.error(arg.reverse().map(function (token) {\n return token.text;\n }).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\show\", function (context) {\n var tok = context.popToken();\n var name = tok.text; // eslint-disable-next-line no-console\n\n console.log(tok, context.macros.get(name), src_functions[name], src_symbols.math[name], src_symbols.text[name]);\n return '';\n}); //////////////////////////////////////////////////////////////////////\n// Grouping\n// \\let\\bgroup={ \\let\\egroup=}\n\ndefineMacro(\"\\\\bgroup\", \"{\");\ndefineMacro(\"\\\\egroup\", \"}\"); // Symbols from latex.ltx:\n// \\def~{\\nobreakspace{}}\n// \\def\\lq{`}\n// \\def\\rq{'}\n// \\def \\aa {\\r a}\n// \\def \\AA {\\r A}\n\ndefineMacro(\"~\", \"\\\\nobreakspace\");\ndefineMacro(\"\\\\lq\", \"`\");\ndefineMacro(\"\\\\rq\", \"'\");\ndefineMacro(\"\\\\aa\", \"\\\\r a\");\ndefineMacro(\"\\\\AA\", \"\\\\r A\"); // Copyright (C) and registered (R) symbols. Use raw symbol in MathML.\n// \\DeclareTextCommandDefault{\\textcopyright}{\\textcircled{c}}\n// \\DeclareTextCommandDefault{\\textregistered}{\\textcircled{%\n// \\check@mathfonts\\fontsize\\sf@size\\z@\\math@fontsfalse\\selectfont R}}\n// \\DeclareRobustCommand{\\copyright}{%\n// \\ifmmode{\\nfss@text{\\textcopyright}}\\else\\textcopyright\\fi}\n\ndefineMacro(\"\\\\textcopyright\", \"\\\\html@mathml{\\\\textcircled{c}}{\\\\char`©}\");\ndefineMacro(\"\\\\copyright\", \"\\\\TextOrMath{\\\\textcopyright}{\\\\text{\\\\textcopyright}}\");\ndefineMacro(\"\\\\textregistered\", \"\\\\html@mathml{\\\\textcircled{\\\\scriptsize R}}{\\\\char`®}\"); // Characters omitted from Unicode range 1D400–1D7FF\n\ndefineMacro(\"\\u212C\", \"\\\\mathscr{B}\"); // script\n\ndefineMacro(\"\\u2130\", \"\\\\mathscr{E}\");\ndefineMacro(\"\\u2131\", \"\\\\mathscr{F}\");\ndefineMacro(\"\\u210B\", \"\\\\mathscr{H}\");\ndefineMacro(\"\\u2110\", \"\\\\mathscr{I}\");\ndefineMacro(\"\\u2112\", \"\\\\mathscr{L}\");\ndefineMacro(\"\\u2133\", \"\\\\mathscr{M}\");\ndefineMacro(\"\\u211B\", \"\\\\mathscr{R}\");\ndefineMacro(\"\\u212D\", \"\\\\mathfrak{C}\"); // Fraktur\n\ndefineMacro(\"\\u210C\", \"\\\\mathfrak{H}\");\ndefineMacro(\"\\u2128\", \"\\\\mathfrak{Z}\"); // Define \\Bbbk with a macro that works in both HTML and MathML.\n\ndefineMacro(\"\\\\Bbbk\", \"\\\\Bbb{k}\"); // Unicode middle dot\n// The KaTeX fonts do not contain U+00B7. Instead, \\cdotp displays\n// the dot at U+22C5 and gives it punct spacing.\n\ndefineMacro(\"\\xB7\", \"\\\\cdotp\"); // \\llap and \\rlap render their contents in text mode\n\ndefineMacro(\"\\\\llap\", \"\\\\mathllap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\rlap\", \"\\\\mathrlap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\clap\", \"\\\\mathclap{\\\\textrm{#1}}\"); // \\mathstrut from the TeXbook, p 360\n\ndefineMacro(\"\\\\mathstrut\", \"\\\\vphantom{(}\"); // \\underbar from TeXbook p 353\n\ndefineMacro(\"\\\\underbar\", \"\\\\underline{\\\\text{#1}}\"); // \\not is defined by base/fontmath.ltx via\n// \\DeclareMathSymbol{\\not}{\\mathrel}{symbols}{\"36}\n// It's thus treated like a \\mathrel, but defined by a symbol that has zero\n// width but extends to the right. We use \\rlap to get that spacing.\n// For MathML we write U+0338 here. buildMathML.js will then do the overlay.\n\ndefineMacro(\"\\\\not\", '\\\\html@mathml{\\\\mathrel{\\\\mathrlap\\\\@not}}{\\\\char\"338}'); // Negated symbols from base/fontmath.ltx:\n// \\def\\neq{\\not=} \\let\\ne=\\neq\n// \\DeclareRobustCommand\n// \\notin{\\mathrel{\\m@th\\mathpalette\\c@ncel\\in}}\n// \\def\\c@ncel#1#2{\\m@th\\ooalign{$\\hfil#1\\mkern1mu/\\hfil$\\crcr$#1#2$}}\n\ndefineMacro(\"\\\\neq\", \"\\\\html@mathml{\\\\mathrel{\\\\not=}}{\\\\mathrel{\\\\char`≠}}\");\ndefineMacro(\"\\\\ne\", \"\\\\neq\");\ndefineMacro(\"\\u2260\", \"\\\\neq\");\ndefineMacro(\"\\\\notin\", \"\\\\html@mathml{\\\\mathrel{{\\\\in}\\\\mathllap{/\\\\mskip1mu}}}\" + \"{\\\\mathrel{\\\\char`∉}}\");\ndefineMacro(\"\\u2209\", \"\\\\notin\"); // Unicode stacked relations\n\ndefineMacro(\"\\u2258\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\kern{-1em}\\\\raisebox{0.4em}{$\\\\scriptsize\\\\frown$}}\" + \"}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u2259\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\wedge}{=}}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u225A\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\vee}{=}}{\\\\mathrel{\\\\char`\\u225A}}\");\ndefineMacro(\"\\u225B\", \"\\\\html@mathml{\\\\stackrel{\\\\scriptsize\\\\star}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225B}}\");\ndefineMacro(\"\\u225D\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{def}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225D}}\");\ndefineMacro(\"\\u225E\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{m}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225E}}\");\ndefineMacro(\"\\u225F\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny?}{=}}{\\\\mathrel{\\\\char`\\u225F}}\"); // Misc Unicode\n\ndefineMacro(\"\\u27C2\", \"\\\\perp\");\ndefineMacro(\"\\u203C\", \"\\\\mathclose{!\\\\mkern-0.8mu!}\");\ndefineMacro(\"\\u220C\", \"\\\\notni\");\ndefineMacro(\"\\u231C\", \"\\\\ulcorner\");\ndefineMacro(\"\\u231D\", \"\\\\urcorner\");\ndefineMacro(\"\\u231E\", \"\\\\llcorner\");\ndefineMacro(\"\\u231F\", \"\\\\lrcorner\");\ndefineMacro(\"\\xA9\", \"\\\\copyright\");\ndefineMacro(\"\\xAE\", \"\\\\textregistered\");\ndefineMacro(\"\\uFE0F\", \"\\\\textregistered\"); // The KaTeX fonts have corners at codepoints that don't match Unicode.\n// For MathML purposes, use the Unicode code point.\n\ndefineMacro(\"\\\\ulcorner\", \"\\\\html@mathml{\\\\@ulcorner}{\\\\mathop{\\\\char\\\"231c}}\");\ndefineMacro(\"\\\\urcorner\", \"\\\\html@mathml{\\\\@urcorner}{\\\\mathop{\\\\char\\\"231d}}\");\ndefineMacro(\"\\\\llcorner\", \"\\\\html@mathml{\\\\@llcorner}{\\\\mathop{\\\\char\\\"231e}}\");\ndefineMacro(\"\\\\lrcorner\", \"\\\\html@mathml{\\\\@lrcorner}{\\\\mathop{\\\\char\\\"231f}}\"); //////////////////////////////////////////////////////////////////////\n// LaTeX_2ε\n// \\vdots{\\vbox{\\baselineskip4\\p@ \\lineskiplimit\\z@\n// \\kern6\\p@\\hbox{.}\\hbox{.}\\hbox{.}}}\n// We'll call \\varvdots, which gets a glyph from symbols.js.\n// The zero-width rule gets us an equivalent to the vertical 6pt kern.\n\ndefineMacro(\"\\\\vdots\", \"\\\\mathord{\\\\varvdots\\\\rule{0pt}{15pt}}\");\ndefineMacro(\"\\u22EE\", \"\\\\vdots\"); //////////////////////////////////////////////////////////////////////\n// amsmath.sty\n// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf\n// Italic Greek capital letters. AMS defines these with \\DeclareMathSymbol,\n// but they are equivalent to \\mathit{\\Letter}.\n\ndefineMacro(\"\\\\varGamma\", \"\\\\mathit{\\\\Gamma}\");\ndefineMacro(\"\\\\varDelta\", \"\\\\mathit{\\\\Delta}\");\ndefineMacro(\"\\\\varTheta\", \"\\\\mathit{\\\\Theta}\");\ndefineMacro(\"\\\\varLambda\", \"\\\\mathit{\\\\Lambda}\");\ndefineMacro(\"\\\\varXi\", \"\\\\mathit{\\\\Xi}\");\ndefineMacro(\"\\\\varPi\", \"\\\\mathit{\\\\Pi}\");\ndefineMacro(\"\\\\varSigma\", \"\\\\mathit{\\\\Sigma}\");\ndefineMacro(\"\\\\varUpsilon\", \"\\\\mathit{\\\\Upsilon}\");\ndefineMacro(\"\\\\varPhi\", \"\\\\mathit{\\\\Phi}\");\ndefineMacro(\"\\\\varPsi\", \"\\\\mathit{\\\\Psi}\");\ndefineMacro(\"\\\\varOmega\", \"\\\\mathit{\\\\Omega}\"); //\\newcommand{\\substack}[1]{\\subarray{c}#1\\endsubarray}\n\ndefineMacro(\"\\\\substack\", \"\\\\begin{subarray}{c}#1\\\\end{subarray}\"); // \\renewcommand{\\colon}{\\nobreak\\mskip2mu\\mathpunct{}\\nonscript\n// \\mkern-\\thinmuskip{:}\\mskip6muplus1mu\\relax}\n\ndefineMacro(\"\\\\colon\", \"\\\\nobreak\\\\mskip2mu\\\\mathpunct{}\" + \"\\\\mathchoice{\\\\mkern-3mu}{\\\\mkern-3mu}{}{}{:}\\\\mskip6mu\"); // \\newcommand{\\boxed}[1]{\\fbox{\\m@th$\\displaystyle#1$}}\n\ndefineMacro(\"\\\\boxed\", \"\\\\fbox{$\\\\displaystyle{#1}$}\"); // \\def\\iff{\\DOTSB\\;\\Longleftrightarrow\\;}\n// \\def\\implies{\\DOTSB\\;\\Longrightarrow\\;}\n// \\def\\impliedby{\\DOTSB\\;\\Longleftarrow\\;}\n\ndefineMacro(\"\\\\iff\", \"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\");\ndefineMacro(\"\\\\implies\", \"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\");\ndefineMacro(\"\\\\impliedby\", \"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\"); // AMSMath's automatic \\dots, based on \\mdots@@ macro.\n\nvar dotsByToken = {\n ',': '\\\\dotsc',\n '\\\\not': '\\\\dotsb',\n // \\keybin@ checks for the following:\n '+': '\\\\dotsb',\n '=': '\\\\dotsb',\n '<': '\\\\dotsb',\n '>': '\\\\dotsb',\n '-': '\\\\dotsb',\n '*': '\\\\dotsb',\n ':': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSB:\n '\\\\DOTSB': '\\\\dotsb',\n '\\\\coprod': '\\\\dotsb',\n '\\\\bigvee': '\\\\dotsb',\n '\\\\bigwedge': '\\\\dotsb',\n '\\\\biguplus': '\\\\dotsb',\n '\\\\bigcap': '\\\\dotsb',\n '\\\\bigcup': '\\\\dotsb',\n '\\\\prod': '\\\\dotsb',\n '\\\\sum': '\\\\dotsb',\n '\\\\bigotimes': '\\\\dotsb',\n '\\\\bigoplus': '\\\\dotsb',\n '\\\\bigodot': '\\\\dotsb',\n '\\\\bigsqcup': '\\\\dotsb',\n '\\\\And': '\\\\dotsb',\n '\\\\longrightarrow': '\\\\dotsb',\n '\\\\Longrightarrow': '\\\\dotsb',\n '\\\\longleftarrow': '\\\\dotsb',\n '\\\\Longleftarrow': '\\\\dotsb',\n '\\\\longleftrightarrow': '\\\\dotsb',\n '\\\\Longleftrightarrow': '\\\\dotsb',\n '\\\\mapsto': '\\\\dotsb',\n '\\\\longmapsto': '\\\\dotsb',\n '\\\\hookrightarrow': '\\\\dotsb',\n '\\\\doteq': '\\\\dotsb',\n // Symbols whose definition starts with \\mathbin:\n '\\\\mathbin': '\\\\dotsb',\n // Symbols whose definition starts with \\mathrel:\n '\\\\mathrel': '\\\\dotsb',\n '\\\\relbar': '\\\\dotsb',\n '\\\\Relbar': '\\\\dotsb',\n '\\\\xrightarrow': '\\\\dotsb',\n '\\\\xleftarrow': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSI:\n '\\\\DOTSI': '\\\\dotsi',\n '\\\\int': '\\\\dotsi',\n '\\\\oint': '\\\\dotsi',\n '\\\\iint': '\\\\dotsi',\n '\\\\iiint': '\\\\dotsi',\n '\\\\iiiint': '\\\\dotsi',\n '\\\\idotsint': '\\\\dotsi',\n // Symbols whose definition starts with \\DOTSX:\n '\\\\DOTSX': '\\\\dotsx'\n};\ndefineMacro(\"\\\\dots\", function (context) {\n // TODO: If used in text mode, should expand to \\textellipsis.\n // However, in KaTeX, \\textellipsis and \\ldots behave the same\n // (in text mode), and it's unlikely we'd see any of the math commands\n // that affect the behavior of \\dots when in text mode. So fine for now\n // (until we support \\ifmmode ... \\else ... \\fi).\n var thedots = '\\\\dotso';\n var next = context.expandAfterFuture().text;\n\n if (next in dotsByToken) {\n thedots = dotsByToken[next];\n } else if (next.substr(0, 4) === '\\\\not') {\n thedots = '\\\\dotsb';\n } else if (next in src_symbols.math) {\n if (utils.contains(['bin', 'rel'], src_symbols.math[next].group)) {\n thedots = '\\\\dotsb';\n }\n }\n\n return thedots;\n});\nvar spaceAfterDots = {\n // \\rightdelim@ checks for the following:\n ')': true,\n ']': true,\n '\\\\rbrack': true,\n '\\\\}': true,\n '\\\\rbrace': true,\n '\\\\rangle': true,\n '\\\\rceil': true,\n '\\\\rfloor': true,\n '\\\\rgroup': true,\n '\\\\rmoustache': true,\n '\\\\right': true,\n '\\\\bigr': true,\n '\\\\biggr': true,\n '\\\\Bigr': true,\n '\\\\Biggr': true,\n // \\extra@ also tests for the following:\n '$': true,\n // \\extrap@ checks for the following:\n ';': true,\n '.': true,\n ',': true\n};\ndefineMacro(\"\\\\dotso\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\dotsc\", function (context) {\n var next = context.future().text; // \\dotsc uses \\extra@ but not \\extrap@, instead specially checking for\n // ';' and '.', but doesn't check for ','.\n\n if (next in spaceAfterDots && next !== ',') {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\cdots\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\@cdots\\\\,\";\n } else {\n return \"\\\\@cdots\";\n }\n});\ndefineMacro(\"\\\\dotsb\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsm\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsi\", \"\\\\!\\\\cdots\"); // amsmath doesn't actually define \\dotsx, but \\dots followed by a macro\n// starting with \\DOTSX implies \\dotso, and then \\extra@ detects this case\n// and forces the added `\\,`.\n\ndefineMacro(\"\\\\dotsx\", \"\\\\ldots\\\\,\"); // \\let\\DOTSI\\relax\n// \\let\\DOTSB\\relax\n// \\let\\DOTSX\\relax\n\ndefineMacro(\"\\\\DOTSI\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSB\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSX\", \"\\\\relax\"); // Spacing, based on amsmath.sty's override of LaTeX defaults\n// \\DeclareRobustCommand{\\tmspace}[3]{%\n// \\ifmmode\\mskip#1#2\\else\\kern#1#3\\fi\\relax}\n\ndefineMacro(\"\\\\tmspace\", \"\\\\TextOrMath{\\\\kern#1#3}{\\\\mskip#1#2}\\\\relax\"); // \\renewcommand{\\,}{\\tmspace+\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\,\", \"\\\\tmspace+{3mu}{.1667em}\"); // \\let\\thinspace\\,\n\ndefineMacro(\"\\\\thinspace\", \"\\\\,\"); // \\def\\>{\\mskip\\medmuskip}\n// \\renewcommand{\\:}{\\tmspace+\\medmuskip{.2222em}}\n// TODO: \\> and math mode of \\: should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\>\", \"\\\\mskip{4mu}\");\ndefineMacro(\"\\\\:\", \"\\\\tmspace+{4mu}{.2222em}\"); // \\let\\medspace\\:\n\ndefineMacro(\"\\\\medspace\", \"\\\\:\"); // \\renewcommand{\\;}{\\tmspace+\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip = 5mu plus 5mu\n\ndefineMacro(\"\\\\;\", \"\\\\tmspace+{5mu}{.2777em}\"); // \\let\\thickspace\\;\n\ndefineMacro(\"\\\\thickspace\", \"\\\\;\"); // \\renewcommand{\\!}{\\tmspace-\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\!\", \"\\\\tmspace-{3mu}{.1667em}\"); // \\let\\negthinspace\\!\n\ndefineMacro(\"\\\\negthinspace\", \"\\\\!\"); // \\newcommand{\\negmedspace}{\\tmspace-\\medmuskip{.2222em}}\n// TODO: math mode should use \\medmuskip\n\ndefineMacro(\"\\\\negmedspace\", \"\\\\tmspace-{4mu}{.2222em}\"); // \\newcommand{\\negthickspace}{\\tmspace-\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip\n\ndefineMacro(\"\\\\negthickspace\", \"\\\\tmspace-{5mu}{.277em}\"); // \\def\\enspace{\\kern.5em }\n\ndefineMacro(\"\\\\enspace\", \"\\\\kern.5em \"); // \\def\\enskip{\\hskip.5em\\relax}\n\ndefineMacro(\"\\\\enskip\", \"\\\\hskip.5em\\\\relax\"); // \\def\\quad{\\hskip1em\\relax}\n\ndefineMacro(\"\\\\quad\", \"\\\\hskip1em\\\\relax\"); // \\def\\qquad{\\hskip2em\\relax}\n\ndefineMacro(\"\\\\qquad\", \"\\\\hskip2em\\\\relax\"); // \\tag@in@display form of \\tag\n\ndefineMacro(\"\\\\tag\", \"\\\\@ifstar\\\\tag@literal\\\\tag@paren\");\ndefineMacro(\"\\\\tag@paren\", \"\\\\tag@literal{({#1})}\");\ndefineMacro(\"\\\\tag@literal\", function (context) {\n if (context.macros.get(\"\\\\df@tag\")) {\n throw new src_ParseError(\"Multiple \\\\tag\");\n }\n\n return \"\\\\gdef\\\\df@tag{\\\\text{#1}}\";\n}); // \\renewcommand{\\bmod}{\\nonscript\\mskip-\\medmuskip\\mkern5mu\\mathbin\n// {\\operator@font mod}\\penalty900\n// \\mkern5mu\\nonscript\\mskip-\\medmuskip}\n// \\newcommand{\\pod}[1]{\\allowbreak\n// \\if@display\\mkern18mu\\else\\mkern8mu\\fi(#1)}\n// \\renewcommand{\\pmod}[1]{\\pod{{\\operator@font mod}\\mkern6mu#1}}\n// \\newcommand{\\mod}[1]{\\allowbreak\\if@display\\mkern18mu\n// \\else\\mkern12mu\\fi{\\operator@font mod}\\,\\,#1}\n// TODO: math mode should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\bmod\", \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\" + \"\\\\mathbin{\\\\rm mod}\" + \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\");\ndefineMacro(\"\\\\pod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern8mu}{\\\\mkern8mu}{\\\\mkern8mu}(#1)\");\ndefineMacro(\"\\\\pmod\", \"\\\\pod{{\\\\rm mod}\\\\mkern6mu#1}\");\ndefineMacro(\"\\\\mod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\mkern12mu}\" + \"{\\\\rm mod}\\\\,\\\\,#1\"); // \\pmb -- A simulation of bold.\n// The version in ambsy.sty works by typesetting three copies of the argument\n// with small offsets. We use two copies. We omit the vertical offset because\n// of rendering problems that makeVList encounters in Safari.\n\ndefineMacro(\"\\\\pmb\", \"\\\\html@mathml{\" + \"\\\\@binrel{#1}{\\\\mathrlap{#1}\\\\kern0.5px#1}}\" + \"{\\\\mathbf{#1}}\"); //////////////////////////////////////////////////////////////////////\n// LaTeX source2e\n// \\expandafter\\let\\expandafter\\@normalcr\n// \\csname\\expandafter\\@gobble\\string\\\\ \\endcsname\n// \\DeclareRobustCommand\\newline{\\@normalcr\\relax}\n\ndefineMacro(\"\\\\newline\", \"\\\\\\\\\\\\relax\"); // \\def\\TeX{T\\kern-.1667em\\lower.5ex\\hbox{E}\\kern-.125emX\\@}\n// TODO: Doesn't normally work in math mode because \\@ fails. KaTeX doesn't\n// support \\@ yet, so that's omitted, and we add \\text so that the result\n// doesn't look funny in math mode.\n\ndefineMacro(\"\\\\TeX\", \"\\\\textrm{\\\\html@mathml{\" + \"T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX\" + \"}{TeX}}\"); // \\DeclareRobustCommand{\\LaTeX}{L\\kern-.36em%\n// {\\sbox\\z@ T%\n// \\vbox to\\ht\\z@{\\hbox{\\check@mathfonts\n// \\fontsize\\sf@size\\z@\n// \\math@fontsfalse\\selectfont\n// A}%\n// \\vss}%\n// }%\n// \\kern-.15em%\n// \\TeX}\n// This code aligns the top of the A with the T (from the perspective of TeX's\n// boxes, though visually the A appears to extend above slightly).\n// We compute the corresponding \\raisebox when A is rendered in \\normalsize\n// \\scriptstyle, which has a scale factor of 0.7 (see Options.js).\n\nvar latexRaiseA = fontMetricsData[\"Main-Regular\"][\"T\".charCodeAt(0)][1] - 0.7 * fontMetricsData[\"Main-Regular\"][\"A\".charCodeAt(0)][1] + \"em\";\ndefineMacro(\"\\\\LaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"L\\\\kern-.36em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{LaTeX}}\"); // New KaTeX logo based on tweaking LaTeX logo\n\ndefineMacro(\"\\\\KaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"K\\\\kern-.17em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{KaTeX}}\"); // \\DeclareRobustCommand\\hspace{\\@ifstar\\@hspacer\\@hspace}\n// \\def\\@hspace#1{\\hskip #1\\relax}\n// \\def\\@hspacer#1{\\vrule \\@width\\z@\\nobreak\n// \\hskip #1\\hskip \\z@skip}\n\ndefineMacro(\"\\\\hspace\", \"\\\\@ifstar\\\\@hspacer\\\\@hspace\");\ndefineMacro(\"\\\\@hspace\", \"\\\\hskip #1\\\\relax\");\ndefineMacro(\"\\\\@hspacer\", \"\\\\rule{0pt}{0pt}\\\\hskip #1\\\\relax\"); //////////////////////////////////////////////////////////////////////\n// mathtools.sty\n//\\providecommand\\ordinarycolon{:}\n\ndefineMacro(\"\\\\ordinarycolon\", \":\"); //\\def\\vcentcolon{\\mathrel{\\mathop\\ordinarycolon}}\n//TODO(edemaine): Not yet centered. Fix via \\raisebox or #726\n\ndefineMacro(\"\\\\vcentcolon\", \"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\"); // \\providecommand*\\dblcolon{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}\n\ndefineMacro(\"\\\\dblcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2237}}\"); // \\providecommand*\\coloneqq{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2254}}\"); // ≔\n// \\providecommand*\\Coloneqq{\\dblcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\Coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"3d}}\"); // \\providecommand*\\coloneq{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2212}}\"); // \\providecommand*\\Coloneq{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\Coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2212}}\"); // \\providecommand*\\eqqcolon{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2255}}\"); // ≕\n// \\providecommand*\\Eqqcolon{=\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"3d\\\\char\\\"2237}}\"); // \\providecommand*\\eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2239}}\"); // \\providecommand*\\Eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"2212\\\\char\\\"2237}}\"); // \\providecommand*\\colonapprox{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2248}}\"); // \\providecommand*\\Colonapprox{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\Colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2248}}\"); // \\providecommand*\\colonsim{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"223c}}\"); // \\providecommand*\\Colonsim{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\Colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"223c}}\"); // Some Unicode characters are implemented with macros to mathtools functions.\n\ndefineMacro(\"\\u2237\", \"\\\\dblcolon\"); // ::\n\ndefineMacro(\"\\u2239\", \"\\\\eqcolon\"); // -:\n\ndefineMacro(\"\\u2254\", \"\\\\coloneqq\"); // :=\n\ndefineMacro(\"\\u2255\", \"\\\\eqqcolon\"); // =:\n\ndefineMacro(\"\\u2A74\", \"\\\\Coloneqq\"); // ::=\n//////////////////////////////////////////////////////////////////////\n// colonequals.sty\n// Alternate names for mathtools's macros:\n\ndefineMacro(\"\\\\ratio\", \"\\\\vcentcolon\");\ndefineMacro(\"\\\\coloncolon\", \"\\\\dblcolon\");\ndefineMacro(\"\\\\colonequals\", \"\\\\coloneqq\");\ndefineMacro(\"\\\\coloncolonequals\", \"\\\\Coloneqq\");\ndefineMacro(\"\\\\equalscolon\", \"\\\\eqqcolon\");\ndefineMacro(\"\\\\equalscoloncolon\", \"\\\\Eqqcolon\");\ndefineMacro(\"\\\\colonminus\", \"\\\\coloneq\");\ndefineMacro(\"\\\\coloncolonminus\", \"\\\\Coloneq\");\ndefineMacro(\"\\\\minuscolon\", \"\\\\eqcolon\");\ndefineMacro(\"\\\\minuscoloncolon\", \"\\\\Eqcolon\"); // \\colonapprox name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonapprox\", \"\\\\Colonapprox\"); // \\colonsim name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonsim\", \"\\\\Colonsim\"); // Additional macros, implemented by analogy with mathtools definitions:\n\ndefineMacro(\"\\\\simcolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\simcoloncolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\");\ndefineMacro(\"\\\\approxcolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\approxcoloncolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"); // Present in newtxmath, pxfonts and txfonts\n\ndefineMacro(\"\\\\notni\", \"\\\\html@mathml{\\\\not\\\\ni}{\\\\mathrel{\\\\char`\\u220C}}\");\ndefineMacro(\"\\\\limsup\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,sup}\");\ndefineMacro(\"\\\\liminf\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,inf}\"); //////////////////////////////////////////////////////////////////////\n// From amsopn.sty\n\ndefineMacro(\"\\\\injlim\", \"\\\\DOTSB\\\\operatorname*{inj\\\\,lim}\");\ndefineMacro(\"\\\\projlim\", \"\\\\DOTSB\\\\operatorname*{proj\\\\,lim}\");\ndefineMacro(\"\\\\varlimsup\", \"\\\\DOTSB\\\\operatorname*{\\\\overline{lim}}\");\ndefineMacro(\"\\\\varliminf\", \"\\\\DOTSB\\\\operatorname*{\\\\underline{lim}}\");\ndefineMacro(\"\\\\varinjlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underrightarrow{lim}}\");\ndefineMacro(\"\\\\varprojlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underleftarrow{lim}}\"); //////////////////////////////////////////////////////////////////////\n// MathML alternates for KaTeX glyphs in the Unicode private area\n\ndefineMacro(\"\\\\gvertneqq\", \"\\\\html@mathml{\\\\@gvertneqq}{\\u2269}\");\ndefineMacro(\"\\\\lvertneqq\", \"\\\\html@mathml{\\\\@lvertneqq}{\\u2268}\");\ndefineMacro(\"\\\\ngeqq\", \"\\\\html@mathml{\\\\@ngeqq}{\\u2271}\");\ndefineMacro(\"\\\\ngeqslant\", \"\\\\html@mathml{\\\\@ngeqslant}{\\u2271}\");\ndefineMacro(\"\\\\nleqq\", \"\\\\html@mathml{\\\\@nleqq}{\\u2270}\");\ndefineMacro(\"\\\\nleqslant\", \"\\\\html@mathml{\\\\@nleqslant}{\\u2270}\");\ndefineMacro(\"\\\\nshortmid\", \"\\\\html@mathml{\\\\@nshortmid}{∤}\");\ndefineMacro(\"\\\\nshortparallel\", \"\\\\html@mathml{\\\\@nshortparallel}{∦}\");\ndefineMacro(\"\\\\nsubseteqq\", \"\\\\html@mathml{\\\\@nsubseteqq}{\\u2288}\");\ndefineMacro(\"\\\\nsupseteqq\", \"\\\\html@mathml{\\\\@nsupseteqq}{\\u2289}\");\ndefineMacro(\"\\\\varsubsetneq\", \"\\\\html@mathml{\\\\@varsubsetneq}{⊊}\");\ndefineMacro(\"\\\\varsubsetneqq\", \"\\\\html@mathml{\\\\@varsubsetneqq}{â«‹}\");\ndefineMacro(\"\\\\varsupsetneq\", \"\\\\html@mathml{\\\\@varsupsetneq}{⊋}\");\ndefineMacro(\"\\\\varsupsetneqq\", \"\\\\html@mathml{\\\\@varsupsetneqq}{⫌}\");\ndefineMacro(\"\\\\imath\", \"\\\\html@mathml{\\\\@imath}{\\u0131}\");\ndefineMacro(\"\\\\jmath\", \"\\\\html@mathml{\\\\@jmath}{\\u0237}\"); //////////////////////////////////////////////////////////////////////\n// stmaryrd and semantic\n// The stmaryrd and semantic packages render the next four items by calling a\n// glyph. Those glyphs do not exist in the KaTeX fonts. Hence the macros.\n\ndefineMacro(\"\\\\llbracket\", \"\\\\html@mathml{\" + \"\\\\mathopen{[\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u27E6}}\");\ndefineMacro(\"\\\\rrbracket\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu]}}\" + \"{\\\\mathclose{\\\\char`\\u27E7}}\");\ndefineMacro(\"\\u27E6\", \"\\\\llbracket\"); // blackboard bold [\n\ndefineMacro(\"\\u27E7\", \"\\\\rrbracket\"); // blackboard bold ]\n\ndefineMacro(\"\\\\lBrace\", \"\\\\html@mathml{\" + \"\\\\mathopen{\\\\{\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u2983}}\");\ndefineMacro(\"\\\\rBrace\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu\\\\}}}\" + \"{\\\\mathclose{\\\\char`\\u2984}}\");\ndefineMacro(\"\\u2983\", \"\\\\lBrace\"); // blackboard bold {\n\ndefineMacro(\"\\u2984\", \"\\\\rBrace\"); // blackboard bold }\n// TODO: Create variable sized versions of the last two items. I believe that\n// will require new font glyphs.\n// The stmaryrd function `\\minuso` provides a \"Plimsoll\" symbol that\n// superimposes the characters \\circ and \\mathminus. Used in chemistry.\n\ndefineMacro(\"\\\\minuso\", \"\\\\mathbin{\\\\html@mathml{\" + \"{\\\\mathrlap{\\\\mathchoice{\\\\kern{0.145em}}{\\\\kern{0.145em}}\" + \"{\\\\kern{0.1015em}}{\\\\kern{0.0725em}}\\\\circ}{-}}}\" + \"{\\\\char`⦵}}\");\ndefineMacro(\"⦵\", \"\\\\minuso\"); //////////////////////////////////////////////////////////////////////\n// texvc.sty\n// The texvc package contains macros available in mediawiki pages.\n// We omit the functions deprecated at\n// https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Deprecated_syntax\n// We also omit texvc's \\O, which conflicts with \\text{\\O}\n\ndefineMacro(\"\\\\darr\", \"\\\\downarrow\");\ndefineMacro(\"\\\\dArr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\Darr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\lang\", \"\\\\langle\");\ndefineMacro(\"\\\\rang\", \"\\\\rangle\");\ndefineMacro(\"\\\\uarr\", \"\\\\uparrow\");\ndefineMacro(\"\\\\uArr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\Uarr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\N\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\R\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Z\", \"\\\\mathbb{Z}\");\ndefineMacro(\"\\\\alef\", \"\\\\aleph\");\ndefineMacro(\"\\\\alefsym\", \"\\\\aleph\");\ndefineMacro(\"\\\\Alpha\", \"\\\\mathrm{A}\");\ndefineMacro(\"\\\\Beta\", \"\\\\mathrm{B}\");\ndefineMacro(\"\\\\bull\", \"\\\\bullet\");\ndefineMacro(\"\\\\Chi\", \"\\\\mathrm{X}\");\ndefineMacro(\"\\\\clubs\", \"\\\\clubsuit\");\ndefineMacro(\"\\\\cnums\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Complex\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Dagger\", \"\\\\ddagger\");\ndefineMacro(\"\\\\diamonds\", \"\\\\diamondsuit\");\ndefineMacro(\"\\\\empty\", \"\\\\emptyset\");\ndefineMacro(\"\\\\Epsilon\", \"\\\\mathrm{E}\");\ndefineMacro(\"\\\\Eta\", \"\\\\mathrm{H}\");\ndefineMacro(\"\\\\exist\", \"\\\\exists\");\ndefineMacro(\"\\\\harr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\hArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Harr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\hearts\", \"\\\\heartsuit\");\ndefineMacro(\"\\\\image\", \"\\\\Im\");\ndefineMacro(\"\\\\infin\", \"\\\\infty\");\ndefineMacro(\"\\\\Iota\", \"\\\\mathrm{I}\");\ndefineMacro(\"\\\\isin\", \"\\\\in\");\ndefineMacro(\"\\\\Kappa\", \"\\\\mathrm{K}\");\ndefineMacro(\"\\\\larr\", \"\\\\leftarrow\");\ndefineMacro(\"\\\\lArr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\Larr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\lrarr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\lrArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Lrarr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Mu\", \"\\\\mathrm{M}\");\ndefineMacro(\"\\\\natnums\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\Nu\", \"\\\\mathrm{N}\");\ndefineMacro(\"\\\\Omicron\", \"\\\\mathrm{O}\");\ndefineMacro(\"\\\\plusmn\", \"\\\\pm\");\ndefineMacro(\"\\\\rarr\", \"\\\\rightarrow\");\ndefineMacro(\"\\\\rArr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\Rarr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\real\", \"\\\\Re\");\ndefineMacro(\"\\\\reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Rho\", \"\\\\mathrm{P}\");\ndefineMacro(\"\\\\sdot\", \"\\\\cdot\");\ndefineMacro(\"\\\\sect\", \"\\\\S\");\ndefineMacro(\"\\\\spades\", \"\\\\spadesuit\");\ndefineMacro(\"\\\\sub\", \"\\\\subset\");\ndefineMacro(\"\\\\sube\", \"\\\\subseteq\");\ndefineMacro(\"\\\\supe\", \"\\\\supseteq\");\ndefineMacro(\"\\\\Tau\", \"\\\\mathrm{T}\");\ndefineMacro(\"\\\\thetasym\", \"\\\\vartheta\"); // TODO: defineMacro(\"\\\\varcoppa\", \"\\\\\\mbox{\\\\coppa}\");\n\ndefineMacro(\"\\\\weierp\", \"\\\\wp\");\ndefineMacro(\"\\\\Zeta\", \"\\\\mathrm{Z}\"); //////////////////////////////////////////////////////////////////////\n// statmath.sty\n// https://ctan.math.illinois.edu/macros/latex/contrib/statmath/statmath.pdf\n\ndefineMacro(\"\\\\argmin\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,min}\");\ndefineMacro(\"\\\\argmax\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,max}\");\ndefineMacro(\"\\\\plim\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{plim}}\\\\limits\"); //////////////////////////////////////////////////////////////////////\n// braket.sty\n// http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/braket/braket.pdf\n\ndefineMacro(\"\\\\bra\", \"\\\\mathinner{\\\\langle{#1}|}\");\ndefineMacro(\"\\\\ket\", \"\\\\mathinner{|{#1}\\\\rangle}\");\ndefineMacro(\"\\\\braket\", \"\\\\mathinner{\\\\langle{#1}\\\\rangle}\");\ndefineMacro(\"\\\\Bra\", \"\\\\left\\\\langle#1\\\\right|\");\ndefineMacro(\"\\\\Ket\", \"\\\\left|#1\\\\right\\\\rangle\"); //////////////////////////////////////////////////////////////////////\n// actuarialangle.dtx\n\ndefineMacro(\"\\\\angln\", \"{\\\\angl n}\"); // Custom Khan Academy colors, should be moved to an optional package\n\ndefineMacro(\"\\\\blue\", \"\\\\textcolor{##6495ed}{#1}\");\ndefineMacro(\"\\\\orange\", \"\\\\textcolor{##ffa500}{#1}\");\ndefineMacro(\"\\\\pink\", \"\\\\textcolor{##ff00af}{#1}\");\ndefineMacro(\"\\\\red\", \"\\\\textcolor{##df0030}{#1}\");\ndefineMacro(\"\\\\green\", \"\\\\textcolor{##28ae7b}{#1}\");\ndefineMacro(\"\\\\gray\", \"\\\\textcolor{gray}{#1}\");\ndefineMacro(\"\\\\purple\", \"\\\\textcolor{##9d38bd}{#1}\");\ndefineMacro(\"\\\\blueA\", \"\\\\textcolor{##ccfaff}{#1}\");\ndefineMacro(\"\\\\blueB\", \"\\\\textcolor{##80f6ff}{#1}\");\ndefineMacro(\"\\\\blueC\", \"\\\\textcolor{##63d9ea}{#1}\");\ndefineMacro(\"\\\\blueD\", \"\\\\textcolor{##11accd}{#1}\");\ndefineMacro(\"\\\\blueE\", \"\\\\textcolor{##0c7f99}{#1}\");\ndefineMacro(\"\\\\tealA\", \"\\\\textcolor{##94fff5}{#1}\");\ndefineMacro(\"\\\\tealB\", \"\\\\textcolor{##26edd5}{#1}\");\ndefineMacro(\"\\\\tealC\", \"\\\\textcolor{##01d1c1}{#1}\");\ndefineMacro(\"\\\\tealD\", \"\\\\textcolor{##01a995}{#1}\");\ndefineMacro(\"\\\\tealE\", \"\\\\textcolor{##208170}{#1}\");\ndefineMacro(\"\\\\greenA\", \"\\\\textcolor{##b6ffb0}{#1}\");\ndefineMacro(\"\\\\greenB\", \"\\\\textcolor{##8af281}{#1}\");\ndefineMacro(\"\\\\greenC\", \"\\\\textcolor{##74cf70}{#1}\");\ndefineMacro(\"\\\\greenD\", \"\\\\textcolor{##1fab54}{#1}\");\ndefineMacro(\"\\\\greenE\", \"\\\\textcolor{##0d923f}{#1}\");\ndefineMacro(\"\\\\goldA\", \"\\\\textcolor{##ffd0a9}{#1}\");\ndefineMacro(\"\\\\goldB\", \"\\\\textcolor{##ffbb71}{#1}\");\ndefineMacro(\"\\\\goldC\", \"\\\\textcolor{##ff9c39}{#1}\");\ndefineMacro(\"\\\\goldD\", \"\\\\textcolor{##e07d10}{#1}\");\ndefineMacro(\"\\\\goldE\", \"\\\\textcolor{##a75a05}{#1}\");\ndefineMacro(\"\\\\redA\", \"\\\\textcolor{##fca9a9}{#1}\");\ndefineMacro(\"\\\\redB\", \"\\\\textcolor{##ff8482}{#1}\");\ndefineMacro(\"\\\\redC\", \"\\\\textcolor{##f9685d}{#1}\");\ndefineMacro(\"\\\\redD\", \"\\\\textcolor{##e84d39}{#1}\");\ndefineMacro(\"\\\\redE\", \"\\\\textcolor{##bc2612}{#1}\");\ndefineMacro(\"\\\\maroonA\", \"\\\\textcolor{##ffbde0}{#1}\");\ndefineMacro(\"\\\\maroonB\", \"\\\\textcolor{##ff92c6}{#1}\");\ndefineMacro(\"\\\\maroonC\", \"\\\\textcolor{##ed5fa6}{#1}\");\ndefineMacro(\"\\\\maroonD\", \"\\\\textcolor{##ca337c}{#1}\");\ndefineMacro(\"\\\\maroonE\", \"\\\\textcolor{##9e034e}{#1}\");\ndefineMacro(\"\\\\purpleA\", \"\\\\textcolor{##ddd7ff}{#1}\");\ndefineMacro(\"\\\\purpleB\", \"\\\\textcolor{##c6b9fc}{#1}\");\ndefineMacro(\"\\\\purpleC\", \"\\\\textcolor{##aa87ff}{#1}\");\ndefineMacro(\"\\\\purpleD\", \"\\\\textcolor{##7854ab}{#1}\");\ndefineMacro(\"\\\\purpleE\", \"\\\\textcolor{##543b78}{#1}\");\ndefineMacro(\"\\\\mintA\", \"\\\\textcolor{##f5f9e8}{#1}\");\ndefineMacro(\"\\\\mintB\", \"\\\\textcolor{##edf2df}{#1}\");\ndefineMacro(\"\\\\mintC\", \"\\\\textcolor{##e0e5cc}{#1}\");\ndefineMacro(\"\\\\grayA\", \"\\\\textcolor{##f6f7f7}{#1}\");\ndefineMacro(\"\\\\grayB\", \"\\\\textcolor{##f0f1f2}{#1}\");\ndefineMacro(\"\\\\grayC\", \"\\\\textcolor{##e3e5e6}{#1}\");\ndefineMacro(\"\\\\grayD\", \"\\\\textcolor{##d6d8da}{#1}\");\ndefineMacro(\"\\\\grayE\", \"\\\\textcolor{##babec2}{#1}\");\ndefineMacro(\"\\\\grayF\", \"\\\\textcolor{##888d93}{#1}\");\ndefineMacro(\"\\\\grayG\", \"\\\\textcolor{##626569}{#1}\");\ndefineMacro(\"\\\\grayH\", \"\\\\textcolor{##3b3e40}{#1}\");\ndefineMacro(\"\\\\grayI\", \"\\\\textcolor{##21242c}{#1}\");\ndefineMacro(\"\\\\kaBlue\", \"\\\\textcolor{##314453}{#1}\");\ndefineMacro(\"\\\\kaGreen\", \"\\\\textcolor{##71B307}{#1}\");\n;// CONCATENATED MODULE: ./src/MacroExpander.js\n/**\n * This file contains the “gullet†where macros are expanded\n * until only non-macro tokens remain.\n */\n\n\n\n\n\n\n\n// List of commands that act like macros but aren't defined as a macro,\n// function, or symbol. Used in `isDefined`.\nvar implicitCommands = {\n \"\\\\relax\": true,\n // MacroExpander.js\n \"^\": true,\n // Parser.js\n \"_\": true,\n // Parser.js\n \"\\\\limits\": true,\n // Parser.js\n \"\\\\nolimits\": true // Parser.js\n\n};\n\nvar MacroExpander = /*#__PURE__*/function () {\n function MacroExpander(input, settings, mode) {\n this.settings = void 0;\n this.expansionCount = void 0;\n this.lexer = void 0;\n this.macros = void 0;\n this.stack = void 0;\n this.mode = void 0;\n this.settings = settings;\n this.expansionCount = 0;\n this.feed(input); // Make new global namespace\n\n this.macros = new Namespace(src_macros, settings.macros);\n this.mode = mode;\n this.stack = []; // contains tokens in REVERSE order\n }\n /**\n * Feed a new input string to the same MacroExpander\n * (with existing macros etc.).\n */\n\n\n var _proto = MacroExpander.prototype;\n\n _proto.feed = function feed(input) {\n this.lexer = new Lexer(input, this.settings);\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n ;\n\n _proto.switchMode = function switchMode(newMode) {\n this.mode = newMode;\n }\n /**\n * Start a new group nesting within all namespaces.\n */\n ;\n\n _proto.beginGroup = function beginGroup() {\n this.macros.beginGroup();\n }\n /**\n * End current group nesting within all namespaces.\n */\n ;\n\n _proto.endGroup = function endGroup() {\n this.macros.endGroup();\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n ;\n\n _proto.endGroups = function endGroups() {\n this.macros.endGroups();\n }\n /**\n * Returns the topmost token on the stack, without expanding it.\n * Similar in behavior to TeX's `\\futurelet`.\n */\n ;\n\n _proto.future = function future() {\n if (this.stack.length === 0) {\n this.pushToken(this.lexer.lex());\n }\n\n return this.stack[this.stack.length - 1];\n }\n /**\n * Remove and return the next unexpanded token.\n */\n ;\n\n _proto.popToken = function popToken() {\n this.future(); // ensure non-empty stack\n\n return this.stack.pop();\n }\n /**\n * Add a given token to the token stack. In particular, this get be used\n * to put back a token returned from one of the other methods.\n */\n ;\n\n _proto.pushToken = function pushToken(token) {\n this.stack.push(token);\n }\n /**\n * Append an array of tokens to the token stack.\n */\n ;\n\n _proto.pushTokens = function pushTokens(tokens) {\n var _this$stack;\n\n (_this$stack = this.stack).push.apply(_this$stack, tokens);\n }\n /**\n * Find an macro argument without expanding tokens and append the array of\n * tokens to the token stack. Uses Token as a container for the result.\n */\n ;\n\n _proto.scanArgument = function scanArgument(isOptional) {\n var start;\n var end;\n var tokens;\n\n if (isOptional) {\n this.consumeSpaces(); // \\@ifnextchar gobbles any space following it\n\n if (this.future().text !== \"[\") {\n return null;\n }\n\n start = this.popToken(); // don't include [ in tokens\n\n var _this$consumeArg = this.consumeArg([\"]\"]);\n\n tokens = _this$consumeArg.tokens;\n end = _this$consumeArg.end;\n } else {\n var _this$consumeArg2 = this.consumeArg();\n\n tokens = _this$consumeArg2.tokens;\n start = _this$consumeArg2.start;\n end = _this$consumeArg2.end;\n } // indicate the end of an argument\n\n\n this.pushToken(new Token(\"EOF\", end.loc));\n this.pushTokens(tokens);\n return start.range(end, \"\");\n }\n /**\n * Consume all following space tokens, without expansion.\n */\n ;\n\n _proto.consumeSpaces = function consumeSpaces() {\n for (;;) {\n var token = this.future();\n\n if (token.text === \" \") {\n this.stack.pop();\n } else {\n break;\n }\n }\n }\n /**\n * Consume an argument from the token stream, and return the resulting array\n * of tokens and start/end token.\n */\n ;\n\n _proto.consumeArg = function consumeArg(delims) {\n // The argument for a delimited parameter is the shortest (possibly\n // empty) sequence of tokens with properly nested {...} groups that is\n // followed ... by this particular list of non-parameter tokens.\n // The argument for an undelimited parameter is the next nonblank\n // token, unless that token is ‘{’, when the argument will be the\n // entire {...} group that follows.\n var tokens = [];\n var isDelimited = delims && delims.length > 0;\n\n if (!isDelimited) {\n // Ignore spaces between arguments. As the TeXbook says:\n // \"After you have said ‘\\def\\row#1#2{...}’, you are allowed to\n // put spaces between the arguments (e.g., ‘\\row x n’), because\n // TeX doesn’t use single spaces as undelimited arguments.\"\n this.consumeSpaces();\n }\n\n var start = this.future();\n var tok;\n var depth = 0;\n var match = 0;\n\n do {\n tok = this.popToken();\n tokens.push(tok);\n\n if (tok.text === \"{\") {\n ++depth;\n } else if (tok.text === \"}\") {\n --depth;\n\n if (depth === -1) {\n throw new src_ParseError(\"Extra }\", tok);\n }\n } else if (tok.text === \"EOF\") {\n throw new src_ParseError(\"Unexpected end of input in a macro argument\" + \", expected '\" + (delims && isDelimited ? delims[match] : \"}\") + \"'\", tok);\n }\n\n if (delims && isDelimited) {\n if ((depth === 0 || depth === 1 && delims[match] === \"{\") && tok.text === delims[match]) {\n ++match;\n\n if (match === delims.length) {\n // don't include delims in tokens\n tokens.splice(-match, match);\n break;\n }\n } else {\n match = 0;\n }\n }\n } while (depth !== 0 || isDelimited); // If the argument found ... has the form ‘{<nested tokens>}’,\n // ... the outermost braces enclosing the argument are removed\n\n\n if (start.text === \"{\" && tokens[tokens.length - 1].text === \"}\") {\n tokens.pop();\n tokens.shift();\n }\n\n tokens.reverse(); // to fit in with stack order\n\n return {\n tokens: tokens,\n start: start,\n end: tok\n };\n }\n /**\n * Consume the specified number of (delimited) arguments from the token\n * stream and return the resulting array of arguments.\n */\n ;\n\n _proto.consumeArgs = function consumeArgs(numArgs, delimiters) {\n if (delimiters) {\n if (delimiters.length !== numArgs + 1) {\n throw new src_ParseError(\"The length of delimiters doesn't match the number of args!\");\n }\n\n var delims = delimiters[0];\n\n for (var i = 0; i < delims.length; i++) {\n var tok = this.popToken();\n\n if (delims[i] !== tok.text) {\n throw new src_ParseError(\"Use of the macro doesn't match its definition\", tok);\n }\n }\n }\n\n var args = [];\n\n for (var _i = 0; _i < numArgs; _i++) {\n args.push(this.consumeArg(delimiters && delimiters[_i + 1]).tokens);\n }\n\n return args;\n }\n /**\n * Expand the next token only once if possible.\n *\n * If the token is expanded, the resulting tokens will be pushed onto\n * the stack in reverse order and will be returned as an array,\n * also in reverse order.\n *\n * If not, the next token will be returned without removing it\n * from the stack. This case can be detected by a `Token` return value\n * instead of an `Array` return value.\n *\n * In either case, the next token will be on the top of the stack,\n * or the stack will be empty.\n *\n * Used to implement `expandAfterFuture` and `expandNextToken`.\n *\n * If expandableOnly, only expandable tokens are expanded and\n * an undefined control sequence results in an error.\n */\n ;\n\n _proto.expandOnce = function expandOnce(expandableOnly) {\n var topToken = this.popToken();\n var name = topToken.text;\n var expansion = !topToken.noexpand ? this._getExpansion(name) : null;\n\n if (expansion == null || expandableOnly && expansion.unexpandable) {\n if (expandableOnly && expansion == null && name[0] === \"\\\\\" && !this.isDefined(name)) {\n throw new src_ParseError(\"Undefined control sequence: \" + name);\n }\n\n this.pushToken(topToken);\n return topToken;\n }\n\n this.expansionCount++;\n\n if (this.expansionCount > this.settings.maxExpand) {\n throw new src_ParseError(\"Too many expansions: infinite loop or \" + \"need to increase maxExpand setting\");\n }\n\n var tokens = expansion.tokens;\n var args = this.consumeArgs(expansion.numArgs, expansion.delimiters);\n\n if (expansion.numArgs) {\n // paste arguments in place of the placeholders\n tokens = tokens.slice(); // make a shallow copy\n\n for (var i = tokens.length - 1; i >= 0; --i) {\n var tok = tokens[i];\n\n if (tok.text === \"#\") {\n if (i === 0) {\n throw new src_ParseError(\"Incomplete placeholder at end of macro body\", tok);\n }\n\n tok = tokens[--i]; // next token on stack\n\n if (tok.text === \"#\") {\n // ## → #\n tokens.splice(i + 1, 1); // drop first #\n } else if (/^[1-9]$/.test(tok.text)) {\n var _tokens;\n\n // replace the placeholder with the indicated argument\n (_tokens = tokens).splice.apply(_tokens, [i, 2].concat(args[+tok.text - 1]));\n } else {\n throw new src_ParseError(\"Not a valid argument number\", tok);\n }\n }\n }\n } // Concatenate expansion onto top of stack.\n\n\n this.pushTokens(tokens);\n return tokens;\n }\n /**\n * Expand the next token only once (if possible), and return the resulting\n * top token on the stack (without removing anything from the stack).\n * Similar in behavior to TeX's `\\expandafter\\futurelet`.\n * Equivalent to expandOnce() followed by future().\n */\n ;\n\n _proto.expandAfterFuture = function expandAfterFuture() {\n this.expandOnce();\n return this.future();\n }\n /**\n * Recursively expand first token, then return first non-expandable token.\n */\n ;\n\n _proto.expandNextToken = function expandNextToken() {\n for (;;) {\n var expanded = this.expandOnce(); // expandOnce returns Token if and only if it's fully expanded.\n\n if (expanded instanceof Token) {\n // \\relax stops the expansion, but shouldn't get returned (a\n // null return value couldn't get implemented as a function).\n // the token after \\noexpand is interpreted as if its meaning\n // were ‘\\relax’\n if (expanded.text === \"\\\\relax\" || expanded.treatAsRelax) {\n this.stack.pop();\n } else {\n return this.stack.pop(); // === expanded\n }\n }\n } // Flow unable to figure out that this pathway is impossible.\n // https://github.com/facebook/flow/issues/4808\n\n\n throw new Error(); // eslint-disable-line no-unreachable\n }\n /**\n * Fully expand the given macro name and return the resulting list of\n * tokens, or return `undefined` if no such macro is defined.\n */\n ;\n\n _proto.expandMacro = function expandMacro(name) {\n return this.macros.has(name) ? this.expandTokens([new Token(name)]) : undefined;\n }\n /**\n * Fully expand the given token stream and return the resulting list of tokens\n */\n ;\n\n _proto.expandTokens = function expandTokens(tokens) {\n var output = [];\n var oldStackLength = this.stack.length;\n this.pushTokens(tokens);\n\n while (this.stack.length > oldStackLength) {\n var expanded = this.expandOnce(true); // expand only expandable tokens\n // expandOnce returns Token if and only if it's fully expanded.\n\n if (expanded instanceof Token) {\n if (expanded.treatAsRelax) {\n // the expansion of \\noexpand is the token itself\n expanded.noexpand = false;\n expanded.treatAsRelax = false;\n }\n\n output.push(this.stack.pop());\n }\n }\n\n return output;\n }\n /**\n * Fully expand the given macro name and return the result as a string,\n * or return `undefined` if no such macro is defined.\n */\n ;\n\n _proto.expandMacroAsText = function expandMacroAsText(name) {\n var tokens = this.expandMacro(name);\n\n if (tokens) {\n return tokens.map(function (token) {\n return token.text;\n }).join(\"\");\n } else {\n return tokens;\n }\n }\n /**\n * Returns the expanded macro as a reversed array of tokens and a macro\n * argument count. Or returns `null` if no such macro.\n */\n ;\n\n _proto._getExpansion = function _getExpansion(name) {\n var definition = this.macros.get(name);\n\n if (definition == null) {\n // mainly checking for undefined here\n return definition;\n } // If a single character has an associated catcode other than 13\n // (active character), then don't expand it.\n\n\n if (name.length === 1) {\n var catcode = this.lexer.catcodes[name];\n\n if (catcode != null && catcode !== 13) {\n return;\n }\n }\n\n var expansion = typeof definition === \"function\" ? definition(this) : definition;\n\n if (typeof expansion === \"string\") {\n var numArgs = 0;\n\n if (expansion.indexOf(\"#\") !== -1) {\n var stripped = expansion.replace(/##/g, \"\");\n\n while (stripped.indexOf(\"#\" + (numArgs + 1)) !== -1) {\n ++numArgs;\n }\n }\n\n var bodyLexer = new Lexer(expansion, this.settings);\n var tokens = [];\n var tok = bodyLexer.lex();\n\n while (tok.text !== \"EOF\") {\n tokens.push(tok);\n tok = bodyLexer.lex();\n }\n\n tokens.reverse(); // to fit in with stack using push and pop\n\n var expanded = {\n tokens: tokens,\n numArgs: numArgs\n };\n return expanded;\n }\n\n return expansion;\n }\n /**\n * Determine whether a command is currently \"defined\" (has some\n * functionality), meaning that it's a macro (in the current group),\n * a function, a symbol, or one of the special commands listed in\n * `implicitCommands`.\n */\n ;\n\n _proto.isDefined = function isDefined(name) {\n return this.macros.has(name) || src_functions.hasOwnProperty(name) || src_symbols.math.hasOwnProperty(name) || src_symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);\n }\n /**\n * Determine whether a command is expandable.\n */\n ;\n\n _proto.isExpandable = function isExpandable(name) {\n var macro = this.macros.get(name);\n return macro != null ? typeof macro === \"string\" || typeof macro === \"function\" || !macro.unexpandable : src_functions.hasOwnProperty(name) && !src_functions[name].primitive;\n };\n\n return MacroExpander;\n}();\n\n\n;// CONCATENATED MODULE: ./src/Parser.js\n/* eslint no-constant-condition:0 */\n\n\n\n\n\n\n\n\n\n // Pre-evaluate both modules as unicodeSymbols require String.normalize()\n\nvar unicodeAccents = {\n \"Ì\": {\n \"text\": \"\\\\'\",\n \"math\": \"\\\\acute\"\n },\n \"Ì€\": {\n \"text\": \"\\\\`\",\n \"math\": \"\\\\grave\"\n },\n \"̈\": {\n \"text\": \"\\\\\\\"\",\n \"math\": \"\\\\ddot\"\n },\n \"̃\": {\n \"text\": \"\\\\~\",\n \"math\": \"\\\\tilde\"\n },\n \"Ì„\": {\n \"text\": \"\\\\=\",\n \"math\": \"\\\\bar\"\n },\n \"̆\": {\n \"text\": \"\\\\u\",\n \"math\": \"\\\\breve\"\n },\n \"ÌŒ\": {\n \"text\": \"\\\\v\",\n \"math\": \"\\\\check\"\n },\n \"Ì‚\": {\n \"text\": \"\\\\^\",\n \"math\": \"\\\\hat\"\n },\n \"̇\": {\n \"text\": \"\\\\.\",\n \"math\": \"\\\\dot\"\n },\n \"ÌŠ\": {\n \"text\": \"\\\\r\",\n \"math\": \"\\\\mathring\"\n },\n \"Ì‹\": {\n \"text\": \"\\\\H\"\n },\n \"̧\": {\n \"text\": \"\\\\c\"\n }\n};\nvar unicodeSymbols = {\n \"á\": \"aÌ\",\n \"à \": \"aÌ€\",\n \"ä\": \"ä\",\n \"ÇŸ\": \"ǟ\",\n \"ã\": \"ã\",\n \"Ä\": \"aÌ„\",\n \"ă\": \"ă\",\n \"ắ\": \"ăÌ\",\n \"ằ\": \"ằ\",\n \"ẵ\": \"ẵ\",\n \"ÇŽ\": \"aÌŒ\",\n \"â\": \"aÌ‚\",\n \"ấ\": \"aÌ‚Ì\",\n \"ầ\": \"ầ\",\n \"ẫ\": \"ẫ\",\n \"ȧ\": \"ȧ\",\n \"Ç¡\": \"ǡ\",\n \"Ã¥\": \"aÌŠ\",\n \"Ç»\": \"aÌŠÌ\",\n \"ḃ\": \"ḃ\",\n \"ć\": \"cÌ\",\n \"ḉ\": \"çÌ\",\n \"Ä\": \"cÌŒ\",\n \"ĉ\": \"cÌ‚\",\n \"Ä‹\": \"ċ\",\n \"ç\": \"ç\",\n \"Ä\": \"dÌŒ\",\n \"ḋ\": \"ḋ\",\n \"ḑ\": \"ḑ\",\n \"é\": \"eÌ\",\n \"è\": \"eÌ€\",\n \"ë\": \"ë\",\n \"ẽ\": \"ẽ\",\n \"Ä“\": \"eÌ„\",\n \"ḗ\": \"eÌ„Ì\",\n \"ḕ\": \"ḕ\",\n \"Ä•\": \"ĕ\",\n \"á¸\": \"ḝ\",\n \"Ä›\": \"eÌŒ\",\n \"ê\": \"eÌ‚\",\n \"ế\": \"eÌ‚Ì\",\n \"á»\": \"ề\",\n \"á»…\": \"ễ\",\n \"Ä—\": \"ė\",\n \"È©\": \"ȩ\",\n \"ḟ\": \"ḟ\",\n \"ǵ\": \"gÌ\",\n \"ḡ\": \"gÌ„\",\n \"ÄŸ\": \"ğ\",\n \"ǧ\": \"gÌŒ\",\n \"Ä\": \"gÌ‚\",\n \"Ä¡\": \"ġ\",\n \"Ä£\": \"ģ\",\n \"ḧ\": \"ḧ\",\n \"ÈŸ\": \"hÌŒ\",\n \"Ä¥\": \"hÌ‚\",\n \"ḣ\": \"ḣ\",\n \"ḩ\": \"ḩ\",\n \"Ã\": \"iÌ\",\n \"ì\": \"iÌ€\",\n \"ï\": \"ï\",\n \"ḯ\": \"ïÌ\",\n \"Ä©\": \"ĩ\",\n \"Ä«\": \"iÌ„\",\n \"Ä\": \"ĭ\",\n \"Ç\": \"iÌŒ\",\n \"î\": \"iÌ‚\",\n \"ǰ\": \"jÌŒ\",\n \"ĵ\": \"jÌ‚\",\n \"ḱ\": \"kÌ\",\n \"Ç©\": \"kÌŒ\",\n \"Ä·\": \"ķ\",\n \"ĺ\": \"lÌ\",\n \"ľ\": \"lÌŒ\",\n \"ļ\": \"ļ\",\n \"ḿ\": \"mÌ\",\n \"á¹\": \"ṁ\",\n \"Å„\": \"nÌ\",\n \"ǹ\": \"nÌ€\",\n \"ñ\": \"ñ\",\n \"ň\": \"nÌŒ\",\n \"á¹…\": \"ṅ\",\n \"ņ\": \"ņ\",\n \"ó\": \"oÌ\",\n \"ò\": \"oÌ€\",\n \"ö\": \"ö\",\n \"È«\": \"ȫ\",\n \"õ\": \"õ\",\n \"á¹\": \"õÌ\",\n \"á¹\": \"ṏ\",\n \"È\": \"ȭ\",\n \"Å\": \"oÌ„\",\n \"ṓ\": \"oÌ„Ì\",\n \"ṑ\": \"ṑ\",\n \"Å\": \"ŏ\",\n \"Ç’\": \"oÌŒ\",\n \"ô\": \"oÌ‚\",\n \"ố\": \"oÌ‚Ì\",\n \"ồ\": \"ồ\",\n \"á»—\": \"ỗ\",\n \"ȯ\": \"ȯ\",\n \"ȱ\": \"ȱ\",\n \"Å‘\": \"oÌ‹\",\n \"ṕ\": \"pÌ\",\n \"á¹—\": \"ṗ\",\n \"Å•\": \"rÌ\",\n \"Å™\": \"rÌŒ\",\n \"á¹™\": \"ṙ\",\n \"Å—\": \"ŗ\",\n \"Å›\": \"sÌ\",\n \"á¹¥\": \"sÌ̇\",\n \"Å¡\": \"sÌŒ\",\n \"á¹§\": \"ṧ\",\n \"Å\": \"sÌ‚\",\n \"ṡ\": \"ṡ\",\n \"ÅŸ\": \"ş\",\n \"ẗ\": \"ẗ\",\n \"Å¥\": \"tÌŒ\",\n \"ṫ\": \"ṫ\",\n \"Å£\": \"ţ\",\n \"ú\": \"uÌ\",\n \"ù\": \"uÌ€\",\n \"ü\": \"ü\",\n \"ǘ\": \"üÌ\",\n \"Çœ\": \"ǜ\",\n \"Ç–\": \"ǖ\",\n \"Çš\": \"ǚ\",\n \"Å©\": \"ũ\",\n \"á¹¹\": \"ũÌ\",\n \"Å«\": \"uÌ„\",\n \"á¹»\": \"ṻ\",\n \"Å\": \"ŭ\",\n \"Ç”\": \"uÌŒ\",\n \"û\": \"uÌ‚\",\n \"ů\": \"uÌŠ\",\n \"ű\": \"uÌ‹\",\n \"á¹½\": \"ṽ\",\n \"ẃ\": \"wÌ\",\n \"áº\": \"wÌ€\",\n \"ẅ\": \"ẅ\",\n \"ŵ\": \"wÌ‚\",\n \"ẇ\": \"ẇ\",\n \"ẘ\": \"wÌŠ\",\n \"áº\": \"ẍ\",\n \"ẋ\": \"ẋ\",\n \"ý\": \"yÌ\",\n \"ỳ\": \"yÌ€\",\n \"ÿ\": \"ÿ\",\n \"ỹ\": \"ỹ\",\n \"ȳ\": \"yÌ„\",\n \"Å·\": \"yÌ‚\",\n \"áº\": \"ẏ\",\n \"ẙ\": \"yÌŠ\",\n \"ź\": \"zÌ\",\n \"ž\": \"zÌŒ\",\n \"ẑ\": \"zÌ‚\",\n \"ż\": \"ż\",\n \"Ã\": \"AÌ\",\n \"À\": \"AÌ€\",\n \"Ä\": \"Ä\",\n \"Çž\": \"Ǟ\",\n \"Ã\": \"Ã\",\n \"Ä€\": \"AÌ„\",\n \"Ä‚\": \"Ă\",\n \"Ắ\": \"ĂÌ\",\n \"Ằ\": \"Ằ\",\n \"Ẵ\": \"Ẵ\",\n \"Ç\": \"AÌŒ\",\n \"Â\": \"AÌ‚\",\n \"Ấ\": \"AÌ‚Ì\",\n \"Ầ\": \"Ầ\",\n \"Ẫ\": \"Ẫ\",\n \"Ȧ\": \"Ȧ\",\n \"Ç \": \"Ǡ\",\n \"Ã…\": \"AÌŠ\",\n \"Ǻ\": \"AÌŠÌ\",\n \"Ḃ\": \"Ḃ\",\n \"Ć\": \"CÌ\",\n \"Ḉ\": \"ÇÌ\",\n \"ÄŒ\": \"CÌŒ\",\n \"Ĉ\": \"CÌ‚\",\n \"ÄŠ\": \"Ċ\",\n \"Ç\": \"Ç\",\n \"ÄŽ\": \"DÌŒ\",\n \"Ḋ\": \"Ḋ\",\n \"á¸\": \"Ḑ\",\n \"É\": \"EÌ\",\n \"È\": \"EÌ€\",\n \"Ë\": \"Ë\",\n \"Ẽ\": \"Ẽ\",\n \"Ä’\": \"EÌ„\",\n \"Ḗ\": \"EÌ„Ì\",\n \"Ḕ\": \"Ḕ\",\n \"Ä”\": \"Ĕ\",\n \"Ḝ\": \"Ḝ\",\n \"Äš\": \"EÌŒ\",\n \"Ê\": \"EÌ‚\",\n \"Ế\": \"EÌ‚Ì\",\n \"Ề\": \"Ề\",\n \"Ễ\": \"Ễ\",\n \"Ä–\": \"Ė\",\n \"Ȩ\": \"Ȩ\",\n \"Ḟ\": \"Ḟ\",\n \"Ç´\": \"GÌ\",\n \"Ḡ\": \"GÌ„\",\n \"Äž\": \"Ğ\",\n \"Ǧ\": \"GÌŒ\",\n \"Äœ\": \"GÌ‚\",\n \"Ä \": \"Ġ\",\n \"Ä¢\": \"Ģ\",\n \"Ḧ\": \"Ḧ\",\n \"Èž\": \"HÌŒ\",\n \"Ĥ\": \"HÌ‚\",\n \"Ḣ\": \"Ḣ\",\n \"Ḩ\": \"Ḩ\",\n \"Ã\": \"IÌ\",\n \"ÃŒ\": \"IÌ€\",\n \"Ã\": \"Ï\",\n \"Ḯ\": \"ÏÌ\",\n \"Ĩ\": \"Ĩ\",\n \"Ī\": \"IÌ„\",\n \"Ĭ\": \"Ĭ\",\n \"Ç\": \"IÌŒ\",\n \"ÃŽ\": \"IÌ‚\",\n \"İ\": \"İ\",\n \"Ä´\": \"JÌ‚\",\n \"Ḱ\": \"KÌ\",\n \"Ǩ\": \"KÌŒ\",\n \"Ķ\": \"Ķ\",\n \"Ĺ\": \"LÌ\",\n \"Ľ\": \"LÌŒ\",\n \"Ä»\": \"Ļ\",\n \"Ḿ\": \"MÌ\",\n \"á¹€\": \"Ṁ\",\n \"Ń\": \"NÌ\",\n \"Ǹ\": \"NÌ€\",\n \"Ñ\": \"Ñ\",\n \"Ň\": \"NÌŒ\",\n \"Ṅ\": \"Ṅ\",\n \"Å…\": \"Ņ\",\n \"Ó\": \"OÌ\",\n \"Ã’\": \"OÌ€\",\n \"Ö\": \"Ö\",\n \"Ȫ\": \"Ȫ\",\n \"Õ\": \"Õ\",\n \"Ṍ\": \"ÕÌ\",\n \"Ṏ\": \"Ṏ\",\n \"Ȭ\": \"Ȭ\",\n \"ÅŒ\": \"OÌ„\",\n \"á¹’\": \"OÌ„Ì\",\n \"á¹\": \"Ṑ\",\n \"ÅŽ\": \"Ŏ\",\n \"Ç‘\": \"OÌŒ\",\n \"Ô\": \"OÌ‚\",\n \"á»\": \"OÌ‚Ì\",\n \"á»’\": \"Ồ\",\n \"á»–\": \"Ỗ\",\n \"È®\": \"Ȯ\",\n \"Ȱ\": \"Ȱ\",\n \"Å\": \"OÌ‹\",\n \"á¹”\": \"PÌ\",\n \"á¹–\": \"Ṗ\",\n \"Å”\": \"RÌ\",\n \"Ř\": \"RÌŒ\",\n \"Ṙ\": \"Ṙ\",\n \"Å–\": \"Ŗ\",\n \"Åš\": \"SÌ\",\n \"Ṥ\": \"SÌ̇\",\n \"Å \": \"SÌŒ\",\n \"Ṧ\": \"Ṧ\",\n \"Åœ\": \"SÌ‚\",\n \"á¹ \": \"Ṡ\",\n \"Åž\": \"Ş\",\n \"Ť\": \"TÌŒ\",\n \"Ṫ\": \"Ṫ\",\n \"Å¢\": \"Ţ\",\n \"Ú\": \"UÌ\",\n \"Ù\": \"UÌ€\",\n \"Ü\": \"Ü\",\n \"Ç—\": \"ÜÌ\",\n \"Ç›\": \"Ǜ\",\n \"Ç•\": \"Ǖ\",\n \"Ç™\": \"Ǚ\",\n \"Ũ\": \"Ũ\",\n \"Ṹ\": \"ŨÌ\",\n \"Ū\": \"UÌ„\",\n \"Ṻ\": \"Ṻ\",\n \"Ŭ\": \"Ŭ\",\n \"Ç“\": \"UÌŒ\",\n \"Û\": \"UÌ‚\",\n \"Å®\": \"UÌŠ\",\n \"Ű\": \"UÌ‹\",\n \"á¹¼\": \"Ṽ\",\n \"Ẃ\": \"WÌ\",\n \"Ẁ\": \"WÌ€\",\n \"Ẅ\": \"Ẅ\",\n \"Å´\": \"WÌ‚\",\n \"Ẇ\": \"Ẇ\",\n \"Ẍ\": \"Ẍ\",\n \"Ẋ\": \"Ẋ\",\n \"Ã\": \"YÌ\",\n \"Ỳ\": \"YÌ€\",\n \"Ÿ\": \"Ÿ\",\n \"Ỹ\": \"Ỹ\",\n \"Ȳ\": \"YÌ„\",\n \"Ŷ\": \"YÌ‚\",\n \"Ẏ\": \"Ẏ\",\n \"Ź\": \"ZÌ\",\n \"Ž\": \"ZÌŒ\",\n \"áº\": \"ZÌ‚\",\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 \"á¿ \": \"ῠ\",\n \"ÏŽ\": \"ωÌ\",\n \"á½¼\": \"ὼ\",\n \"ÎŽ\": \"Î¥Ì\",\n \"Ὺ\": \"Ὺ\",\n \"Ϋ\": \"Ϋ\",\n \"á¿©\": \"Ῡ\",\n \"Ῠ\": \"Ῠ\",\n \"Î\": \"ΩÌ\",\n \"Ὼ\": \"Ὼ\"\n};\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.gullet.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The functions return ParseNodes.\n */\nvar Parser = /*#__PURE__*/function () {\n function Parser(input, settings) {\n this.mode = void 0;\n this.gullet = void 0;\n this.settings = void 0;\n this.leftrightDepth = void 0;\n this.nextToken = void 0;\n // Start in math mode\n this.mode = \"math\"; // Create a new macro expander (gullet) and (indirectly via that) also a\n // new lexer (mouth) for this parser (stomach, in the language of TeX)\n\n this.gullet = new MacroExpander(input, settings, this.mode); // Store the settings for use in parsing\n\n this.settings = settings; // Count leftright depth (for \\middle errors)\n\n this.leftrightDepth = 0;\n }\n /**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.expect = function expect(text, consume) {\n if (consume === void 0) {\n consume = true;\n }\n\n if (this.fetch().text !== text) {\n throw new src_ParseError(\"Expected '\" + text + \"', got '\" + this.fetch().text + \"'\", this.fetch());\n }\n\n if (consume) {\n this.consume();\n }\n }\n /**\n * Discards the current lookahead token, considering it consumed.\n */\n ;\n\n _proto.consume = function consume() {\n this.nextToken = null;\n }\n /**\n * Return the current lookahead token, or if there isn't one (at the\n * beginning, or if the previous lookahead token was consume()d),\n * fetch the next token as the new lookahead token and return it.\n */\n ;\n\n _proto.fetch = function fetch() {\n if (this.nextToken == null) {\n this.nextToken = this.gullet.expandNextToken();\n }\n\n return this.nextToken;\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n ;\n\n _proto.switchMode = function switchMode(newMode) {\n this.mode = newMode;\n this.gullet.switchMode(newMode);\n }\n /**\n * Main parsing function, which parses an entire input.\n */\n ;\n\n _proto.parse = function parse() {\n if (!this.settings.globalGroup) {\n // Create a group namespace for the math expression.\n // (LaTeX creates a new group for every $...$, $$...$$, \\[...\\].)\n this.gullet.beginGroup();\n } // Use old \\color behavior (same as LaTeX's \\textcolor) if requested.\n // We do this within the group for the math expression, so it doesn't\n // pollute settings.macros.\n\n\n if (this.settings.colorIsTextColor) {\n this.gullet.macros.set(\"\\\\color\", \"\\\\textcolor\");\n }\n\n try {\n // Try to parse the input\n var parse = this.parseExpression(false); // If we succeeded, make sure there's an EOF at the end\n\n this.expect(\"EOF\"); // End the group namespace for the expression\n\n if (!this.settings.globalGroup) {\n this.gullet.endGroup();\n }\n\n return parse; // Close any leftover groups in case of a parse error.\n } finally {\n this.gullet.endGroups();\n }\n };\n\n /**\n * Parses an \"expression\", which is a list of atoms.\n *\n * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This\n * happens when functions have higher precendence han infix\n * nodes in implicit parses.\n *\n * `breakOnTokenText`: The text of the token that the expression should end\n * with, or `null` if something else should end the\n * expression.\n */\n _proto.parseExpression = function parseExpression(breakOnInfix, breakOnTokenText) {\n var body = []; // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n\n while (true) {\n // Ignore spaces in math mode\n if (this.mode === \"math\") {\n this.consumeSpaces();\n }\n\n var lex = this.fetch();\n\n if (Parser.endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n\n if (breakOnTokenText && lex.text === breakOnTokenText) {\n break;\n }\n\n if (breakOnInfix && src_functions[lex.text] && src_functions[lex.text].infix) {\n break;\n }\n\n var atom = this.parseAtom(breakOnTokenText);\n\n if (!atom) {\n break;\n } else if (atom.type === \"internal\") {\n continue;\n }\n\n body.push(atom);\n }\n\n if (this.mode === \"text\") {\n this.formLigatures(body);\n }\n\n return this.handleInfixNodes(body);\n }\n /**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n */\n ;\n\n _proto.handleInfixNodes = function handleInfixNodes(body) {\n var overIndex = -1;\n var funcName;\n\n for (var i = 0; i < body.length; i++) {\n if (body[i].type === \"infix\") {\n if (overIndex !== -1) {\n throw new src_ParseError(\"only one infix operator per group\", body[i].token);\n }\n\n overIndex = i;\n funcName = body[i].replaceWith;\n }\n }\n\n if (overIndex !== -1 && funcName) {\n var numerNode;\n var denomNode;\n var numerBody = body.slice(0, overIndex);\n var denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: numerBody\n };\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: denomBody\n };\n }\n\n var node;\n\n if (funcName === \"\\\\\\\\abovefrac\") {\n node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []);\n } else {\n node = this.callFunction(funcName, [numerNode, denomNode], []);\n }\n\n return [node];\n } else {\n return body;\n }\n }\n /**\n * Handle a subscript or superscript with nice errors.\n */\n ;\n\n _proto.handleSupSubscript = function handleSupSubscript(name // For error reporting.\n ) {\n var symbolToken = this.fetch();\n var symbol = symbolToken.text;\n this.consume();\n this.consumeSpaces(); // ignore spaces before sup/subscript argument\n\n var group = this.parseGroup(name);\n\n if (!group) {\n throw new src_ParseError(\"Expected group after '\" + symbol + \"'\", symbolToken);\n }\n\n return group;\n }\n /**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\n ;\n\n _proto.formatUnsupportedCmd = function formatUnsupportedCmd(text) {\n var textordArray = [];\n\n for (var i = 0; i < text.length; i++) {\n textordArray.push({\n type: \"textord\",\n mode: \"text\",\n text: text[i]\n });\n }\n\n var textNode = {\n type: \"text\",\n mode: this.mode,\n body: textordArray\n };\n var colorNode = {\n type: \"color\",\n mode: this.mode,\n color: this.settings.errorColor,\n body: [textNode]\n };\n return colorNode;\n }\n /**\n * Parses a group with optional super/subscripts.\n */\n ;\n\n _proto.parseAtom = function parseAtom(breakOnTokenText) {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n var base = this.parseGroup(\"atom\", breakOnTokenText); // In text mode, we don't have superscripts or subscripts\n\n if (this.mode === \"text\") {\n return base;\n } // Note that base may be empty (i.e. null) at this point.\n\n\n var superscript;\n var subscript;\n\n while (true) {\n // Guaranteed in math mode, so eat any spaces first.\n this.consumeSpaces(); // Lex the first token\n\n var lex = this.fetch();\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (base && base.type === \"op\") {\n var limits = lex.text === \"\\\\limits\";\n base.limits = limits;\n base.alwaysHandleSupSub = true;\n } else if (base && base.type === \"operatorname\") {\n if (base.alwaysHandleSupSub) {\n base.limits = lex.text === \"\\\\limits\";\n }\n } else {\n throw new src_ParseError(\"Limit controls must follow a math operator\", lex);\n }\n\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new src_ParseError(\"Double superscript\", lex);\n }\n\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new src_ParseError(\"Double subscript\", lex);\n }\n\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n if (superscript) {\n throw new src_ParseError(\"Double superscript\", lex);\n }\n\n var prime = {\n type: \"textord\",\n mode: this.mode,\n text: \"\\\\prime\"\n }; // Many primes can be grouped together, so we handle this here\n\n var primes = [prime];\n this.consume(); // Keep lexing tokens until we get something that's not a prime\n\n while (this.fetch().text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n } // If there's a superscript following the primes, combine that\n // superscript in with the primes.\n\n\n if (this.fetch().text === \"^\") {\n primes.push(this.handleSupSubscript(\"superscript\"));\n } // Put everything into an ordgroup as the superscript\n\n\n superscript = {\n type: \"ordgroup\",\n mode: this.mode,\n body: primes\n };\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n } // Base must be set if superscript or subscript are set per logic above,\n // but need to check here for type check to pass.\n\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return {\n type: \"supsub\",\n mode: this.mode,\n base: base,\n sup: superscript,\n sub: subscript\n };\n } else {\n // Otherwise return the original body\n return base;\n }\n }\n /**\n * Parses an entire function, including its base and all of its arguments.\n */\n ;\n\n _proto.parseFunction = function parseFunction(breakOnTokenText, name // For determining its context\n ) {\n var token = this.fetch();\n var func = token.text;\n var funcData = src_functions[func];\n\n if (!funcData) {\n return null;\n }\n\n this.consume(); // consume command token\n\n if (name && name !== \"atom\" && !funcData.allowedInArgument) {\n throw new src_ParseError(\"Got function '\" + func + \"' with no arguments\" + (name ? \" as \" + name : \"\"), token);\n } else if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new src_ParseError(\"Can't use function '\" + func + \"' in text mode\", token);\n } else if (this.mode === \"math\" && funcData.allowedInMath === false) {\n throw new src_ParseError(\"Can't use function '\" + func + \"' in math mode\", token);\n }\n\n var _this$parseArguments = this.parseArguments(func, funcData),\n args = _this$parseArguments.args,\n optArgs = _this$parseArguments.optArgs;\n\n return this.callFunction(func, args, optArgs, token, breakOnTokenText);\n }\n /**\n * Call a function handler with a suitable context and arguments.\n */\n ;\n\n _proto.callFunction = function callFunction(name, args, optArgs, token, breakOnTokenText) {\n var context = {\n funcName: name,\n parser: this,\n token: token,\n breakOnTokenText: breakOnTokenText\n };\n var func = src_functions[name];\n\n if (func && func.handler) {\n return func.handler(context, args, optArgs);\n } else {\n throw new src_ParseError(\"No function handler for \" + name);\n }\n }\n /**\n * Parses the arguments of a function or environment\n */\n ;\n\n _proto.parseArguments = function parseArguments(func, // Should look like \"\\name\" or \"\\begin{name}\".\n funcData) {\n var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n\n if (totalArgs === 0) {\n return {\n args: [],\n optArgs: []\n };\n }\n\n var args = [];\n var optArgs = [];\n\n for (var i = 0; i < totalArgs; i++) {\n var argType = funcData.argTypes && funcData.argTypes[i];\n var isOptional = i < funcData.numOptionalArgs;\n\n if (funcData.primitive && argType == null || funcData.type === \"sqrt\" && i === 1 && optArgs[0] == null) {\n argType = \"primitive\";\n }\n\n var arg = this.parseGroupOfType(\"argument to '\" + func + \"'\", argType, isOptional);\n\n if (isOptional) {\n optArgs.push(arg);\n } else if (arg != null) {\n args.push(arg);\n } else {\n // should be unreachable\n throw new src_ParseError(\"Null argument, please report this as a bug\");\n }\n }\n\n return {\n args: args,\n optArgs: optArgs\n };\n }\n /**\n * Parses a group when the mode is changing.\n */\n ;\n\n _proto.parseGroupOfType = function parseGroupOfType(name, type, optional) {\n switch (type) {\n case \"color\":\n return this.parseColorGroup(optional);\n\n case \"size\":\n return this.parseSizeGroup(optional);\n\n case \"url\":\n return this.parseUrlGroup(optional);\n\n case \"math\":\n case \"text\":\n return this.parseArgumentGroup(optional, type);\n\n case \"hbox\":\n {\n // hbox argument type wraps the argument in the equivalent of\n // \\hbox, which is like \\text but switching to \\textstyle size.\n var group = this.parseArgumentGroup(optional, \"text\");\n return group != null ? {\n type: \"styling\",\n mode: group.mode,\n body: [group],\n style: \"text\" // simulate \\textstyle\n\n } : null;\n }\n\n case \"raw\":\n {\n var token = this.parseStringGroup(\"raw\", optional);\n return token != null ? {\n type: \"raw\",\n mode: \"text\",\n string: token.text\n } : null;\n }\n\n case \"primitive\":\n {\n if (optional) {\n throw new src_ParseError(\"A primitive argument cannot be optional\");\n }\n\n var _group = this.parseGroup(name);\n\n if (_group == null) {\n throw new src_ParseError(\"Expected group as \" + name, this.fetch());\n }\n\n return _group;\n }\n\n case \"original\":\n case null:\n case undefined:\n return this.parseArgumentGroup(optional);\n\n default:\n throw new src_ParseError(\"Unknown group type as \" + name, this.fetch());\n }\n }\n /**\n * Discard any space tokens, fetching the next non-space token.\n */\n ;\n\n _proto.consumeSpaces = function consumeSpaces() {\n while (this.fetch().text === \" \") {\n this.consume();\n }\n }\n /**\n * Parses a group, essentially returning the string formed by the\n * brace-enclosed tokens plus some position information.\n */\n ;\n\n _proto.parseStringGroup = function parseStringGroup(modeName, // Used to describe the mode in error messages.\n optional) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\") {\n str += nextToken.text;\n this.consume();\n }\n\n this.consume(); // consume the end of the argument\n\n argToken.text = str;\n return argToken;\n }\n /**\n * Parses a regex-delimited group: the largest sequence of tokens\n * whose concatenated strings match `regex`. Returns the string\n * formed by the tokens plus some position information.\n */\n ;\n\n _proto.parseRegexGroup = function parseRegexGroup(regex, modeName // Used to describe the mode in error messages.\n ) {\n var firstToken = this.fetch();\n var lastToken = firstToken;\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\" && regex.test(str + nextToken.text)) {\n lastToken = nextToken;\n str += lastToken.text;\n this.consume();\n }\n\n if (str === \"\") {\n throw new src_ParseError(\"Invalid \" + modeName + \": '\" + firstToken.text + \"'\", firstToken);\n }\n\n return firstToken.range(lastToken, str);\n }\n /**\n * Parses a color description.\n */\n ;\n\n _proto.parseColorGroup = function parseColorGroup(optional) {\n var res = this.parseStringGroup(\"color\", optional);\n\n if (res == null) {\n return null;\n }\n\n var match = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);\n\n if (!match) {\n throw new src_ParseError(\"Invalid color: '\" + res.text + \"'\", res);\n }\n\n var color = match[0];\n\n if (/^[0-9a-f]{6}$/i.test(color)) {\n // We allow a 6-digit HTML color spec without a leading \"#\".\n // This follows the xcolor package's HTML color model.\n // Predefined color names are all missed by this RegEx pattern.\n color = \"#\" + color;\n }\n\n return {\n type: \"color-token\",\n mode: this.mode,\n color: color\n };\n }\n /**\n * Parses a size specification, consisting of magnitude and unit.\n */\n ;\n\n _proto.parseSizeGroup = function parseSizeGroup(optional) {\n var res;\n var isBlank = false; // don't expand before parseStringGroup\n\n this.gullet.consumeSpaces();\n\n if (!optional && this.gullet.future().text !== \"{\") {\n res = this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/, \"size\");\n } else {\n res = this.parseStringGroup(\"size\", optional);\n }\n\n if (!res) {\n return null;\n }\n\n if (!optional && res.text.length === 0) {\n // Because we've tested for what is !optional, this block won't\n // affect \\kern, \\hspace, etc. It will capture the mandatory arguments\n // to \\genfrac and \\above.\n res.text = \"0pt\"; // Enable \\above{}\n\n isBlank = true; // This is here specifically for \\genfrac\n }\n\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(res.text);\n\n if (!match) {\n throw new src_ParseError(\"Invalid size: '\" + res.text + \"'\", res);\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new src_ParseError(\"Invalid unit: '\" + data.unit + \"'\", res);\n }\n\n return {\n type: \"size\",\n mode: this.mode,\n value: data,\n isBlank: isBlank\n };\n }\n /**\n * Parses an URL, checking escaped letters and allowed protocols,\n * and setting the catcode of % as an active character (as in \\hyperref).\n */\n ;\n\n _proto.parseUrlGroup = function parseUrlGroup(optional) {\n this.gullet.lexer.setCatcode(\"%\", 13); // active character\n\n this.gullet.lexer.setCatcode(\"~\", 12); // other character\n\n var res = this.parseStringGroup(\"url\", optional);\n this.gullet.lexer.setCatcode(\"%\", 14); // comment character\n\n this.gullet.lexer.setCatcode(\"~\", 13); // active character\n\n if (res == null) {\n return null;\n } // hyperref package allows backslashes alone in href, but doesn't\n // generate valid links in such cases; we interpret this as\n // \"undefined\" behaviour, and keep them as-is. Some browser will\n // replace backslashes with forward slashes.\n\n\n var url = res.text.replace(/\\\\([#$%&~_^{}])/g, '$1');\n return {\n type: \"url\",\n mode: this.mode,\n url: url\n };\n }\n /**\n * Parses an argument with the mode specified.\n */\n ;\n\n _proto.parseArgumentGroup = function parseArgumentGroup(optional, mode) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var outerMode = this.mode;\n\n if (mode) {\n // Switch to specified mode\n this.switchMode(mode);\n }\n\n this.gullet.beginGroup();\n var expression = this.parseExpression(false, \"EOF\"); // TODO: find an alternative way to denote the end\n\n this.expect(\"EOF\"); // expect the end of the argument\n\n this.gullet.endGroup();\n var result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: argToken.loc,\n body: expression\n };\n\n if (mode) {\n // Switch mode back\n this.switchMode(outerMode);\n }\n\n return result;\n }\n /**\n * Parses an ordinary group, which is either a single nucleus (like \"x\")\n * or an expression in braces (like \"{x+y}\") or an implicit group, a group\n * that starts at the current position, and ends right before a higher explicit\n * group ends, or at EOF.\n */\n ;\n\n _proto.parseGroup = function parseGroup(name, // For error reporting.\n breakOnTokenText) {\n var firstToken = this.fetch();\n var text = firstToken.text;\n var result; // Try to parse an open brace or \\begingroup\n\n if (text === \"{\" || text === \"\\\\begingroup\") {\n this.consume();\n var groupEnd = text === \"{\" ? \"}\" : \"\\\\endgroup\";\n this.gullet.beginGroup(); // If we get a brace, parse an expression\n\n var expression = this.parseExpression(false, groupEnd);\n var lastToken = this.fetch();\n this.expect(groupEnd); // Check that we got a matching closing brace\n\n this.gullet.endGroup();\n result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: SourceLocation.range(firstToken, lastToken),\n body: expression,\n // A group formed by \\begingroup...\\endgroup is a semi-simple group\n // which doesn't affect spacing in math mode, i.e., is transparent.\n // https://tex.stackexchange.com/questions/1930/when-should-one-\n // use-begingroup-instead-of-bgroup\n semisimple: text === \"\\\\begingroup\" || undefined\n };\n } else {\n // If there exists a function with this name, parse the function.\n // Otherwise, just return a nucleus\n result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();\n\n if (result == null && text[0] === \"\\\\\" && !implicitCommands.hasOwnProperty(text)) {\n if (this.settings.throwOnError) {\n throw new src_ParseError(\"Undefined control sequence: \" + text, firstToken);\n }\n\n result = this.formatUnsupportedCmd(text);\n this.consume();\n }\n }\n\n return result;\n }\n /**\n * Form ligature-like combinations of characters for text mode.\n * This includes inputs like \"--\", \"---\", \"``\" and \"''\".\n * The result will simply replace multiple textord nodes with a single\n * character in each value by a single textord node having multiple\n * characters in its value. The representation is still ASCII source.\n * The group will be modified in place.\n */\n ;\n\n _proto.formLigatures = function formLigatures(group) {\n var n = group.length - 1;\n\n for (var i = 0; i < n; ++i) {\n var a = group[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n var v = a.text;\n\n if (v === \"-\" && group[i + 1].text === \"-\") {\n if (i + 1 < n && group[i + 2].text === \"-\") {\n group.splice(i, 3, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 2]),\n text: \"---\"\n });\n n -= 2;\n } else {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: \"--\"\n });\n n -= 1;\n }\n }\n\n if ((v === \"'\" || v === \"`\") && group[i + 1].text === v) {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: v + v\n });\n n -= 1;\n }\n }\n }\n /**\n * Parse a single symbol out of the string. Here, we handle single character\n * symbols and special functions like \\verb.\n */\n ;\n\n _proto.parseSymbol = function parseSymbol() {\n var nucleus = this.fetch();\n var text = nucleus.text;\n\n if (/^\\\\verb[^a-zA-Z]/.test(text)) {\n this.consume();\n var arg = text.slice(5);\n var star = arg.charAt(0) === \"*\";\n\n if (star) {\n arg = arg.slice(1);\n } // Lexer's tokenRegex is constructed to always have matching\n // first/last characters.\n\n\n if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {\n throw new src_ParseError(\"\\\\verb assertion failed --\\n please report what input caused this bug\");\n }\n\n arg = arg.slice(1, -1); // remove first and last char\n\n return {\n type: \"verb\",\n mode: \"text\",\n body: arg,\n star: star\n };\n } // At this point, we should have a symbol, possibly with accents.\n // First expand any accented base symbol according to unicodeSymbols.\n\n\n if (unicodeSymbols.hasOwnProperty(text[0]) && !src_symbols[this.mode][text[0]]) {\n // This behavior is not strict (XeTeX-compatible) in math mode.\n if (this.settings.strict && this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Accented Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n text = unicodeSymbols[text[0]] + text.substr(1);\n } // Strip off any combining characters\n\n\n var match = combiningDiacriticalMarksEndRegex.exec(text);\n\n if (match) {\n text = text.substring(0, match.index);\n\n if (text === 'i') {\n text = \"\\u0131\"; // dotless i, in math and text mode\n } else if (text === 'j') {\n text = \"\\u0237\"; // dotless j, in math and text mode\n }\n } // Recognize base symbol\n\n\n var symbol;\n\n if (src_symbols[this.mode][text]) {\n if (this.settings.strict && this.mode === 'math' && extraLatin.indexOf(text) >= 0) {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Latin-1/Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n var group = src_symbols[this.mode][text].group;\n var loc = SourceLocation.range(nucleus);\n var s;\n\n if (ATOMS.hasOwnProperty(group)) {\n // $FlowFixMe\n var family = group;\n s = {\n type: \"atom\",\n mode: this.mode,\n family: family,\n loc: loc,\n text: text\n };\n } else {\n // $FlowFixMe\n s = {\n type: group,\n mode: this.mode,\n loc: loc,\n text: text\n };\n } // $FlowFixMe\n\n\n symbol = s;\n } else if (text.charCodeAt(0) >= 0x80) {\n // no symbol for e.g. ^\n if (this.settings.strict) {\n if (!supportedCodepoint(text.charCodeAt(0))) {\n this.settings.reportNonstrict(\"unknownSymbol\", \"Unrecognized Unicode character \\\"\" + text[0] + \"\\\"\" + (\" (\" + text.charCodeAt(0) + \")\"), nucleus);\n } else if (this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Unicode text character \\\"\" + text[0] + \"\\\" used in math mode\", nucleus);\n }\n } // All nonmathematical Unicode characters are rendered as if they\n // are in text mode (wrapped in \\text) because that's what it\n // takes to render them in LaTeX. Setting `mode: this.mode` is\n // another natural choice (the user requested math mode), but\n // this makes it more difficult for getCharacterMetrics() to\n // distinguish Unicode characters without metrics and those for\n // which we want to simulate the letter M.\n\n\n symbol = {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(nucleus),\n text: text\n };\n } else {\n return null; // EOF, ^, _, {, }, etc.\n }\n\n this.consume(); // Transform combining characters into accents\n\n if (match) {\n for (var i = 0; i < match[0].length; i++) {\n var accent = match[0][i];\n\n if (!unicodeAccents[accent]) {\n throw new src_ParseError(\"Unknown accent ' \" + accent + \"'\", nucleus);\n }\n\n var command = unicodeAccents[accent][this.mode] || unicodeAccents[accent].text;\n\n if (!command) {\n throw new src_ParseError(\"Accent \" + accent + \" unsupported in \" + this.mode + \" mode\", nucleus);\n }\n\n symbol = {\n type: \"accent\",\n mode: this.mode,\n loc: SourceLocation.range(nucleus),\n label: command,\n isStretchy: false,\n isShifty: true,\n // $FlowFixMe\n base: symbol\n };\n }\n } // $FlowFixMe\n\n\n return symbol;\n };\n\n return Parser;\n}();\n\nParser.endOfExpression = [\"}\", \"\\\\endgroup\", \"\\\\end\", \"\\\\right\", \"&\"];\n\n;// CONCATENATED MODULE: ./src/parseTree.js\n/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\n\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nvar parseTree = function parseTree(toParse, settings) {\n if (!(typeof toParse === 'string' || toParse instanceof String)) {\n throw new TypeError('KaTeX can only parse string typed expression');\n }\n\n var parser = new Parser(toParse, settings); // Blank out any \\df@tag to avoid spurious \"Duplicate \\tag\" errors\n\n delete parser.gullet.macros.current[\"\\\\df@tag\"];\n var tree = parser.parse(); // Prevent a color definition from persisting between calls to katex.render().\n\n delete parser.gullet.macros.current[\"\\\\current@color\"];\n delete parser.gullet.macros.current[\"\\\\color\"]; // If the input used \\tag, it will set the \\df@tag macro to the tag.\n // In this case, we separately parse the tag and wrap the tree.\n\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n if (!settings.displayMode) {\n throw new src_ParseError(\"\\\\tag works only in display equations\");\n }\n\n parser.gullet.feed(\"\\\\df@tag\");\n tree = [{\n type: \"tag\",\n mode: \"text\",\n body: tree,\n tag: parser.parse()\n }];\n }\n\n return tree;\n};\n\n/* harmony default export */ var src_parseTree = (parseTree);\n;// CONCATENATED MODULE: ./katex.js\n/* eslint no-console:0 */\n\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function render(expression, baseNode, options) {\n baseNode.textContent = \"\";\n var node = renderToDomTree(expression, options).toNode();\n baseNode.appendChild(node);\n}; // KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\n\n\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \" + \"website has a suitable doctype.\");\n\n render = function render() {\n throw new src_ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n/**\n * Parse and build an expression, and return the markup for that.\n */\n\n\nvar renderToString = function renderToString(expression, options) {\n var markup = renderToDomTree(expression, options).toMarkup();\n return markup;\n};\n/**\n * Parse an expression and return the parse tree.\n */\n\n\nvar generateParseTree = function generateParseTree(expression, options) {\n var settings = new Settings(options);\n return src_parseTree(expression, settings);\n};\n/**\n * If the given error is a KaTeX ParseError and options.throwOnError is false,\n * renders the invalid LaTeX as a span with hover title giving the KaTeX\n * error message. Otherwise, simply throws the error.\n */\n\n\nvar renderError = function renderError(error, expression, options) {\n if (options.throwOnError || !(error instanceof src_ParseError)) {\n throw error;\n }\n\n var node = buildCommon.makeSpan([\"katex-error\"], [new SymbolNode(expression)]);\n node.setAttribute(\"title\", error.toString());\n node.setAttribute(\"style\", \"color:\" + options.errorColor);\n return node;\n};\n/**\n * Generates and returns the katex build tree. This is used for advanced\n * use cases (like rendering to custom output).\n */\n\n\nvar renderToDomTree = function renderToDomTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = src_parseTree(expression, settings);\n return buildTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n/**\n * Generates and returns the katex build tree, with just HTML (no MathML).\n * This is used for advanced use cases (like rendering to custom output).\n */\n\n\nvar renderToHTMLTree = function renderToHTMLTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = src_parseTree(expression, settings);\n return buildHTMLTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n\n/* harmony default export */ var katex = ({\n /**\n * Current KaTeX version\n */\n version: \"0.13.18\",\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination, and adds\n * it as a child to the specified DOM node.\n */\n render: render,\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination string,\n * for sending to the client.\n */\n renderToString: renderToString,\n\n /**\n * KaTeX error, usually during parsing.\n */\n ParseError: src_ParseError,\n\n /**\n * Parses the given LaTeX into KaTeX's internal parse tree structure,\n * without rendering to HTML or MathML.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n\n /**\n * Renders the given LaTeX into an HTML+MathML internal DOM tree\n * representation, without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToDomTree: renderToDomTree,\n\n /**\n * Renders the given LaTeX into an HTML internal DOM tree representation,\n * without MathML and without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToHTMLTree: renderToHTMLTree,\n\n /**\n * extends internal font metrics object with a new object\n * each key in the new object represents a font name\n */\n __setFontMetrics: setFontMetrics,\n\n /**\n * adds a new symbol to builtin symbols table\n */\n __defineSymbol: defineSymbol,\n\n /**\n * adds a new macro to builtin macro list\n */\n __defineMacro: defineMacro,\n\n /**\n * Expose the dom tree node types, which can be useful for type checking nodes.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __domTree: {\n Span: Span,\n Anchor: Anchor,\n SymbolNode: SymbolNode,\n SvgNode: SvgNode,\n PathNode: PathNode,\n LineNode: LineNode\n }\n});\n;// CONCATENATED MODULE: ./katex.webpack.js\n/**\n * This is the webpack entry point for KaTeX. As ECMAScript, flow[1] and jest[2]\n * doesn't support CSS modules natively, a separate entry point is used and\n * it is not flowtyped.\n *\n * [1] https://gist.github.com/lambdahands/d19e0da96285b749f0ef\n * [2] https://facebook.github.io/jest/docs/en/webpack.html\n */\n\n\n/* harmony default export */ var katex_webpack = (katex);\n__webpack_exports__ = __webpack_exports__.default;\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","'use strict'\n\nvar fromParse5 = require('hast-util-from-parse5')\nvar Parser5 = require('parse5/lib/parser')\nvar errors = require('./errors.json')\n\nvar base = 'https://html.spec.whatwg.org/multipage/parsing.html#parse-error-'\n\nvar fatalities = {2: true, 1: false, 0: null}\n\nmodule.exports = parse\n\nfunction parse(options) {\n var settings = Object.assign({}, options, this.data('settings'))\n var position = settings.position\n\n position = typeof position === 'boolean' ? position : true\n\n this.Parser = parser\n\n function parser(doc, file) {\n var fn = settings.fragment ? 'parseFragment' : 'parse'\n var onParseError = settings.emitParseErrors ? onerror : null\n var parse5 = new Parser5({\n sourceCodeLocationInfo: position,\n onParseError: onParseError,\n scriptingEnabled: false\n })\n\n return fromParse5(parse5[fn](doc), {\n space: settings.space,\n file: file,\n verbose: settings.verbose\n })\n\n function onerror(err) {\n var code = err.code\n var name = camelcase(code)\n var setting = settings[name]\n var config = setting === undefined || setting === null ? true : setting\n var level = typeof config === 'number' ? config : config ? 1 : 0\n var start = {\n line: err.startLine,\n column: err.startCol,\n offset: err.startOffset\n }\n var end = {line: err.endLine, column: err.endCol, offset: err.endOffset}\n var info\n var message\n\n if (level) {\n info = errors[name] || /* istanbul ignore next */ {\n reason: '',\n description: ''\n }\n\n message = file.message(format(info.reason), {start: start, end: end})\n message.source = 'parse-error'\n message.ruleId = code\n message.fatal = fatalities[level]\n message.note = format(info.description)\n message.url = info.url === false ? null : base + code\n }\n\n function format(value) {\n return value.replace(/%c(?:-(\\d+))?/g, char).replace(/%x/g, encodedChar)\n }\n\n function char($0, $1) {\n var offset = $1 ? -parseInt($1, 10) : 0\n var char = doc.charAt(err.startOffset + offset)\n return char === '`' ? '` ` `' : char\n }\n\n function encodedChar() {\n var char = doc.charCodeAt(err.startOffset).toString(16).toUpperCase()\n\n return '0x' + char\n }\n }\n }\n}\n\nfunction camelcase(value) {\n return value.replace(/-[a-z]/g, replacer)\n}\n\nfunction replacer($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar s = require('hastscript/svg')\nvar h = require('hastscript')\nvar find = require('property-information/find')\nvar html = require('property-information/html')\nvar svg = require('property-information/svg')\nvar vfileLocation = require('vfile-location')\nvar ns = require('web-namespaces')\n\nmodule.exports = wrapper\n\nvar own = {}.hasOwnProperty\n\n// Handlers.\nvar map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n// Wrapper to normalise options.\nfunction wrapper(ast, options) {\n var settings = options || {}\n var file\n\n if (settings.messages) {\n file = settings\n settings = {}\n } else {\n file = settings.file\n }\n\n return transform(ast, {\n schema: settings.space === 'svg' ? svg : html,\n file: file,\n verbose: settings.verbose\n })\n}\n\n// Transform a node.\nfunction transform(ast, config) {\n var schema = config.schema\n var fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n var children\n var result\n var position\n\n if (fn === element) {\n config.schema = ast.namespaceURI === ns.svg ? svg : html\n }\n\n if (ast.childNodes) {\n children = nodes(ast.childNodes, config)\n }\n\n result = fn(ast, children, config)\n\n if (ast.sourceCodeLocation && config.file) {\n position = location(result, ast.sourceCodeLocation, config)\n\n if (position) {\n config.location = true\n result.position = position\n }\n }\n\n config.schema = schema\n\n return result\n}\n\n// Transform children.\nfunction nodes(children, config) {\n var index = -1\n var result = []\n\n while (++index < children.length) {\n result[index] = transform(children[index], config)\n }\n\n return result\n}\n\n// Transform a document.\n// Stores `ast.quirksMode` in `node.data.quirksMode`.\nfunction root(ast, children, config) {\n var result = {\n type: 'root',\n children: children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n var doc\n var location\n\n if (config.file && config.location) {\n doc = String(config.file)\n location = vfileLocation(doc)\n result.position = {\n start: location.toPoint(0),\n end: location.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n// Transform a doctype.\nfunction doctype(ast) {\n return {\n type: 'doctype',\n name: ast.name || '',\n public: ast.publicId || null,\n system: ast.systemId || null\n }\n}\n\n// Transform a text.\nfunction text(ast) {\n return {type: 'text', value: ast.value}\n}\n\n// Transform a comment.\nfunction comment(ast) {\n return {type: 'comment', value: ast.data}\n}\n\n// Transform an element.\nfunction element(ast, children, config) {\n var fn = config.schema.space === 'svg' ? s : h\n var props = {}\n var index = -1\n var result\n var attribute\n var pos\n var start\n var end\n\n while (++index < ast.attrs.length) {\n attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n pos = ast.sourceCodeLocation\n start = pos && pos.startTag && position(pos.startTag).end\n end = pos && pos.endTag && position(pos.endTag).start\n\n result.content = transform(ast.content, config)\n\n if ((start || end) && config.file) {\n result.content.position = {start: start, end: end}\n }\n }\n\n return result\n}\n\n// Create clean positional information.\nfunction location(node, location, config) {\n var result = position(location)\n var tail\n var key\n var props\n\n if (node.type === 'element') {\n tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (!location.endTag && tail && tail.position && tail.position.end) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (config.verbose) {\n props = {}\n\n for (key in location.attrs) {\n props[find(config.schema, key).property] = position(location.attrs[key])\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\nfunction position(loc) {\n var start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n var end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n return start || end ? {start: start, end: end} : null\n}\n\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n","'use strict'\n\nvar schema = require('property-information/svg')\nvar caseSensitive = require('./svg-case-sensitive-tag-names.json')\nvar factory = require('./factory')\n\nvar svg = factory(schema, 'g', caseSensitive)\nsvg.displayName = 'svg'\n\nmodule.exports = svg\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (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 {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = factory\n\nfunction factory(file) {\n var value = String(file)\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.exec(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {\n toPoint: offsetToPoint,\n toPosition: offsetToPoint,\n toOffset: pointToOffset\n }\n\n // Get the line and column-based `point` for `offset` in the bound indices.\n function offsetToPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset: offset\n }\n }\n }\n }\n\n return {}\n }\n\n // Get the `offset` for a line and column-based `point` in the bound\n // indices.\n function pointToOffset(point) {\n var line = point && point.line\n var column = point && point.column\n var offset\n\n if (!isNaN(line) && !isNaN(column) && line - 1 in indices) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n constructor() {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n }\n\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (unicode.isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n\n return unicode.getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n\n //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n\n return cp;\n }\n\n dropParsedChunk() {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n }\n\n write(chunk, isLastChunk) {\n if (this.html) {\n this.html += chunk;\n } else {\n this.html = chunk;\n }\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n }\n\n advance() {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n\n let cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n if (unicode.isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange =\n (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n\n return cp;\n }\n\n _checkForProblematicCharacters(cp) {\n if (unicode.isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n } else if (unicode.isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n\n retreat() {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n case 3:\n return tn === $.RTC;\n\n case 6:\n return tn === $.OPTION;\n\n case 8:\n return tn === $.OPTGROUP;\n }\n\n return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return (\n tn === $.RB ||\n tn === $.RP ||\n tn === $.RT ||\n tn === $.DD ||\n tn === $.DT ||\n tn === $.LI ||\n tn === $.TD ||\n tn === $.TH ||\n tn === $.TR\n );\n\n case 3:\n return tn === $.RTC;\n\n case 5:\n return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n case 6:\n return tn === $.OPTION;\n\n case 7:\n return tn === $.CAPTION;\n\n case 8:\n return tn === $.OPTGROUP || tn === $.COLGROUP;\n }\n\n return false;\n}\n\nfunction isScopingElement(tn, ns) {\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH) {\n return ns === NS.HTML;\n } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n return ns === NS.MATHML;\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n return ns === NS.HTML;\n } else if (tn === $.DESC) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n return ns === NS.HTML;\n } else if (tn === $.MTEXT) {\n return ns === NS.MATHML;\n } else if (tn === $.TITLE) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 6:\n return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n case 7:\n return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n case 8:\n return tn === $.TEMPLATE && ns === NS.HTML;\n\n case 13:\n return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n case 14:\n return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n }\n\n return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n constructor(document, treeAdapter) {\n this.stackTop = -1;\n this.items = [];\n this.current = document;\n this.currentTagName = null;\n this.currentTmplContent = null;\n this.tmplCount = 0;\n this.treeAdapter = treeAdapter;\n }\n\n //Index of element\n _indexOf(element) {\n let idx = -1;\n\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n idx = i;\n break;\n }\n }\n return idx;\n }\n\n //Update current element\n _isInTemplate() {\n return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n }\n\n //Mutations\n push(element) {\n this.items[++this.stackTop] = element;\n this._updateCurrentElement();\n\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n }\n\n pop() {\n this.stackTop--;\n\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n\n this._updateCurrentElement();\n }\n\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n\n this.items[idx] = newElement;\n\n if (idx === this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n insertAfter(referenceElement, newElement) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n\n this.items.splice(insertionIdx, 0, newElement);\n\n if (insertionIdx === ++this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n popUntilTagNamePopped(tagName) {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === tagName && ns === NS.HTML) {\n break;\n }\n }\n }\n\n popUntilElementPopped(element) {\n while (this.stackTop > -1) {\n const poppedElement = this.current;\n\n this.pop();\n\n if (poppedElement === element) {\n break;\n }\n }\n }\n\n popUntilNumberedHeaderPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (\n tn === $.H1 ||\n tn === $.H2 ||\n tn === $.H3 ||\n tn === $.H4 ||\n tn === $.H5 ||\n (tn === $.H6 && ns === NS.HTML)\n ) {\n break;\n }\n }\n }\n\n popUntilTableCellPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n break;\n }\n }\n }\n\n popAllUpToHtmlElement() {\n //NOTE: here we assume that root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.stackTop = 0;\n this._updateCurrentElement();\n }\n\n clearBackToTableContext() {\n while (\n (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableBodyContext() {\n while (\n (this.currentTagName !== $.TBODY &&\n this.currentTagName !== $.TFOOT &&\n this.currentTagName !== $.THEAD &&\n this.currentTagName !== $.TEMPLATE &&\n this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableRowContext() {\n while (\n (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n remove(element) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n this.items.splice(i, 1);\n this.stackTop--;\n this._updateCurrentElement();\n break;\n }\n }\n }\n\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n const element = this.items[1];\n\n return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n }\n\n contains(element) {\n return this._indexOf(element) > -1;\n }\n\n getCommonAncestor(element) {\n let elementIdx = this._indexOf(element);\n\n return --elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.currentTagName === $.HTML;\n }\n\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (\n (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n ns === NS.HTML\n ) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n\n return true;\n }\n\n //Implied end tags\n generateImpliedEndTags() {\n while (isImpliedEndTagRequired(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsThoroughly() {\n while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsWithExclusion(exclusionTagName) {\n while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n this.pop();\n }\n }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n constructor(treeAdapter) {\n this.length = 0;\n this.entries = [];\n this.treeAdapter = treeAdapter;\n this.bookmark = null;\n }\n\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement) {\n const candidates = [];\n\n if (this.length >= NOAH_ARK_CAPACITY) {\n const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n\n const element = entry.element;\n const elementAttrs = this.treeAdapter.getAttrList(element);\n\n const isCandidate =\n this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n elementAttrs.length === neAttrsLength;\n\n if (isCandidate) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n\n return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n }\n\n _ensureNoahArkCondition(newElement) {\n const candidates = this._getNoahArkConditionCandidates(newElement);\n let cLength = candidates.length;\n\n if (cLength) {\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const neAttrsLength = neAttrs.length;\n const neAttrsMap = Object.create(null);\n\n //NOTE: build attrs map for the new element so we can perform fast lookups\n for (let i = 0; i < neAttrsLength; i++) {\n const neAttr = neAttrs[i];\n\n neAttrsMap[neAttr.name] = neAttr.value;\n }\n\n for (let i = 0; i < neAttrsLength; i++) {\n for (let j = 0; j < cLength; j++) {\n const cAttr = candidates[j].attrs[i];\n\n if (neAttrsMap[cAttr.name] !== cAttr.value) {\n candidates.splice(j, 1);\n cLength--;\n }\n\n if (candidates.length < NOAH_ARK_CAPACITY) {\n return;\n }\n }\n }\n\n //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n this.entries.splice(candidates[i].idx, 1);\n this.length--;\n }\n }\n }\n\n //Mutations\n insertMarker() {\n this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n this.length++;\n }\n\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n\n this.entries.push({\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n insertElementAfterBookmark(element, token) {\n let bookmarkIdx = this.length - 1;\n\n for (; bookmarkIdx >= 0; bookmarkIdx--) {\n if (this.entries[bookmarkIdx] === this.bookmark) {\n break;\n }\n }\n\n this.entries.splice(bookmarkIdx + 1, 0, {\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n removeEntry(entry) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (this.entries[i] === entry) {\n this.entries.splice(i, 1);\n this.length--;\n break;\n }\n }\n }\n\n clearToLastMarker() {\n while (this.length) {\n const entry = this.entries.pop();\n\n this.length--;\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n }\n }\n\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n return null;\n }\n\n if (this.treeAdapter.getTagName(entry.element) === tagName) {\n return entry;\n }\n }\n\n return null;\n }\n\n getElementEntry(element) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n return entry;\n }\n }\n\n return null;\n }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n constructor(parser) {\n super(parser);\n\n this.parser = parser;\n this.treeAdapter = this.parser.treeAdapter;\n this.posTracker = null;\n this.lastStartTagToken = null;\n this.lastFosterParentingLocation = null;\n this.currentToken = null;\n }\n\n _setStartLocation(element) {\n let loc = null;\n\n if (this.lastStartTagToken) {\n loc = Object.assign({}, this.lastStartTagToken.location);\n loc.startTag = this.lastStartTagToken.location;\n }\n\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n\n _setEndLocation(element, closingToken) {\n const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n if (loc) {\n if (closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n\n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n const endLoc = {};\n if (isClosingEndTag) {\n endLoc.endTag = Object.assign({}, ctLoc);\n endLoc.endLine = ctLoc.endLine;\n endLoc.endCol = ctLoc.endCol;\n endLoc.endOffset = ctLoc.endOffset;\n } else {\n endLoc.endLine = ctLoc.startLine;\n endLoc.endCol = ctLoc.startCol;\n endLoc.endOffset = ctLoc.startOffset;\n }\n\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n mxn.lastStartTagToken = null;\n mxn.lastFosterParentingLocation = null;\n mxn.currentToken = null;\n\n const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n mxn.posTracker = tokenizerMixin.posTracker;\n\n Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n onItemPop: function(element) {\n mxn._setEndLocation(element, mxn.currentToken);\n }\n });\n },\n\n _runParsingLoop(scriptHandler) {\n orig._runParsingLoop.call(this, scriptHandler);\n\n // NOTE: generate location info for elements\n // that remains on open element stack\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n }\n },\n\n //Token processing\n _processTokenInForeignContent(token) {\n mxn.currentToken = token;\n orig._processTokenInForeignContent.call(this, token);\n },\n\n _processToken(token) {\n mxn.currentToken = token;\n orig._processToken.call(this, token);\n\n //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n //their end location explicitly.\n const requireExplicitUpdate =\n token.type === Tokenizer.END_TAG_TOKEN &&\n (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n if (requireExplicitUpdate) {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const element = this.openElements.items[i];\n\n if (this.treeAdapter.getTagName(element) === token.tagName) {\n mxn._setEndLocation(element, token);\n break;\n }\n }\n }\n },\n\n //Doctype\n _setDocumentType(token) {\n orig._setDocumentType.call(this, token);\n\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const cnLength = documentChildren.length;\n\n for (let i = 0; i < cnLength; i++) {\n const node = documentChildren[i];\n\n if (this.treeAdapter.isDocumentTypeNode(node)) {\n this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n break;\n }\n }\n },\n\n //Elements\n _attachElementToTree(element) {\n //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n //So we will use token location stored in this methods for the element.\n mxn._setStartLocation(element);\n mxn.lastStartTagToken = null;\n orig._attachElementToTree.call(this, element);\n },\n\n _appendElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._appendElement.call(this, token, namespaceURI);\n },\n\n _insertElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._insertElement.call(this, token, namespaceURI);\n },\n\n _insertTemplate(token) {\n mxn.lastStartTagToken = token;\n orig._insertTemplate.call(this, token);\n\n const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n },\n\n _insertFakeRootElement() {\n orig._insertFakeRootElement.call(this);\n this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n },\n\n //Comments\n _appendCommentNode(token, parent) {\n orig._appendCommentNode.call(this, token, parent);\n\n const children = this.treeAdapter.getChildNodes(parent);\n const commentNode = children[children.length - 1];\n\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n },\n\n //Text\n _findFosterParentingLocation() {\n //NOTE: store last foster parenting location, so we will be able to find inserted text\n //in case of foster parenting\n mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n return mxn.lastFosterParentingLocation;\n },\n\n _insertCharacters(token) {\n orig._insertCharacters.call(this, token);\n\n const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n const parent =\n (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n this.openElements.currentTmplContent ||\n this.openElements.current;\n\n const siblings = this.treeAdapter.getChildNodes(parent);\n\n const textNodeIdx =\n hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n : siblings.length - 1;\n\n const textNode = siblings[textNodeIdx];\n\n //NOTE: if we have location assigned by another token, then just update end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n } else {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n };\n }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n constructor(stack, opts) {\n super(stack);\n\n this.onItemPop = opts.onItemPop;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n pop() {\n mxn.onItemPop(this.current);\n orig.pop.call(this);\n },\n\n popAllUpToHtmlElement() {\n for (let i = this.stackTop; i > 0; i--) {\n mxn.onItemPop(this.items[i]);\n }\n\n orig.popAllUpToHtmlElement.call(this);\n },\n\n remove(element) {\n mxn.onItemPop(this.current);\n orig.remove.call(this, element);\n }\n };\n }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n constructor(parser, opts) {\n super(parser, opts);\n\n this.opts = opts;\n this.ctLoc = null;\n this.locBeforeToken = false;\n }\n\n _setErrorLocation(err) {\n if (this.ctLoc) {\n err.startLine = this.ctLoc.startLine;\n err.startCol = this.ctLoc.startCol;\n err.startOffset = this.ctLoc.startOffset;\n\n err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n },\n\n _processInputToken(token) {\n mxn.ctLoc = token.location;\n\n orig._processInputToken.call(this, token);\n },\n\n _err(code, options) {\n mxn.locBeforeToken = options && options.beforeToken;\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n constructor(tokenizer, opts) {\n super(tokenizer, opts);\n\n const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n this.posTracker = preprocessorMixin.posTracker;\n }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n constructor(preprocessor, opts) {\n super(preprocessor, opts);\n\n this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n this.lastErrOffset = -1;\n }\n\n _reportError(code) {\n //NOTE: avoid reporting error twice on advance/retreat\n if (this.lastErrOffset !== this.posTracker.offset) {\n this.lastErrOffset = this.posTracker.offset;\n super._reportError(code);\n }\n }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: []\n };\n};\n\nexports.createDocumentFragment = function() {\n return {\n nodeName: '#document-fragment',\n childNodes: []\n };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName: tagName,\n attrs: attrs,\n namespaceURI: namespaceURI,\n childNodes: [],\n parentNode: null\n };\n};\n\nexports.createCommentNode = function(data) {\n return {\n nodeName: '#comment',\n data: data,\n parentNode: null\n };\n};\n\nconst createTextNode = function(value) {\n return {\n nodeName: '#text',\n value: value,\n parentNode: null\n };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n let doctypeNode = null;\n\n for (let i = 0; i < document.childNodes.length; i++) {\n if (document.childNodes[i].nodeName === '#documentType') {\n doctypeNode = document.childNodes[i];\n break;\n }\n }\n\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n } else {\n appendChild(document, {\n nodeName: '#documentType',\n name: name,\n publicId: publicId,\n systemId: systemId\n });\n }\n};\n\nexports.setDocumentMode = function(document, mode) {\n document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n return document.mode;\n};\n\nexports.detachNode = function(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n};\n\nexports.insertText = function(parentNode, text) {\n if (parentNode.childNodes.length) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n if (prevNode.nodeName === '#text') {\n prevNode.value += text;\n return;\n }\n }\n\n appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n if (prevNode && prevNode.nodeName === '#text') {\n prevNode.value += text;\n } else {\n insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n const recipientAttrsMap = [];\n\n for (let i = 0; i < recipient.attrs.length; i++) {\n recipientAttrsMap.push(recipient.attrs[i].name);\n }\n\n for (let j = 0; j < attrs.length; j++) {\n if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n recipient.attrs.push(attrs[j]);\n }\n }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n options = options || Object.create(null);\n\n return [defaults, options].reduce((merged, optObj) => {\n Object.keys(optObj).forEach(key => {\n merged[key] = optObj[key];\n });\n\n return merged;\n }, Object.create(null));\n};\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n for (let i = 0; i < prefixes.length; i++) {\n if (publicId.indexOf(prefixes[i]) === 0) {\n return true;\n }\n }\n\n return false;\n}\n\n//API\nexports.isConforming = function(token) {\n return (\n token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n );\n};\n\nexports.getDocumentMode = function(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n const systemId = token.systemId;\n\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let publicId = token.publicId;\n\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n\n if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n\n return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n let str = '!DOCTYPE ';\n\n if (name) {\n str += name;\n }\n\n if (publicId) {\n str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n } else if (systemId) {\n str += ' SYSTEM';\n }\n\n if (systemId !== null) {\n str += ' ' + enquoteDoctypeId(systemId);\n }\n\n return str;\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n attributename: 'attributeName',\n attributetype: 'attributeType',\n basefrequency: 'baseFrequency',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n clippathunits: 'clipPathUnits',\n diffuseconstant: 'diffuseConstant',\n edgemode: 'edgeMode',\n filterunits: 'filterUnits',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n limitingconeangle: 'limitingConeAngle',\n markerheight: 'markerHeight',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textlength: 'textLength',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n xchannelselector: 'xChannelSelector',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n 'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n 'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n 'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n 'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n 'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n 'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n 'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n 'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n 'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n 'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n 'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient',\n textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n [$.B]: true,\n [$.BIG]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.CENTER]: true,\n [$.CODE]: true,\n [$.DD]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EM]: true,\n [$.EMBED]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HR]: true,\n [$.I]: true,\n [$.IMG]: true,\n [$.LI]: true,\n [$.LISTING]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NOBR]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PRE]: true,\n [$.RUBY]: true,\n [$.S]: true,\n [$.SMALL]: true,\n [$.SPAN]: true,\n [$.STRONG]: true,\n [$.STRIKE]: true,\n [$.SUB]: true,\n [$.SUP]: true,\n [$.TABLE]: true,\n [$.TT]: true,\n [$.U]: true,\n [$.UL]: true,\n [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n const tn = startTagToken.tagName;\n const isFontWithAttrs =\n tn === $.FONT &&\n (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrName) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n if (adjustedTagName) {\n token.tagName = adjustedTagName;\n }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n return true;\n }\n\n if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n return true;\n }\n\n return false;\n};\n","'use strict'\n\nvar repeat = require('repeat-string')\nvar convert = require('hast-util-is-element/convert')\nvar findAfter = require('unist-util-find-after')\n\nmodule.exports = toText\n\nvar searchLineFeeds = /\\n/g\nvar searchTabOrSpaces = /[\\t ]+/g\n\nvar br = convert('br')\nvar p = convert('p')\nvar cell = convert(['th', 'td'])\nvar row = convert('tr')\n\n// Note that we don’t need to include void elements here as they don’t have text.\n// See: <https://github.com/wooorm/html-void-elements>\nvar notRendered = convert([\n // List from: <https://html.spec.whatwg.org/#hidden-elements>\n 'datalist',\n 'head',\n 'noembed',\n 'noframes',\n 'rp',\n 'script',\n 'style',\n 'template',\n 'title',\n // Act as if we support scripting.\n 'noscript',\n // Hidden attribute.\n hidden,\n // From: <https://html.spec.whatwg.org/#flow-content-3>\n closedDialog\n])\n\n// See: <https://html.spec.whatwg.org/#the-css-user-agent-style-sheet-and-presentational-hints>\nvar blockOrCaption = convert([\n 'caption', // `table-caption`\n // Page\n 'html',\n 'body',\n // Flow content\n 'address',\n 'blockquote',\n 'center', // Legacy\n 'dialog',\n 'div',\n 'figure',\n 'figcaption',\n 'footer',\n 'form,',\n 'header',\n 'hr',\n 'legend',\n 'listing', // Legacy\n 'main',\n 'p',\n 'plaintext', // Legacy\n 'pre',\n 'xmp', // Legacy\n // Sections and headings\n 'article',\n 'aside',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hgroup',\n 'nav',\n 'section',\n // Lists\n 'dir', // Legacy\n 'dd',\n 'dl',\n 'dt',\n 'menu',\n 'ol',\n 'ul'\n])\n\n// Implementation of the `innerText` getter:\n// <https://html.spec.whatwg.org/#the-innertext-idl-attribute>\n// Note that we act as if `node` is being rendered, and as if we’re a\n// CSS-supporting user agent.\nfunction toText(node) {\n var children = node.children || []\n var block = blockOrCaption(node)\n var whiteSpace = inferWhiteSpace(node, {})\n var index = -1\n var results\n var result\n var value\n var count\n\n // Treat `text` and `comment` as having normal white-space.\n // This deviates from the spec as in the DOM the node’s `.data` has to be\n // returned.\n // If you want that behavior use `hast-util-to-string`.\n // All other nodes are later handled as if they are `element`s (so the\n // algorithm also works on a `root`).\n // Nodes without children are treated as a void element, so `doctype` is thus\n // ignored.\n if (node.type === 'text' || node.type === 'comment') {\n return collectText(node, {\n whiteSpace: whiteSpace,\n breakBefore: true,\n breakAfter: true\n })\n }\n\n // 1. If this element is not being rendered, or if the user agent is a\n // non-CSS user agent, then return the same value as the textContent IDL\n // attribute on this element.\n //\n // Note: we’re not supporting stylesheets so we’re acting as if the node\n // is rendered.\n //\n // If you want that behavior use `hast-util-to-string`.\n // Important: we’ll have to account for this later though.\n\n // 2. Let results be a new empty list.\n results = []\n\n // 3. For each child node node of this element:\n while (++index < children.length) {\n // 3.1. Let current be the list resulting in running the inner text\n // collection steps with node.\n // Each item in results will either be a JavaScript string or a\n // positive integer (a required line break count).\n // 3.2. For each item item in current, append item to results.\n results = results.concat(\n innerTextCollection(children[index], index, node, {\n whiteSpace: whiteSpace,\n breakBefore: index ? null : block,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : block\n })\n )\n }\n\n // 4. Remove any items from results that are the empty string.\n // 5. Remove any runs of consecutive required line break count items at the\n // start or end of results.\n // 6. Replace each remaining run of consecutive required line break count\n // items with a string consisting of as many U+000A LINE FEED (LF)\n // characters as the maximum of the values in the required line break\n // count items.\n index = -1\n result = []\n\n while (++index < results.length) {\n value = results[index]\n\n if (typeof value === 'number') {\n if (count !== undefined && value > count) count = value\n } else if (value) {\n if (count) result.push(repeat('\\n', count))\n count = 0\n result.push(value)\n }\n }\n\n // 7. Return the concatenation of the string items in results.\n return result.join('')\n}\n\n// <https://html.spec.whatwg.org/#inner-text-collection-steps>\nfunction innerTextCollection(node, index, parent, options) {\n if (node.type === 'element') {\n return collectElement(node, index, parent, options)\n }\n\n if (node.type === 'text') {\n return [\n options.whiteSpace === 'normal'\n ? collectText(node, options)\n : collectPreText(node, options)\n ]\n }\n\n return []\n}\n\n// Collect an element.\nfunction collectElement(node, _, parent, options) {\n // First we infer the `white-space` property.\n var whiteSpace = inferWhiteSpace(node, options)\n var children = node.children || []\n var index = -1\n var items = []\n var prefix\n var suffix\n\n // We’re ignoring point 3, and exiting without any content here, because we\n // deviated from the spec in `toText` at step 3.\n if (notRendered(node)) {\n return items\n }\n\n // Note: we first detect if there is going to be a break before or after the\n // contents, as that changes the white-space handling.\n\n // 2. If node’s computed value of `visibility` is not `visible`, then return\n // items.\n //\n // Note: Ignored, as everything is visible by default user agent styles.\n\n // 3. If node is not being rendered, then return items. [...]\n //\n // Note: We already did this above.\n\n // See `collectText` for step 4.\n\n // 5. If node is a `<br>` element, then append a string containing a single\n // U+000A LINE FEED (LF) character to items.\n if (br(node)) {\n suffix = '\\n'\n }\n\n // 7. If node’s computed value of `display` is `table-row`, and node’s CSS\n // box is not the last `table-row` box of the nearest ancestor `table`\n // box, then append a string containing a single U+000A LINE FEED (LF)\n // character to items.\n //\n // See: <https://html.spec.whatwg.org/#tables-2>\n // Note: needs further investigation as this does not account for implicit\n // rows.\n else if (row(node) && findAfter(parent, node, row)) {\n suffix = '\\n'\n }\n\n // 8. If node is a `<p>` element, then append 2 (a required line break count)\n // at the beginning and end of items.\n else if (p(node)) {\n prefix = 2\n suffix = 2\n }\n\n // 9. If node’s used value of `display` is block-level or `table-caption`,\n // then append 1 (a required line break count) at the beginning and end of\n // items.\n else if (blockOrCaption(node)) {\n prefix = 1\n suffix = 1\n }\n\n // 1. Let items be the result of running the inner text collection steps with\n // each child node of node in tree order, and then concatenating the\n // results to a single list.\n while (++index < children.length) {\n items = items.concat(\n innerTextCollection(children[index], index, node, {\n whiteSpace: whiteSpace,\n breakBefore: index ? null : prefix,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : suffix\n })\n )\n }\n\n // 6. If node’s computed value of `display` is `table-cell`, and node’s CSS\n // box is not the last `table-cell` box of its enclosing `table-row` box,\n // then append a string containing a single U+0009 CHARACTER TABULATION\n // (tab) character to items.\n //\n // See: <https://html.spec.whatwg.org/#tables-2>\n if (cell(node) && findAfter(parent, node, cell)) {\n items.push('\\t')\n }\n\n // Add the pre- and suffix.\n if (prefix) items.unshift(prefix)\n if (suffix) items.push(suffix)\n\n return items\n}\n\n// 4. If node is a Text node, then for each CSS text box produced by node,\n// in content order, compute the text of the box after application of the\n// CSS `white-space` processing rules and `text-transform` rules, set\n// items to the list of the resulting strings, and return items.\n// The CSS `white-space` processing rules are slightly modified:\n// collapsible spaces at the end of lines are always collapsed, but they\n// are only removed if the line is the last line of the block, or it ends\n// with a br element.\n// Soft hyphens should be preserved.\n//\n// Note: See `collectText` and `collectPreText`.\n// Note: we don’t deal with `text-transform`, no element has that by\n// default.\n//\n// See: <https://drafts.csswg.org/css-text/#white-space-phase-1>\nfunction collectText(node, options) {\n var value = String(node.value)\n var lines = []\n var result = []\n var start = 0\n var index = -1\n var match\n var end\n var join\n\n while (start < value.length) {\n searchLineFeeds.lastIndex = start\n match = searchLineFeeds.exec(value)\n end = match ? match.index : value.length\n\n lines.push(\n // Any sequence of collapsible spaces and tabs immediately preceding or\n // following a segment break is removed.\n trimAndcollapseSpacesAndTabs(\n // [...] ignoring bidi formatting characters (characters with the\n // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if\n // they were not there.\n value\n .slice(start, end)\n .replace(/[\\u061c\\u200e\\u200f\\u202a-\\u202e\\u2066-\\u2069]/g, ''),\n options.breakBefore,\n options.breakAfter\n )\n )\n\n start = end + 1\n }\n\n // Collapsible segment breaks are transformed for rendering according to the\n // segment break transformation rules.\n // So here we jump to 4.1.2 of [CSSTEXT]:\n // Any collapsible segment break immediately following another collapsible\n // segment break is removed\n while (++index < lines.length) {\n // * If the character immediately before or immediately after the segment\n // break is the zero-width space character (U+200B), then the break is\n // removed, leaving behind the zero-width space.\n if (\n lines[index].charCodeAt(lines[index].length - 1) === 0x200b /* ZWSP */ ||\n (index < lines.length - 1 &&\n lines[index + 1].charCodeAt(0) === 0x200b) /* ZWSP */\n ) {\n result.push(lines[index])\n join = ''\n }\n\n // * Otherwise, if the East Asian Width property [UAX11] of both the\n // character before and after the segment break is Fullwidth, Wide, or\n // Halfwidth (not Ambiguous), and neither side is Hangul, then the\n // segment break is removed.\n //\n // Note: ignored.\n // * Otherwise, if the writing system of the segment break is Chinese,\n // Japanese, or Yi, and the character before or after the segment break\n // is punctuation or a symbol (Unicode general category P* or S*) and\n // has an East Asian Width property of Ambiguous, and the character on\n // the other side of the segment break is Fullwidth, Wide, or Halfwidth,\n // and not Hangul, then the segment break is removed.\n //\n // Note: ignored.\n\n // * Otherwise, the segment break is converted to a space (U+0020).\n else if (lines[index]) {\n if (join) result.push(join)\n result.push(lines[index])\n join = ' '\n }\n }\n\n return result.join('')\n}\n\nfunction collectPreText(node) {\n return String(node.value)\n}\n\n// 3. Every collapsible tab is converted to a collapsible space (U+0020).\n// 4. Any collapsible space immediately following another collapsible\n// space—even one outside the boundary of the inline containing that\n// space, provided both spaces are within the same inline formatting\n// context—is collapsed to have zero advance width. (It is invisible,\n// but retains its soft wrap opportunity, if any.)\nfunction trimAndcollapseSpacesAndTabs(value, breakBefore, breakAfter) {\n var result = []\n var start = 0\n var match\n var end\n\n while (start < value.length) {\n searchTabOrSpaces.lastIndex = start\n match = searchTabOrSpaces.exec(value)\n end = match ? match.index : value.length\n\n // If we’re not directly after a segment break, but there was white space,\n // add an empty value that will be turned into a space.\n if (!start && !end && match && !breakBefore) {\n result.push('')\n }\n\n if (start !== end) {\n result.push(value.slice(start, end))\n }\n\n start = match ? end + match[0].length : end\n }\n\n // If we reached the end, there was trailing white space, and there’s no\n // segment break after this node, add an empty value that will be turned\n // into a space.\n if (start !== end && !breakAfter) {\n result.push('')\n }\n\n return result.join(' ')\n}\n\n// We don’t support void elements here (so `nobr wbr` -> `normal` is ignored).\nfunction inferWhiteSpace(node, options) {\n var props = node.properties || {}\n var inherit = options.whiteSpace || 'normal'\n\n switch (node.tagName) {\n case 'listing':\n case 'plaintext':\n case 'xmp':\n return 'pre'\n case 'nobr':\n return 'nowrap'\n case 'pre':\n return props.wrap ? 'pre-wrap' : 'pre'\n case 'td':\n case 'th':\n return props.noWrap ? 'nowrap' : inherit\n case 'textarea':\n return 'pre-wrap'\n default:\n return inherit\n }\n}\n\nfunction hidden(node) {\n return (node.properties || {}).hidden\n}\n\nfunction closedDialog(node) {\n return node.tagName === 'dialog' && !(node.properties || {}).open\n}\n","'use strict'\n\nmodule.exports = convert\n\nfunction convert(test) {\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'object') {\n return any(test)\n }\n\n if (typeof test === 'function') {\n return callFactory(test)\n }\n\n throw new Error('Expected function, string, or array as test')\n}\n\nfunction convertAll(tests) {\n var length = tests.length\n var index = -1\n var results = []\n\n while (++index < length) {\n results[index] = convert(tests[index])\n }\n\n return results\n}\n\nfunction any(tests) {\n var checks = convertAll(tests)\n var length = checks.length\n\n return matches\n\n function matches() {\n var index = -1\n\n while (++index < length) {\n if (checks[index].apply(this, arguments)) {\n return true\n }\n }\n\n return false\n }\n}\n\n// Utility to convert a string a tag name check.\nfunction tagNameFactory(test) {\n return tagName\n\n function tagName(node) {\n return element(node) && node.tagName === test\n }\n}\n\n// Utility to convert a function check.\nfunction callFactory(test) {\n return call\n\n function call(node) {\n return element(node) && Boolean(test.apply(this, arguments))\n }\n}\n\n// Utility to return true if this is an element.\nfunction element(node) {\n return (\n node &&\n typeof node === 'object' &&\n node.type === 'element' &&\n typeof node.tagName === 'string'\n )\n}\n","'use strict'\n\nvar convert = require('unist-util-is/convert')\n\nmodule.exports = findAfter\n\nfunction findAfter(parent, index, test) {\n var is = convert(test)\n var children\n var child\n var length\n\n if (!parent || !parent.type || !parent.children) {\n throw new Error('Expected parent node')\n }\n\n children = parent.children\n length = children.length\n\n if (index && index.type) {\n index = children.indexOf(index)\n }\n\n if (isNaN(index) || index < 0 || index === Infinity) {\n throw new Error('Expected positive finite index or child node')\n }\n\n while (++index < length) {\n child = children[index]\n\n if (is(child, index, parent)) {\n return child\n }\n }\n\n return null\n}\n","function deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\nvar deepFreezeEs6 = deepFreeze;\nvar _default = deepFreeze;\ndeepFreezeEs6.default = _default;\n\n/** @implements CallbackResponse */\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let className = node.kind;\n if (!node.sublanguage) {\n className = `${this.classPrefix}${className}`;\n }\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\nfunction escape(value) {\n return new RegExp(value.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'm');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {string} separator\n * @returns {string}\n */\nfunction join(regexps, separator = \"|\") {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(separator);\n}\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit({\n className: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit(\n {\n className: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push(PHRASAL_WORDS_MODE);\n mode.contains.push({\n className: 'doctag',\n begin: '(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',\n relevance: 0\n });\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n className: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n className: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst CSS_NUMBER_MODE = {\n className: 'number',\n begin: NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n className: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n className: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n className: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n CSS_NUMBER_MODE: CSS_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfhasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfhasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_CLASSNAME = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, className = DEFAULT_KEYWORD_CLASSNAME) {\n /** @type KeywordDict */\n const compiledKeywords = {};\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing className (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(className, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(className, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(className) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[className], caseInsensitive, className)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} className\n * @param {Array<string>} keywordList\n */\n function compileList(className, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [className, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @param {{plugins: HLJSPlugin[]}} opts\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language, { plugins }) {\n /**\n * Builds a regex with the case sensativility of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(join(terminators), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\") {\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n // both are not allowed\n if (mode.lexemes && keywordPattern) {\n throw new Error(\"ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) \");\n }\n\n // `mode.lexemes` was the old standard before we added and now recommend\n // using `keywords.$pattern` to pass the keyword pattern\n keywordPattern = keywordPattern || mode.lexemes || /\\w+/;\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(mode.begin);\n if (mode.endSameAsBegin) mode.end = mode.begin;\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(mode.end);\n cmode.terminatorEnd = source(mode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit(mode, { starts: mode.starts ? inherit(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"10.7.3\";\n\n// @ts-nocheck\n\nfunction hasValueOrEmptyAttribute(value) {\n return Boolean(value || value === \"\");\n}\n\nfunction BuildVuePlugin(hljs) {\n const Component = {\n props: [\"language\", \"code\", \"autodetect\"],\n data: function() {\n return {\n detectedLanguage: \"\",\n unknownLanguage: false\n };\n },\n computed: {\n className() {\n if (this.unknownLanguage) return \"\";\n\n return \"hljs \" + this.detectedLanguage;\n },\n highlighted() {\n // no idea what language to use, return raw code\n if (!this.autoDetect && !hljs.getLanguage(this.language)) {\n console.warn(`The language \"${this.language}\" you specified could not be found.`);\n this.unknownLanguage = true;\n return escapeHTML(this.code);\n }\n\n let result = {};\n if (this.autoDetect) {\n result = hljs.highlightAuto(this.code);\n this.detectedLanguage = result.language;\n } else {\n result = hljs.highlight(this.language, this.code, this.ignoreIllegals);\n this.detectedLanguage = this.language;\n }\n return result.value;\n },\n autoDetect() {\n return !this.language || hasValueOrEmptyAttribute(this.autodetect);\n },\n ignoreIllegals() {\n return true;\n }\n },\n // this avoids needing to use a whole Vue compilation pipeline just\n // to build Highlight.js\n render(createElement) {\n return createElement(\"pre\", {}, [\n createElement(\"code\", {\n class: this.className,\n domProps: { innerHTML: this.highlighted }\n })\n ]);\n }\n // template: `<pre><code :class=\"className\" v-html=\"highlighted\"></code></pre>`\n };\n\n const VuePlugin = {\n install(Vue) {\n Vue.component('highlightjs', Component);\n }\n };\n\n return { Component, VuePlugin };\n}\n\n/* plugin itself */\n\n/** @type {HLJSPlugin} */\nconst mergeHTMLPlugin = {\n \"after:highlightElement\": ({ el, result, text }) => {\n const originalStream = nodeStream(el);\n if (!originalStream.length) return;\n\n const resultNode = document.createElement('div');\n resultNode.innerHTML = result.value;\n result.value = mergeStreams(originalStream, nodeStream(resultNode), text);\n }\n};\n\n/* Stream merging support functions */\n\n/**\n * @typedef Event\n * @property {'start'|'stop'} event\n * @property {number} offset\n * @property {Node} node\n */\n\n/**\n * @param {Node} node\n */\nfunction tag(node) {\n return node.nodeName.toLowerCase();\n}\n\n/**\n * @param {Node} node\n */\nfunction nodeStream(node) {\n /** @type Event[] */\n const result = [];\n (function _nodeStream(node, offset) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n if (child.nodeType === 3) {\n offset += child.nodeValue.length;\n } else if (child.nodeType === 1) {\n result.push({\n event: 'start',\n offset: offset,\n node: child\n });\n offset = _nodeStream(child, offset);\n // Prevent void elements from having an end tag that would actually\n // double them in the output. There are more void elements in HTML\n // but we list only those realistically expected in code display.\n if (!tag(child).match(/br|hr|img|input/)) {\n result.push({\n event: 'stop',\n offset: offset,\n node: child\n });\n }\n }\n }\n return offset;\n })(node, 0);\n return result;\n}\n\n/**\n * @param {any} original - the original stream\n * @param {any} highlighted - stream of the highlighted source\n * @param {string} value - the original source itself\n */\nfunction mergeStreams(original, highlighted, value) {\n let processed = 0;\n let result = '';\n const nodeStack = [];\n\n function selectStream() {\n if (!original.length || !highlighted.length) {\n return original.length ? original : highlighted;\n }\n if (original[0].offset !== highlighted[0].offset) {\n return (original[0].offset < highlighted[0].offset) ? original : highlighted;\n }\n\n /*\n To avoid starting the stream just before it should stop the order is\n ensured that original always starts first and closes last:\n\n if (event1 == 'start' && event2 == 'start')\n return original;\n if (event1 == 'start' && event2 == 'stop')\n return highlighted;\n if (event1 == 'stop' && event2 == 'start')\n return original;\n if (event1 == 'stop' && event2 == 'stop')\n return highlighted;\n\n ... which is collapsed to:\n */\n return highlighted[0].event === 'start' ? original : highlighted;\n }\n\n /**\n * @param {Node} node\n */\n function open(node) {\n /** @param {Attr} attr */\n function attributeString(attr) {\n return ' ' + attr.nodeName + '=\"' + escapeHTML(attr.value) + '\"';\n }\n // @ts-ignore\n result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';\n }\n\n /**\n * @param {Node} node\n */\n function close(node) {\n result += '</' + tag(node) + '>';\n }\n\n /**\n * @param {Event} event\n */\n function render(event) {\n (event.event === 'start' ? open : close)(event.node);\n }\n\n while (original.length || highlighted.length) {\n let stream = selectStream();\n result += escapeHTML(value.substring(processed, stream[0].offset));\n processed = stream[0].offset;\n if (stream === original) {\n /*\n On any opening or closing tag of the original markup we first close\n the entire highlighted node stack, then render the original tag along\n with all the following original tags at the same offset and then\n reopen all the tags on the highlighted stack.\n */\n nodeStack.reverse().forEach(close);\n do {\n render(stream.splice(0, 1)[0]);\n stream = selectStream();\n } while (stream === original && stream.length && stream[0].offset === processed);\n nodeStack.reverse().forEach(open);\n } else {\n if (stream[0].event === 'start') {\n nodeStack.push(stream[0].node);\n } else {\n nodeStack.pop();\n }\n render(stream.splice(0, 1)[0]);\n }\n }\n return result + escapeHTML(value.substr(processed));\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\nconst escape$1 = escapeHTML;\nconst inherit$1 = inherit;\nconst NO_MATCH = Symbol(\"nomatch\");\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const fixMarkupRe = /(^(<[^>]+>|\\t|)+|\\n)/gm;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n tabReplace: null,\n useBR: false,\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrlanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode} [continuation] - current continuation mode, if any\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrlanguageName, optionsOrCode, ignoreIllegals, continuation) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrlanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n // continuation not supported at all via the new API\n // eslint-disable-next-line no-undefined\n continuation = undefined;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrlanguageName;\n code = optionsOrCode;\n }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals, continuation);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {RegExpMatchArray} match - regexp match data\n * @returns {KeywordData | false}\n */\n function keywordData(mode, match) {\n const matchText = language.case_insensitive ? match[0].toLowerCase() : match[0];\n return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const data = keywordData(top, match);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result.top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result.emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {Mode} mode - new mode to start\n */\n function startNewMode(mode) {\n if (mode.className) {\n emitter.openNode(language.classNameAliases[mode.className] || mode.className);\n }\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexs to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode && newMode.endSameAsBegin) {\n newMode.endRe = escape(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode);\n // if (mode[\"after:begin\"]) {\n // let resp = new Response(mode);\n // mode[\"after:begin\"](match, resp);\n // }\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.className) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n if (endMode.endSameAsBegin) {\n endMode.starts.endRe = endMode.endRe;\n }\n startNewMode(endMode.starts);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.className) {\n list.unshift(current.className);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceeding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error('0 width match regex');\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.className || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? Only one occasion now. An end match that was\n triggered but could not be completed. When might this happen? When an `endSameasBegin`\n rule sets the end rule to a specific match. Since the overall mode termination rule that's\n being used to scan the text isn't recompiled that means that any match that LOOKS like\n the end (but is not, because it is not an exact match to the beginning) will\n end up here. A definite end match, but when `doEndMatch` tries to \"reapply\"\n the end rule and fails to match, we wind up here, and just silently ignore the end.\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language, { plugins });\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n // avoid possible breakage with v10 clients expecting\n // this to always be an integer\n relevance: Math.floor(relevance),\n value: result,\n language: languageName,\n illegal: false,\n emitter: emitter,\n top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n illegal: true,\n illegalBy: {\n msg: err.message,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode\n },\n sofar: result,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n illegal: false,\n relevance: 0,\n value: escape$1(codeToHighlight),\n emitter: emitter,\n language: languageName,\n top: top,\n errorRaised: err\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n relevance: 0,\n emitter: new options.__emitter(options),\n value: escape$1(code),\n illegal: false,\n top: PLAINTEXT_LANGUAGE\n };\n result.emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - second_best (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.second_best = secondBest;\n\n return result;\n }\n\n /**\n Post-processing of the highlighted markup:\n\n - replace TABs with something more useful\n - replace real line-breaks with '<br>' for non-pre containers\n\n @param {string} html\n @returns {string}\n */\n function fixMarkup(html) {\n if (!(options.tabReplace || options.useBR)) {\n return html;\n }\n\n return html.replace(fixMarkupRe, match => {\n if (match === '\\n') {\n return options.useBR ? '<br>' : match;\n } else if (options.tabReplace) {\n return match.replace(/\\t/g, options.tabReplace);\n }\n return match;\n });\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = currentLang ? aliases[currentLang] : resultLang;\n\n element.classList.add(\"hljs\");\n if (language) element.classList.add(language);\n }\n\n /** @type {HLJSPlugin} */\n const brPlugin = {\n \"before:highlightElement\": ({ el }) => {\n if (options.useBR) {\n el.innerHTML = el.innerHTML.replace(/\\n/g, '').replace(/<br[ /]*>/g, '\\n');\n }\n },\n \"after:highlightElement\": ({ result }) => {\n if (options.useBR) {\n result.value = result.value.replace(/\\n/g, \"<br>\");\n }\n }\n };\n\n const TAB_REPLACE_RE = /^(<[^>]+>|\\t)+/gm;\n /** @type {HLJSPlugin} */\n const tabReplacePlugin = {\n \"after:highlightElement\": ({ result }) => {\n if (options.tabReplace) {\n result.value = result.value.replace(TAB_REPLACE_RE, (m) =>\n m.replace(/\\t/g, options.tabReplace)\n );\n }\n }\n };\n\n /**\n * Applies highlighting to a DOM node containing code. Accepts a DOM node and\n * two optional parameters for fixMarkup.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n // support for v10 API\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n // support for v10 API\n fire(\"after:highlightElement\", { el: element, result, text });\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relavance: result.relevance\n };\n if (result.second_best) {\n element.second_best = {\n language: result.second_best.language,\n // TODO: remove with version 11.0\n re: result.second_best.relevance,\n relavance: result.second_best.relevance\n };\n }\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n if (userOptions.useBR) {\n deprecated(\"10.3.0\", \"'useBR' will be removed entirely in v11.0\");\n deprecated(\"10.3.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2559\");\n }\n options = inherit$1(options, userOptions);\n }\n\n /**\n * Highlights to all <pre><code> blocks on a page\n *\n * @type {Function & {called?: boolean}}\n */\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n if (initHighlighting.called) return;\n initHighlighting.called = true;\n\n deprecated(\"10.6.0\", \"initHighlighting() is deprecated. Use highlightAll() instead.\");\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n };\n\n // Higlights all when DOMContentLoaded fires\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() is deprecated. Use highlightAll() instead.\");\n wantsHighlight = true;\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll('pre code');\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n intended usage: When one language truly requires another\n\n Unlike `getLanguage`, this will throw when the requested language\n is not available.\n\n @param {string} name - name of the language to fetch/require\n @returns {Language | never}\n */\n function requireLanguage(name) {\n deprecated(\"10.4.0\", \"requireLanguage will be removed entirely in v11.\");\n deprecated(\"10.4.0\", \"Please see https://github.com/highlightjs/highlight.js/pull/2844\");\n\n const lang = getLanguage(name);\n if (lang) { return lang; }\n\n const err = new Error('The \\'{}\\' language is required, but not loaded.'.replace('{}', name));\n throw err;\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n Note: fixMarkup is deprecated and will be removed entirely in v11\n\n @param {string} arg\n @returns {string}\n */\n function deprecateFixMarkup(arg) {\n deprecated(\"10.2.0\", \"fixMarkup will be removed entirely in v11.0\");\n deprecated(\"10.2.0\", \"Please see https://github.com/highlightjs/highlight.js/issues/2534\");\n\n return fixMarkup(arg);\n }\n\n /**\n *\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n fixMarkup: deprecateFixMarkup,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n requireLanguage,\n autoDetection,\n inherit: inherit$1,\n addPlugin,\n // plugins for frameworks\n vuePlugin: BuildVuePlugin(hljs).VuePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreezeEs6(MODES[key]);\n }\n }\n\n // merge all the modes/regexs into our main object\n Object.assign(hljs, MODES);\n\n // built-in plugins, likely to be moved out of core in the future\n hljs.addPlugin(brPlugin); // slated to be removed in v11\n hljs.addPlugin(mergeHTMLPlugin);\n hljs.addPlugin(tabReplacePlugin);\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\n","'use strict'\n\nvar formatter = require('format')\n\nvar fault = create(Error)\n\nmodule.exports = fault\n\nfault.eval = create(EvalError)\nfault.range = create(RangeError)\nfault.reference = create(ReferenceError)\nfault.syntax = create(SyntaxError)\nfault.type = create(TypeError)\nfault.uri = create(URIError)\n\nfault.create = create\n\n// Create a new `EConstructor`, with the formatted `format` as a first argument.\nfunction create(EConstructor) {\n FormattedError.displayName = EConstructor.displayName || EConstructor.name\n\n return FormattedError\n\n function FormattedError(format) {\n if (format) {\n format = formatter.apply(null, arguments)\n }\n\n return new EConstructor(format)\n }\n}\n","//\n// format - printf-like string formatting for JavaScript\n// github.com/samsonjs/format\n// @_sjs\n//\n// Copyright 2010 - 2013 Sami Samhuri <sami@samhuri.net>\n//\n// MIT License\n// http://sjs.mit-license.org\n//\n\n;(function() {\n\n //// Export the API\n var namespace;\n\n // CommonJS / Node module\n if (typeof module !== 'undefined') {\n namespace = module.exports = format;\n }\n\n // Browsers and other environments\n else {\n // Get the global object. Works in ES3, ES5, and ES5 strict mode.\n namespace = (function(){ return this || (1,eval)('this') }());\n }\n\n namespace.format = format;\n namespace.vsprintf = vsprintf;\n\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n namespace.printf = printf;\n }\n\n function printf(/* ... */) {\n console.log(format.apply(null, arguments));\n }\n\n function vsprintf(fmt, replacements) {\n return format.apply(null, [fmt].concat(replacements));\n }\n\n function format(fmt) {\n var argIndex = 1 // skip initial format argument\n , args = [].slice.call(arguments)\n , i = 0\n , n = fmt.length\n , result = ''\n , c\n , escaped = false\n , arg\n , tmp\n , leadingZero = false\n , precision\n , nextArg = function() { return args[argIndex++]; }\n , slurpNumber = function() {\n var digits = '';\n while (/\\d/.test(fmt[i])) {\n digits += fmt[i++];\n c = fmt[i];\n }\n return digits.length > 0 ? parseInt(digits) : null;\n }\n ;\n for (; i < n; ++i) {\n c = fmt[i];\n if (escaped) {\n escaped = false;\n if (c == '.') {\n leadingZero = false;\n c = fmt[++i];\n }\n else if (c == '0' && fmt[i + 1] == '.') {\n leadingZero = true;\n i += 2;\n c = fmt[i];\n }\n else {\n leadingZero = true;\n }\n precision = slurpNumber();\n switch (c) {\n case 'b': // number in binary\n result += parseInt(nextArg(), 10).toString(2);\n break;\n case 'c': // character\n arg = nextArg();\n if (typeof arg === 'string' || arg instanceof String)\n result += arg;\n else\n result += String.fromCharCode(parseInt(arg, 10));\n break;\n case 'd': // number in decimal\n result += parseInt(nextArg(), 10);\n break;\n case 'f': // floating point number\n tmp = String(parseFloat(nextArg()).toFixed(precision || 6));\n result += leadingZero ? tmp : tmp.replace(/^0/, '');\n break;\n case 'j': // JSON\n result += JSON.stringify(nextArg());\n break;\n case 'o': // number in octal\n result += '0' + parseInt(nextArg(), 10).toString(8);\n break;\n case 's': // string\n result += nextArg();\n break;\n case 'x': // lowercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16);\n break;\n case 'X': // uppercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase();\n break;\n default:\n result += c;\n break;\n }\n } else if (c === '%') {\n escaped = true;\n } else {\n result += c;\n }\n }\n return result;\n }\n\n}());\n","/*\nLanguage: 1C:Enterprise\nAuthor: Stanislav Belov <stbelov@gmail.com>\nDescription: built-in language 1C:Enterprise (v7, v8)\nCategory: enterprise\n*/\n\nfunction _1c(hljs) {\n\n // общий паттерн Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð²\n var UNDERSCORE_IDENT_RE = '[A-Za-zÐ-Яа-ÑÑ‘Ð_][A-Za-zÐ-Яа-ÑÑ‘Ð_0-9]+';\n\n // v7 уникальные ключевые Ñлова, отÑутÑтвующие в v8 ==> keyword\n var v7_keywords =\n 'далее ';\n\n // v8 ключевые Ñлова ==> keyword\n var v8_keywords =\n 'возврат вызватьиÑключение выполнить Ð´Ð»Ñ ÐµÑли и из или иначе иначееÑли иÑключение каждого конецеÑли ' +\n 'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл ÑкÑпорт ';\n\n // keyword : ключевые Ñлова\n var KEYWORD = v7_keywords + v8_keywords;\n\n // v7 уникальные директивы, отÑутÑтвующие в v8 ==> meta-keyword\n var v7_meta_keywords =\n 'загрузитьизфайла ';\n\n // v8 ключевые Ñлова в инÑтрукциÑÑ… препроцеÑÑора, директивах компилÑции, аннотациÑÑ… ==> meta-keyword\n var v8_meta_keywords =\n 'вебклиент вмеÑто внешнееÑоединение клиент конецоблаÑти мобильноеприложениеклиент мобильноеприложениеÑервер ' +\n 'наклиенте наклиентенаÑервере наклиентенаÑерверебезконтекÑта наÑервере наÑерверебезконтекÑта облаÑть перед ' +\n 'поÑле Ñервер толÑтыйклиентобычноеприложение толÑтыйклиентуправлÑемоеприложение тонкийклиент ';\n\n // meta-keyword : ключевые Ñлова в инÑтрукциÑÑ… препроцеÑÑора, директивах компилÑции, аннотациÑÑ…\n var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;\n\n // v7 ÑиÑтемные конÑтанты ==> built_in\n var v7_system_constants =\n 'разделительÑтраниц разделительÑтрок ÑимволтабулÑции ';\n\n // v7 уникальные методы глобального контекÑта, отÑутÑтвующие в v8 ==> built_in\n var v7_global_context_methods =\n 'ansitooem oemtoansi ввеÑтивидÑубконто ввеÑтиперечиÑление ввеÑтипериод ввеÑтипланÑчетов выбранныйпланÑчетов ' +\n 'датагод датамеÑÑц датачиÑло заголовокÑиÑтемы значениевÑтроку значениеизÑтроки каталогиб ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ' +\n 'кодÑимв конгода конецпериодаби конецраÑÑчитанногопериодаби конецÑтандартногоинтервала конквартала конмеÑÑца ' +\n 'коннедели лог лог10 макÑимальноеколичеÑтвоÑубконто названиеинтерфейÑа названиенабораправ назначитьвид ' +\n 'назначитьÑчет найтиÑÑылки началопериодаби началоÑтандартногоинтервала начгода начквартала начмеÑÑца ' +\n 'начнедели номерднÑгода номерднÑнедели номернеделигода Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾ÑновнойжурналраÑчетов ' +\n 'оÑновнойпланÑчетов оÑновнойÑзык очиÑтитьокноÑообщений периодÑтр получитьвремÑта получитьдатута ' +\n 'получитьдокументта получитьзначениÑотбора получитьпозициюта получитьпуÑтоезначение получитьта ' +\n 'префикÑавтонумерации пропиÑÑŒ пуÑтоезначение разм разобратьпозициюдокумента раÑÑчитатьрегиÑтрына ' +\n 'раÑÑчитатьрегиÑтрыпо Ñимв Ñоздатьобъект ÑтатуÑвозврата ÑтрколичеÑтвоÑтрок Ñформироватьпозициюдокумента ' +\n 'Ñчетпокоду Ñ‚ÐµÐºÑƒÑ‰ÐµÐµÐ²Ñ€ÐµÐ¼Ñ Ñ‚Ð¸Ð¿Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÑÑтр уÑтановитьтана уÑтановитьтапо фикÑшаблон шаблон ';\n\n // v8 методы глобального контекÑта ==> built_in\n var v8_global_context_methods =\n 'acos asin atan base64значение base64Ñтрока cos exp log log10 pow sin sqrt tan xmlзначение xmlÑтрока ' +\n 'xmlтип xmlтипзнч активноеокно безопаÑныйрежим безопаÑныйрежимразделениÑданных булево ввеÑтидату ввеÑтизначение ' +\n 'ввеÑтиÑтроку ввеÑтичиÑло возможноÑтьчтениÑxml Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð²Ð¾ÑÑтановитьзначение врег выгрузитьжурналрегиÑтрации ' +\n 'Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÑƒÐ¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒÐ¿Ñ€Ð¾Ð²ÐµÑ€ÐºÑƒÐ¿Ñ€Ð°Ð²Ð´Ð¾Ñтупа вычиÑлить год данныеформывзначение дата день деньгода ' +\n 'деньнедели добавитьмеÑÑц заблокироватьданныедлÑÑ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒÑ€Ð°Ð±Ð¾Ñ‚ÑƒÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒÑ€Ð°Ð±Ð¾Ñ‚ÑƒÑиÑтемы ' +\n 'загрузитьвнешнююкомпоненту закрытьÑправку запиÑатьjson запиÑатьxml запиÑатьдатуjson запиÑьжурналарегиÑтрации ' +\n 'заполнитьзначениÑÑвойÑтв запроÑÐ¸Ñ‚ÑŒÑ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð·Ð°Ð¿ÑƒÑтитьприложение запуÑтитьÑиÑтему зафикÑироватьтранзакцию ' +\n 'значениевданныеформы значениевÑтрокувнутр значениевфайл значениезаполнено значениеизÑтрокивнутр значениеизфайла ' +\n 'изxmlтипа импортмоделиxdto имÑкомпьютера имÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒÐ¿Ñ€ÐµÐ´Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹ÐµÐ´Ð°Ð½Ð½Ñ‹Ðµ информациÑобошибке ' +\n 'каталогбиблиотекимобильногоуÑтройÑтва каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьÑтроку ' +\n 'кодлокализацииинформационнойбазы кодÑимвола командаÑиÑтемы конецгода ÐºÐ¾Ð½ÐµÑ†Ð´Ð½Ñ ÐºÐ¾Ð½ÐµÑ†ÐºÐ²Ð°Ñ€Ñ‚Ð°Ð»Ð° конецмеÑÑца конецминуты ' +\n 'конецнедели конецчаÑа конфигурациÑбазыданныхизмененадинамичеÑки конфигурациÑизменена копироватьданныеформы ' +\n 'копироватьфайл краткоепредÑтавлениеошибки лев Ð¼Ð°ÐºÑ Ð¼ÐµÑÑ‚Ð½Ð¾ÐµÐ²Ñ€ÐµÐ¼Ñ Ð¼ÐµÑÑц мин минута монопольныйрежим найти ' +\n 'найтинедопуÑтимыеÑимволыxml найтиокнопонавигационнойÑÑылке найтипомеченныенаудаление найтипоÑÑылкам найтифайлы ' +\n 'началогода Ð½Ð°Ñ‡Ð°Ð»Ð¾Ð´Ð½Ñ Ð½Ð°Ñ‡Ð°Ð»Ð¾ÐºÐ²Ð°Ñ€Ñ‚Ð°Ð»Ð° началомеÑÑца началоминуты началонедели началочаÑа начатьзапроÑразрешениÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ' +\n 'начатьзапуÑÐºÐ¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°Ñ‡Ð°Ñ‚ÑŒÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÑ„Ð°Ð¹Ð»Ð° начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +\n 'начатьподключениераÑширениÑработыÑкриптографией начатьподключениераÑширениÑработыÑфайлами начатьпоиÑкфайлов ' +\n 'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов Ð½Ð°Ñ‡Ð°Ñ‚ÑŒÐ¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸ÐµÑ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ…Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ' +\n 'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьÑозданиедвоичныхданныхизфайла начатьÑозданиекаталога ' +\n 'начатьтранзакцию начатьудалениефайлов начатьуÑтановкувнешнейкомпоненты начатьуÑтановкураÑширениÑработыÑкриптографией ' +\n 'начатьуÑтановкураÑширениÑработыÑфайлами неделÑгода необходимоÑтьзавершениÑÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€ÑеанÑаинформационнойбазы ' +\n 'номерÑоединениÑинформационнойбазы нрег нÑтр Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒÐ¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒÐ½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸ÑŽÐ¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð² обновитьповторноиÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ñ‹ÐµÐ·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ' +\n 'обработкапрерываниÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ð¸Ñ‚ÑŒÑ„Ð°Ð¹Ð»Ñ‹ окр опиÑаниеошибки оповеÑтить оповеÑтитьобизменении ' +\n 'отключитьобработчикзапроÑанаÑÑ‚Ñ€Ð¾ÐµÐºÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ' +\n 'открытьзначение открытьиндекÑÑправки открытьÑодержаниеÑправки открытьÑправку открытьформу открытьформумодально ' +\n 'отменитьтранзакцию очиÑтитьжурналрегиÑтрации очиÑтитьнаÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‡Ð¸ÑтитьÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹Ð´Ð¾Ñтупа ' +\n 'перейтипонавигационнойÑÑылке перемеÑтитьфайл подключитьвнешнююкомпоненту ' +\n 'подключитьобработчикзапроÑанаÑÑ‚Ñ€Ð¾ÐµÐºÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ ' +\n 'подключитьраÑширениеработыÑкриптографией подключитьраÑширениеработыÑфайлами подробноепредÑтавлениеошибки ' +\n 'показатьвводдаты Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ²Ð²Ð¾Ð´Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ²Ð²Ð¾Ð´Ñтроки показатьвводчиÑла Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ²Ð¾Ð¿Ñ€Ð¾Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ ' +\n 'показатьинформациюобошибке показатьнакарте Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸ÐµÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒÐ¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ðµ полноеимÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ' +\n 'получитьcomобъект получитьxmlтип получитьадреÑпомеÑтоположению получитьблокировкуÑеанÑов получитьвремÑзавершениÑÑпÑщегоÑеанÑа ' +\n 'получитьвремÑзаÑыпаниÑпаÑÑивногоÑеанÑа получитьвремÑожиданиÑблокировкиданных получитьданныевыбора ' +\n 'Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ´Ð¾Ð¿ÑƒÑтимыекодылокализации получитьдопуÑтимыечаÑовыепоÑÑа ' +\n 'получитьзаголовокклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾ÐºÑиÑтемы получитьзначениÑотборажурналарегиÑтрации ' +\n 'получитьидентификаторконфигурации получитьизвременногохранилища получитьимÑвременногофайла ' +\n 'получитьимÑÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÑŽÑкрановклиента получитьиÑпользованиежурналарегиÑтрации ' +\n 'получитьиÑпользованиеÑобытиÑжурналарегиÑтрации Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐºÑ€Ð°Ñ‚ÐºÐ¸Ð¹Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾ÐºÐ¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÐ¼Ð°ÐºÐµÑ‚Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ ' +\n 'получитьмаÑкувÑефайлы получитьмаÑкувÑефайлыклиента получитьмаÑкувÑефайлыÑервера получитьмеÑтоположениепоадреÑу ' +\n 'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюÑÑылку получитьнавигационнуюÑÑылкуинформационнойбазы ' +\n 'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +\n 'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопаÑногорежима ' +\n 'получитьпараметрыфункциональныхопцийинтерфейÑа получитьполноеимÑÐ¿Ñ€ÐµÐ´Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð¾Ð³Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ' +\n 'получитьпредÑтавлениÑнавигационныхÑÑылок получитьпроверкуÑложноÑтипаролейпользователей получитьразделительпути ' +\n 'получитьразделительпутиклиента получитьразделительпутиÑервера получитьÑеанÑыинформационнойбазы ' +\n 'получитьÑкороÑтьклиентÑкогоÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒÑоединениÑинформационнойбазы получитьÑообщениÑпользователю ' +\n 'получитьÑоответÑтвиеобъектаиформы получитьÑоÑтавÑтандартногоинтерфейÑаodata получитьÑтруктурухранениÑбазыданных ' +\n 'получитьтекущийÑеанÑинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +\n 'получитьфункциональнуюопциюинтерфейÑа получитьчаÑовойпоÑÑинформационнойбазы Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ð¸Ð¾Ñ Ð¿Ð¾Ð¼ÐµÑтитьвовременноехранилище ' +\n 'помеÑтитьфайл помеÑтитьфайлы прав праводоÑтупа предопределенноезначение предÑтавлениекодалокализации предÑтавлениепериода ' +\n 'предÑтавлениеправа предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´ÑтавлениеÑобытиÑжурналарегиÑтрации предÑтавлениечаÑовогопоÑÑа предупреждение ' +\n 'прекратитьработуÑиÑтемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пуÑтаÑÑтрока ' +\n 'Ñ€Ð°Ð±Ð¾Ñ‡Ð¸Ð¹ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð´Ð°Ð½Ð½Ñ‹Ñ…Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ€Ð°Ð·Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒÐ´Ð°Ð½Ð½Ñ‹ÐµÐ´Ð»ÑÑ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÑŒÑ„Ð°Ð¹Ð» разорватьÑоединениеÑвнешнимиÑточникомданных ' +\n 'раÑкодироватьÑтроку рольдоÑтупна Ñекунда Ñигнал Ñимвол ÑкопироватьжурналрегиÑтрации Ñмещениелетнеговремени ' +\n 'ÑмещениеÑтандартноговремени Ñоединитьбуферыдвоичныхданных Ñоздатькаталог Ñоздатьфабрикуxdto Ñокрл Ñокрлп Ñокрп Ñообщить ' +\n 'ÑоÑтоÑние Ñохранитьзначение ÑохранитьнаÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñред Ñтрдлина ÑтрзаканчиваетÑÑна Ñтрзаменить Ñтрнайти ÑтрначинаетÑÑÑ ' +\n 'Ñтрока ÑтрокаÑоединениÑинформационнойбазы ÑтрполучитьÑтроку Ñтрразделить ÑтрÑоединить ÑтрÑравнить ÑтрчиÑловхождений '+\n 'ÑтрчиÑлоÑтрок Ñтршаблон текущаÑдата текущаÑдатаÑеанÑа текущаÑуниверÑальнаÑдата текущаÑуниверÑальнаÑдатавмиллиÑекундах ' +\n 'текущийвариантинтерфейÑаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¾ÑновногошрифтаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¹ÐºÐ¾Ð´Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ ' +\n 'текущийрежимзапуÑка текущийÑзык текущийÑзыкÑиÑтемы тип типзнч транзакциÑактивна трег удалитьданныеинформационнойбазы ' +\n 'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универÑÐ°Ð»ÑŒÐ½Ð¾ÐµÐ²Ñ€ÐµÐ¼Ñ ÑƒÑтановитьбезопаÑныйрежим ' +\n 'уÑтановитьбезопаÑныйрежимразделениÑданных уÑтановитьблокировкуÑеанÑов уÑтановитьвнешнююкомпоненту ' +\n 'уÑтановитьвремÑзавершениÑÑпÑщегоÑеанÑа уÑтановитьвремÑзаÑыпаниÑпаÑÑивногоÑеанÑа уÑтановитьвремÑожиданиÑблокировкиданных ' +\n 'уÑтановитьзаголовокклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑƒÑтановитьзаголовокÑиÑтемы уÑтановитьиÑпользованиежурналарегиÑтрации ' +\n 'уÑтановитьиÑпользованиеÑобытиÑжурналарегиÑтрации уÑÑ‚Ð°Ð½Ð¾Ð²Ð¸Ñ‚ÑŒÐºÑ€Ð°Ñ‚ÐºÐ¸Ð¹Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾ÐºÐ¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ' +\n 'уÑтановитьминимальнуюдлинупаролейпользователей уÑтановитьмонопольныйрежим уÑтановитьнаÑÑ‚Ñ€Ð¾Ð¹ÐºÐ¸ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð°Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ' +\n 'уÑтановитьобновлениепредопределенныхданныхинформационнойбазы уÑтановитьотключениебезопаÑногорежима ' +\n 'уÑтановитьпараметрыфункциональныхопцийинтерфейÑа уÑтановитьпривилегированныйрежим ' +\n 'уÑтановитьпроверкуÑложноÑтипаролейпользователей уÑтановитьраÑширениеработыÑкриптографией ' +\n 'уÑтановитьраÑширениеработыÑфайлами уÑтановитьÑоединениеÑвнешнимиÑточникомданных уÑтановитьÑоответÑтвиеобъектаиформы ' +\n 'уÑтановитьÑоÑтавÑтандартногоинтерфейÑаodata уÑтановитьчаÑовойпоÑÑинформационнойбазы уÑтановитьчаÑовойпоÑÑÑеанÑа ' +\n 'формат цел Ñ‡Ð°Ñ Ñ‡Ð°ÑовойпоÑÑ Ñ‡Ð°ÑовойпоÑÑÑеанÑа чиÑло чиÑлопропиÑью ÑтоадреÑвременногохранилища ';\n\n // v8 ÑвойÑтва глобального контекÑта ==> built_in\n var v8_global_context_property =\n 'wsÑÑылки библиотекакартинок библиотекамакетовоформлениÑкомпоновкиданных библиотекаÑтилей бизнеÑпроцеÑÑÑ‹ ' +\n 'внешниеиÑточникиданных внешниеобработки внешниеотчеты вÑтроенныепокупки Ð³Ð»Ð°Ð²Ð½Ñ‹Ð¹Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð³Ð»Ð°Ð²Ð½Ñ‹Ð¹Ñтиль ' +\n 'документы доÑтавлÑÐµÐ¼Ñ‹ÐµÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñ‹Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² задачи информациÑобинтернетÑоединении иÑпользованиерабочейдаты ' +\n 'иÑториÑÑ€Ð°Ð±Ð¾Ñ‚Ñ‹Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ¾Ð½Ñтанты критерииотбора метаданные обработки отображениерекламы отправкадоÑтавлÑемыхуведомлений ' +\n 'отчеты Ð¿Ð°Ð½ÐµÐ»ÑŒÐ·Ð°Ð´Ð°Ñ‡Ð¾Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð·Ð°Ð¿ÑƒÑка параметрыÑеанÑа перечиÑÐ»ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð½Ñ‹Ð²Ð¸Ð´Ð¾Ð²Ñ€Ð°Ñчета планывидовхарактериÑтик ' +\n 'планыобмена планыÑчетов полнотекÑтовыйпоиÑк пользователиинформационнойбазы поÑледовательноÑти проверкавÑтроенныхпокупок ' +\n 'рабочаÑдата раÑширениÑконфигурации региÑтрыбухгалтерии региÑÑ‚Ñ€Ñ‹Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ³Ð¸ÑтрыраÑчета региÑтрыÑведений ' +\n 'Ñ€ÐµÐ³Ð»Ð°Ð¼ÐµÐ½Ñ‚Ð½Ñ‹ÐµÐ·Ð°Ð´Ð°Ð½Ð¸Ñ Ñериализаторxdto Ñправочники ÑредÑÑ‚Ð²Ð°Ð³ÐµÐ¾Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑредÑтвакриптографии ÑредÑтвамультимедиа ' +\n 'ÑредÑтваотображениÑрекламы ÑредÑтвапочты ÑредÑтвателефонии фабрикаxdto файловыепотоки Ñ„Ð¾Ð½Ð¾Ð²Ñ‹ÐµÐ·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰Ð°Ð½Ð°Ñтроек ' +\n 'хранилищевариантовотчетов хранилищенаÑтроекданныхформ хранилищеобщихнаÑтроек хранилищепользовательÑкихнаÑтроекдинамичеÑкихÑпиÑков ' +\n 'хранилищепользовательÑкихнаÑтроекотчетов хранилищеÑиÑтемныхнаÑтроек ';\n\n // built_in : вÑтроенные или библиотечные объекты (конÑтанты, клаÑÑÑ‹, функции)\n var BUILTIN =\n v7_system_constants +\n v7_global_context_methods + v8_global_context_methods +\n v8_global_context_property;\n\n // v8 ÑиÑтемные наборы значений ==> class\n var v8_system_sets_of_values =\n 'webцвета windowsцвета windowsшрифты библиотекакартинок рамкиÑÑ‚Ð¸Ð»Ñ Ñимволы цветаÑÑ‚Ð¸Ð»Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ‹ÑÑ‚Ð¸Ð»Ñ ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - интерфейÑные ==> class\n var v8_system_enums_interface =\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 'положениешкалывремени порÑдокотображениÑточекгоризонтальнойгиÑтограммы порÑдокÑерийвлегендедиаграммы ' +\n 'размеркартинки раÑположениезаголовкашкалыдиаграммы раÑÑ‚Ñгиваниеповертикалидиаграммыганта ' +\n 'режимавтоотображениÑÑоÑтоÑÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð²Ð²Ð¾Ð´Ð°Ñтроктаблицы режимвыборанезаполненного режимвыделениÑдаты ' +\n 'режимвыделениÑÑтрокитаблицы режимвыделениÑтаблицы режимизменениÑразмера режимизменениÑÑвÑÐ·Ð°Ð½Ð½Ð¾Ð³Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ' +\n 'режимиÑпользованиÑдиалогапечати режимиÑпользованиÑпараметракоманды режиммаÑштабированиÑпроÑмотра ' +\n 'режимоÑновногоокнаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñокнаформы режимотображениÑÐ²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ ' +\n 'режимотображениÑгеографичеÑкойÑхемы режимотображениÑзначенийÑерии режимотриÑовкиÑеткиграфичеÑкойÑхемы ' +\n 'режимполупрозрачноÑтидиаграммы режимпробеловдиаграммы режимразмещениÑнаÑтранице режимредактированиÑколонки ' +\n 'режимÑглаживаниÑдиаграммы режимÑглаживаниÑиндикатора режимÑпиÑказадач Ñквозноевыравнивание ' +\n 'ÑохранениеданныхформывнаÑтройках ÑпоÑобзаполнениÑтекÑтазаголовкашкалыдиаграммы ' +\n 'ÑпоÑобопределениÑограничивающегозначениÑдиаграммы ÑтандартнаÑгруппакоманд Ñтандартноеоформление ' +\n 'ÑтатуÑоповещениÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑтильÑтрелки типаппрокÑимациилиниитрендадиаграммы типдиаграммы ' +\n 'типединицышкалывремени типимпортаÑерийÑлоÑгеографичеÑкойÑхемы типлиниигеографичеÑкойÑхемы типлиниидиаграммы ' +\n 'типмаркерагеографичеÑкойÑхемы типмаркерадиаграммы типоблаÑÑ‚Ð¸Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ ' +\n 'типорганизациииÑточникаданныхгеографичеÑкойÑхемы типотображениÑÑерииÑлоÑгеографичеÑкойÑхемы ' +\n 'типотображениÑточечногообъектагеографичеÑкойÑхемы типотображениÑшкалыÑлементалегендыгеографичеÑкойÑхемы ' +\n 'типпоиÑкаобъектовгеографичеÑкойÑхемы типпроекциигеографичеÑкойÑхемы типразмещениÑизмерений ' +\n 'типразмещениÑреквизитовизмерений типрамкиÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ñводнойдиаграммы ' +\n 'типÑвÑзидиаграммыганта типÑоединениÑзначенийпоÑериÑмдиаграммы типÑоединениÑточекдиаграммы ' +\n 'типÑоединительнойлинии типÑтороныÑлементаграфичеÑкойÑхемы типформыотчета типшкалырадарнойдиаграммы ' +\n 'факторлиниитрендадиаграммы фигуракнопки фигурыграфичеÑкойÑхемы фикÑациÑвтаблице форматднÑшкалывремени ' +\n 'форматкартинки ширинаподчиненныхÑлементовформы ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - ÑвойÑтва прикладных объектов ==> class\n var v8_system_enums_objects_properties =\n 'виддвижениÑбухгалтерии виддвижениÑÐ½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ð¿ÐµÑ€Ð¸Ð¾Ð´Ð°Ñ€ÐµÐ³Ð¸ÑтрараÑчета видÑчета видточкимаршрутабизнеÑпроцеÑÑа ' +\n 'иÑпользованиеагрегатарегиÑÑ‚Ñ€Ð°Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ñ Ð¸ÑпользованиегруппиÑлементов иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸ÐµÑ€ÐµÐ¶Ð¸Ð¼Ð°Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ' +\n 'иÑпользованиеÑреза периодичноÑтьагрегатарегиÑÑ‚Ñ€Ð°Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð°Ð²Ñ‚Ð¾Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð·Ð°Ð¿Ð¸Ñидокумента режимпроведениÑдокумента ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - планы обмена ==> class\n var v8_system_enums_exchange_plans =\n 'авторегиÑтрациÑизменений допуÑтимыйномерÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ°Ñлементаданных получениеÑлементаданных ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - табличный документ ==> class\n var v8_system_enums_tabular_document =\n 'иÑпользованиераÑшифровкитабличногодокумента ориентациÑÑтраницы положениеитоговколонокÑводнойтаблицы ' +\n 'положениеитоговÑтрокÑводнойтаблицы положениетекÑтаотноÑительнокартинки раÑположениезаголовкагруппировкитабличногодокумента ' +\n 'ÑпоÑобчтениÑзначенийтабличногодокумента типдвуÑтороннейпечати типзаполнениÑоблаÑтитабличногодокумента ' +\n 'типкурÑоровтабличногодокумента типлиниириÑункатабличногодокумента типлинииÑчейкитабличногодокумента ' +\n 'типнаправлениÑпереходатабличногодокумента типотображениÑвыделениÑтабличногодокумента типотображениÑлинийÑводнойтаблицы ' +\n 'типразмещениÑтекÑтатабличногодокумента типриÑункатабличногодокумента типÑмещениÑтабличногодокумента ' +\n 'типузоратабличногодокумента типфайлатабличногодокумента точноÑтьпечати чередованиераÑположениÑÑтраниц ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - планировщик ==> class\n var v8_system_enums_sheduler =\n 'отображениевремениÑлементовпланировщика ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - форматированный документ ==> class\n var v8_system_enums_formatted_document =\n 'типфайлаформатированногодокумента ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - Ð·Ð°Ð¿Ñ€Ð¾Ñ ==> class\n var v8_system_enums_query =\n 'обходрезультатазапроÑа типзапиÑизапроÑа ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - поÑтроитель отчета ==> class\n var v8_system_enums_report_builder =\n 'видзаполнениÑраÑшифровкипоÑтроителÑотчета типдобавлениÑпредÑтавлений типизмерениÑпоÑтроителÑотчета типразмещениÑитогов ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - работа Ñ Ñ„Ð°Ð¹Ð»Ð°Ð¼Ð¸ ==> class\n var v8_system_enums_files =\n 'доÑтупкфайлу режимдиалогавыборафайла режимоткрытиÑфайла ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - поÑтроитель запроÑа ==> class\n var v8_system_enums_query_builder =\n 'типизмерениÑпоÑтроителÑзапроÑа ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - анализ данных ==> class\n var v8_system_enums_data_analysis =\n 'видданныханализа методклаÑтеризации типединицыинтервалавременианализаданных типзаполнениÑтаблицырезультатаанализаданных ' +\n 'типиÑпользованиÑчиÑловыхзначенийанализаданных типиÑточникаданныхпоиÑкааÑÑоциаций типколонкианализаданныхдереворешений ' +\n 'типколонкианализаданныхклаÑÑ‚ÐµÑ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ‚Ð¸Ð¿ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ñ…Ð¾Ð±Ñ‰Ð°ÑÑтатиÑтика типколонкианализаданныхпоиÑкаÑÑоциаций ' +\n 'типколонкианализаданныхпоиÑкпоÑледовательноÑтей типколонкимоделипрогноза типмерыраÑÑтоÑниÑанализаданных ' +\n 'типотÑечениÑправилаÑÑоциации типполÑанализаданных типÑтандартизациианализаданных типупорÑдочиваниÑправилаÑÑоциациианализаданных ' +\n 'типупорÑдочиваниÑшаблоновпоÑледовательноÑтейанализаданных типупрощениÑдереварешений ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - xml, json, xs, dom, xdto, web-ÑервиÑÑ‹ ==> class\n var v8_system_enums_xml_json_xs_dom_xdto_ws =\n 'wsнаправлениепараметра вариантxpathxs вариантзапиÑидатыjson вариантпроÑтоготипаxs видгруппымоделиxs видфаÑетаxdto ' +\n 'дейÑтвиепоÑтроителÑdom завершенноÑтьпроÑтоготипаxs завершенноÑтьÑоÑтавноготипаxs завершенноÑтьÑхемыxs запрещенныеподÑтановкиxs ' +\n 'иÑключениÑгруппподÑтановкиxs категориÑиÑпользованиÑатрибутаxs категориÑограничениÑидентичноÑтиxs категориÑограничениÑпроÑтранÑтвименxs ' +\n 'методнаÑледованиÑxs модельÑодержимогоxs назначениетипаxml недопуÑтимыеподÑтановкиxs обработкапробельныхÑимволовxs обработкаÑодержимогоxs ' +\n 'ограничениезначениÑxs параметрыотбораузловdom переноÑÑтрокjson позициÑвдокументеdom пробельныеÑимволыxml типатрибутаxml типзначениÑjson ' +\n 'типканоничеÑкогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредÑтавлениÑxs ' +\n 'форматдатыjson ÑкранированиеÑимволовjson ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - ÑиÑтема компоновки данных ==> class\n var v8_system_enums_data_composition_system =\n 'видÑравнениÑкомпоновкиданных дейÑтвиеобработкираÑшифровкикомпоновкиданных направлениеÑортировкикомпоновкиданных ' +\n 'раÑположениевложенныхÑлементоврезультатакомпоновкиданных раÑположениеитоговкомпоновкиданных раÑположениегруппировкикомпоновкиданных ' +\n 'раÑположениеполейгруппировкикомпоновкиданных раÑположениеполÑкомпоновкиданных раÑположениереквизитовкомпоновкиданных ' +\n 'раÑположениереÑурÑовкомпоновкиданных типбухгалтерÑкогооÑтаткакомпоновкиданных типвыводатекÑтакомпоновкиданных ' +\n 'типгруппировкикомпоновкиданных типгруппыÑлементовотборакомпоновкиданных типдополнениÑпериодакомпоновкиданных ' +\n 'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаоблаÑтикомпоновкиданных типоÑтаткакомпоновкиданных ' +\n 'типпериодакомпоновкиданных типразмещениÑтекÑтакомпоновкиданных типÑвÑзинаборовданныхкомпоновкиданных типÑлементарезультатакомпоновкиданных ' +\n 'раÑположениелегендыдиаграммыкомпоновкиданных типприменениÑотборакомпоновкиданных режимотображениÑÑлементанаÑтройкикомпоновкиданных ' +\n 'режимотображениÑнаÑтроеккомпоновкиданных ÑоÑтоÑниеÑлементанаÑтройкикомпоновкиданных ÑпоÑобвоÑÑтановлениÑнаÑтроеккомпоновкиданных ' +\n 'режимкомпоновкирезультата иÑпользованиепараметракомпоновкиданных автопозициÑреÑурÑовкомпоновкиданных '+\n 'вариантиÑпользованиÑгруппировкикомпоновкиданных раÑположениереÑурÑоввдиаграммекомпоновкиданных фикÑациÑкомпоновкиданных ' +\n 'иÑпользованиеуÑловногооформлениÑкомпоновкиданных ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - почта ==> class\n var v8_system_enums_email =\n 'важноÑтьинтернетпочтовогоÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ°Ñ‚ÐµÐºÑтаинтернетпочтовогоÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑпоÑобкодированиÑÐ¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¿Ð¾Ñ‡Ñ‚Ð¾Ð²Ð¾Ð³Ð¾Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ' +\n 'ÑпоÑобкодированиÑнеasciiÑимволовинтернетпочтовогоÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ñ‚ÐµÐºÑтапочтовогоÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¸Ð½Ñ‚ÐµÑ€Ð½ÐµÑ‚Ð¿Ð¾Ñ‡Ñ‚Ñ‹ ' +\n 'ÑтатуÑразборапочтовогоÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - журнал региÑтрации ==> class\n var v8_system_enums_logbook =\n 'режимтранзакциизапиÑижурналарегиÑтрации ÑтатуÑтранзакциизапиÑижурналарегиÑтрации уровеньжурналарегиÑтрации ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ñ ==> class\n var v8_system_enums_cryptography =\n 'раÑположениехранилищаÑертификатовкриптографии режимвключениÑÑертификатовкриптографии режимпроверкиÑертификатакриптографии ' +\n 'типхранилищаÑертификатовкриптографии ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - ZIP ==> class\n var v8_system_enums_zip =\n 'кодировкаименфайловвzipфайле методÑжатиÑzip методшифрованиÑzip режимвоÑÑтановлениÑпутейфайловzip режимобработкиподкаталоговzip ' +\n 'режимÑохранениÑпутейzip уровеньÑжатиÑzip ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ -\n // Блокировка данных, Фоновые заданиÑ, Ðвтоматизированное теÑтирование,\n // ДоÑтавлÑемые уведомлениÑ, Ð’Ñтроенные покупки, Интернет, Работа Ñ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ данными ==> class\n var v8_system_enums_other =\n 'звуковоеоповещение направлениепереходакÑтроке позициÑвпотоке порÑдокбайтов режимблокировкиданных режимуправлениÑблокировкойданных ' +\n 'ÑервиÑвÑтроенныхпокупок ÑоÑтоÑÐ½Ð¸ÐµÑ„Ð¾Ð½Ð¾Ð²Ð¾Ð³Ð¾Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð¿Ð¾Ð´Ð¿Ð¸ÑчикадоÑтавлÑемыхуведомлений уровеньиÑпользованиÑзащищенногоÑоединениÑftp ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - Ñхема запроÑа ==> class\n var v8_system_enums_request_schema =\n 'направлениепорÑдкаÑхемызапроÑа типдополнениÑпериодамиÑхемызапроÑа типконтрольнойточкиÑхемызапроÑа типобъединениÑÑхемызапроÑа ' +\n 'типпараметрадоÑтупнойтаблицыÑхемызапроÑа типÑоединениÑÑхемызапроÑа ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - ÑвойÑтва объектов метаданных ==> class\n var v8_system_enums_properties_of_metadata_objects =\n 'httpметод автоиÑпользованиеобщегореквизита автопрефикÑномеразадачи вариантвÑтроенногоÑзыка видиерархии видрегиÑÑ‚Ñ€Ð°Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸Ñ ' +\n 'видтаблицывнешнегоиÑточникаданных запиÑьдвиженийприпроведении заполнениепоÑледовательноÑтей индекÑирование ' +\n 'иÑпользованиебазыпланавидовраÑчета иÑпользованиебыÑтроговыбора иÑпользованиеобщегореквизита иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¿Ð¾Ð´Ñ‡Ð¸Ð½ÐµÐ½Ð¸Ñ ' +\n 'иÑпользованиеполнотекÑтовогопоиÑка иÑпользованиеразделÑемыхданныхобщегореквизита иÑпользованиереквизита ' +\n 'назначениеиÑпользованиÑÐ¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÐµÑ€Ð°ÑширениÑконфигурации направлениепередачи обновлениепредопределенныхданных ' +\n 'оперативноепроведение оÑновноепредÑтавлениевидараÑчета оÑновноепредÑтавлениевидахарактериÑтики оÑновноепредÑтавлениезадачи ' +\n 'оÑновноепредÑтавлениепланаобмена оÑновноепредÑтавлениеÑправочника оÑновноепредÑтавлениеÑчета перемещениеграницыприпроведении ' +\n 'периодичноÑтьномерабизнеÑпроцеÑÑа периодичноÑтьномерадокумента периодичноÑтьрегиÑтрараÑчета периодичноÑтьрегиÑтраÑведений ' +\n 'повторноеиÑпользованиевозвращаемыхзначений полнотекÑтовыйпоиÑкпривводепоÑтроке принадлежноÑтьобъекта проведение ' +\n 'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениераÑширенийконфигурацииобщегореквизита '+\n 'режимавтонумерацииобъектов режимзапиÑирегиÑтра режимиÑпользованиÑмодальноÑти ' +\n 'режимиÑпользованиÑÑинхронныхвызововраÑширенийплатформыивнешнихкомпонент режимповторногоиÑпользованиÑÑеанÑов ' +\n 'режимполучениÑданныхвыборапривводепоÑтроке режимÑовмеÑтимоÑти режимÑовмеÑтимоÑтиинтерфейÑа ' +\n 'режимуправлениÑблокировкойданныхпоумолчанию ÑериикодовпланавидовхарактериÑтик ÑериикодовпланаÑчетов ' +\n 'ÑериикодовÑправочника Ñозданиепривводе ÑпоÑобвыбора ÑпоÑобпоиÑкаÑтрокипривводепоÑтроке ÑпоÑÐ¾Ð±Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ' +\n 'типданныхтаблицывнешнегоиÑточникаданных типкодапланавидовраÑчета типкодаÑправочника типмакета типномерабизнеÑпроцеÑÑа ' +\n 'типномерадокумента типномеразадачи типформы удалениедвижений ';\n\n // v8 ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ - разные ==> class\n var v8_system_enums_differents =\n 'важноÑтьпроблемыприменениÑраÑширениÑконфигурации вариантинтерфейÑаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ð¼Ð°ÑштабаформклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ' +\n 'вариантоÑновногошрифтаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ñтандартногопериода вариантÑтандартнойдатыначала видграницы видкартинки ' +\n 'видотображениÑполнотекÑтовогопоиÑка видрамки видÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´Ñ†Ð²ÐµÑ‚Ð° видчиÑÐ»Ð¾Ð²Ð¾Ð³Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð¸Ð´ÑˆÑ€Ð¸Ñ„Ñ‚Ð° допуÑтимаÑдлина допуÑтимыйзнак ' +\n 'иÑпользованиеbyteordermark иÑпользованиеметаданныхполнотекÑтовогопоиÑка иÑточникраÑширенийконфигурации клавиша кодвозвратадиалога ' +\n 'кодировкаxbase кодировкатекÑта направлениепоиÑка направлениеÑортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +\n 'отображениепанелиразделов Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ°Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð´Ð¸Ð°Ð»Ð¾Ð³Ð°Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð·Ð°Ð¿ÑƒÑкаклиентÑÐºÐ¾Ð³Ð¾Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾ÐºÑ€ÑƒÐ³Ð»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸ÑÑ„Ð¾Ñ€Ð¼Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ' +\n 'режимполнотекÑтовогопоиÑка ÑкороÑтьклиентÑкогоÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑоÑтоÑниевнешнегоиÑточникаданных ÑоÑтоÑниеобновлениÑконфигурациибазыданных ' +\n 'ÑпоÑобвыбораÑертификатаwindows ÑпоÑобкодированиÑÑтроки ÑтатуÑÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ‹ типплатформы типповедениÑклавишиenter ' +\n 'типÑлементаинформацииовыполненииобновлениÑконфигурациибазыданных уровеньизолÑциитранзакций Ñ…ÐµÑˆÑ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ‡Ð°Ñтидаты';\n\n // class: вÑтроенные наборы значений, ÑиÑтемные перечиÑÐ»ÐµÐ½Ð¸Ñ (Ñодержат дочерние значениÑ, Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ðº которым через разыменование)\n var CLASS =\n v8_system_sets_of_values +\n v8_system_enums_interface +\n v8_system_enums_objects_properties +\n v8_system_enums_exchange_plans +\n v8_system_enums_tabular_document +\n v8_system_enums_sheduler +\n v8_system_enums_formatted_document +\n v8_system_enums_query +\n v8_system_enums_report_builder +\n v8_system_enums_files +\n v8_system_enums_query_builder +\n v8_system_enums_data_analysis +\n v8_system_enums_xml_json_xs_dom_xdto_ws +\n v8_system_enums_data_composition_system +\n v8_system_enums_email +\n v8_system_enums_logbook +\n v8_system_enums_cryptography +\n v8_system_enums_zip +\n v8_system_enums_other +\n v8_system_enums_request_schema +\n v8_system_enums_properties_of_metadata_objects +\n v8_system_enums_differents;\n\n // v8 общие объекты (у объектов еÑть конÑтруктор, ÑкземплÑры ÑоздаютÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð¼ ÐОВЫЙ) ==> type\n var v8_shared_object =\n 'comобъект ftpÑоединение httpÐ·Ð°Ð¿Ñ€Ð¾Ñ httpÑервиÑответ httpÑоединение wsÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ wsпрокÑи xbase анализданных аннотациÑxs ' +\n 'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторÑлучайныхчиÑел географичеÑкаÑÑхема ' +\n 'географичеÑкиекоординаты графичеÑкаÑÑхема группамоделиxs данныераÑшифровкикомпоновкиданных двоичныеданные дендрограмма ' +\n 'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограÑпиÑаниÑÑ€ÐµÐ³Ð»Ð°Ð¼ÐµÐ½Ñ‚Ð½Ð¾Ð³Ð¾Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ' +\n 'диалогредактированиÑÑтандартногопериода диапазон документdom документhtml документациÑxs доÑтавлÑемоеуведомление ' +\n 'запиÑÑŒdom запиÑÑŒfastinfoset запиÑÑŒhtml запиÑÑŒjson запиÑÑŒxml запиÑÑŒzipфайла запиÑьданных запиÑьтекÑта запиÑьузловdom ' +\n 'Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð·Ð°Ñ‰Ð¸Ñ‰ÐµÐ½Ð½Ð¾ÐµÑоединениеopenssl значениÑполейраÑшифровкикомпоновкиданных извлечениетекÑта импортxs интернетпочта ' +\n 'интернетпочтовоеÑообщение интернетпочтовыйпрофиль интернетпрокÑи интернетÑоединение информациÑдлÑприложениÑxs ' +\n 'иÑпользованиеатрибутаxs иÑпользованиеÑобытиÑжурналарегиÑтрации иÑточникдоÑтупныхнаÑтроеккомпоновкиданных ' +\n 'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыÑтроки квалификаторычиÑла ' +\n 'компоновщикмакетакомпоновкиданных компоновщикнаÑтроеккомпоновкиданных конÑтруктормакетаоформлениÑкомпоновкиданных ' +\n 'конÑтрукторнаÑтроеккомпоновкиданных конÑтрукторформатнойÑтроки Ð»Ð¸Ð½Ð¸Ñ Ð¼Ð°ÐºÐµÑ‚ÐºÐ¾Ð¼Ð¿Ð¾Ð½Ð¾Ð²ÐºÐ¸Ð´Ð°Ð½Ð½Ñ‹Ñ… макетоблаÑтикомпоновкиданных ' +\n 'макетоформлениÑкомпоновкиданных маÑкаxs менеджеркриптографии наборÑхемxml наÑтройкикомпоновкиданных наÑтройкиÑериализацииjson ' +\n 'обработкакартинок обработкараÑшифровкикомпоновкиданных обходдереваdom объÑвлениеатрибутаxs объÑвлениенотацииxs ' +\n 'объÑвлениеÑлементаxs опиÑаниеиÑпользованиÑÑобытиÑдоÑтупжурналарегиÑтрации ' +\n 'опиÑаниеиÑпользованиÑÑобытиÑотказвдоÑтупежурналарегиÑтрации опиÑаниеобработкираÑшифровкикомпоновкиданных ' +\n 'опиÑаниепередаваемогофайла опиÑаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +\n 'определениеограничениÑидентичноÑтиxs определениепроÑтоготипаxs определениеÑоÑтавноготипаxs определениетипадокументаdom ' +\n 'определениÑxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +\n 'параметрызапиÑиjson параметрызапиÑиxml параметрычтениÑxml переопределениеxs планировщик полеанализаданных ' +\n 'полекомпоновкиданных поÑтроительdom поÑтроительзапроÑа поÑтроительотчета поÑтроительотчетаанализаданных ' +\n 'поÑтроительÑхемxml поток потоквпамÑти почта почтовоеÑообщение преобразованиеxsl преобразованиекканоничеÑкомуxml ' +\n 'процеÑÑорвыводарезультатакомпоновкиданныхвколлекциюзначений процеÑÑорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +\n 'процеÑÑоркомпоновкиданных разыменовательпроÑтранÑтвименdom рамка раÑпиÑÐ°Ð½Ð¸ÐµÑ€ÐµÐ³Ð»Ð°Ð¼ÐµÐ½Ñ‚Ð½Ð¾Ð³Ð¾Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ€Ð°ÑширенноеимÑxml ' +\n 'результатчтениÑданных ÑводнаÑдиаграмма ÑвÑзьпараметравыбора ÑвÑзьпотипу ÑвÑзьпотипукомпоновкиданных Ñериализаторxdto ' +\n 'Ñертификатклиентаwindows Ñертификатклиентафайл Ñертификаткриптографии ÑертификатыудоÑтоверÑющихцентровwindows ' +\n 'ÑертификатыудоÑтоверÑющихцентровфайл Ñжатиеданных ÑиÑтемнаÑÐ¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ñообщениепользователю Ñочетаниеклавиш ' +\n 'Ñравнениезначений ÑтандартнаÑдатаначала Ñтандартныйпериод Ñхемаxml Ñхемакомпоновкиданных табличныйдокумент ' +\n 'текÑтовыйдокумент теÑтируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +\n 'фаÑетдлиныxs фаÑетколичеÑтваразрÑдовдробнойчаÑтиxs фаÑетмакÑимальноговключающегозначениÑxs ' +\n 'фаÑетмакÑимальногоиÑключающегозначениÑxs фаÑетмакÑимальнойдлиныxs фаÑетминимальноговключающегозначениÑxs ' +\n 'фаÑетминимальногоиÑключающегозначениÑxs фаÑетминимальнойдлиныxs фаÑетобразцаxs фаÑетобщегоколичеÑтваразрÑдовxs ' +\n 'фаÑетперечиÑлениÑxs фаÑетпробельныхÑимволовxs фильтрузловdom форматированнаÑÑтрока форматированныйдокумент ' +\n 'фрагментxs хешированиеданных Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ†Ð²ÐµÑ‚ чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +\n 'чтениеданных чтениетекÑта чтениеузловdom шрифт Ñлементрезультатакомпоновкиданных ';\n\n // v8 универÑальные коллекции значений ==> type\n var v8_universal_collection =\n 'comsafearray деревозначений маÑÑив ÑоответÑтвие ÑпиÑокзначений Ñтруктура таблицазначений фикÑированнаÑÑтруктура ' +\n 'фикÑированноеÑоответÑтвие фикÑированныймаÑÑив ';\n\n // type : вÑтроенные типы\n var TYPE =\n v8_shared_object +\n v8_universal_collection;\n\n // literal : примитивные типы\n var LITERAL = 'null иÑтина ложь неопределено';\n\n // number : чиÑла\n var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);\n\n // string : Ñтроки\n var STRINGS = {\n className: 'string',\n begin: '\"|\\\\|', end: '\"|$',\n contains: [{begin: '\"\"'}]\n };\n\n // number : даты\n var DATE = {\n begin: \"'\", end: \"'\", excludeBegin: true, excludeEnd: true,\n contains: [\n {\n className: 'number',\n begin: '\\\\d{4}([\\\\.\\\\\\\\/:-]?\\\\d{2}){0,5}'\n }\n ]\n };\n\n // comment : комментарии\n var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);\n\n // meta : инÑтрукции препроцеÑÑора, директивы компилÑции\n var META = {\n className: 'meta',\n\n begin: '#|&', end: '$',\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n 'meta-keyword': KEYWORD + METAKEYWORD\n },\n contains: [\n COMMENTS\n ]\n };\n\n // symbol : метка goto\n var SYMBOL = {\n className: 'symbol',\n begin: '~', end: ';|:', excludeEnd: true\n };\n\n // function : объÑвление процедур и функций\n var FUNCTION = {\n className: 'function',\n variants: [\n {begin: 'процедура|функциÑ', end: '\\\\)', keywords: 'процедура функциÑ'},\n {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}\n ],\n contains: [\n {\n begin: '\\\\(', end: '\\\\)', endsParent : true,\n contains: [\n {\n className: 'params',\n begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: 'знач',\n literal: LITERAL\n },\n contains: [\n NUMBERS,\n STRINGS,\n DATE\n ]\n },\n COMMENTS\n ]\n },\n hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})\n ]\n };\n\n return {\n name: '1C:Enterprise',\n case_insensitive: true,\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n type: TYPE,\n literal: LITERAL\n },\n contains: [\n META,\n FUNCTION,\n COMMENTS,\n SYMBOL,\n NUMBERS,\n STRINGS,\n DATE\n ]\n };\n}\n\nmodule.exports = _1c;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Augmented Backus-Naur Form\nAuthor: Alex McKibben <alex@nullscope.net>\nWebsite: https://tools.ietf.org/html/rfc5234\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction abnf(hljs) {\n const regexes = {\n ruleDeclaration: /^[a-zA-Z][a-zA-Z0-9-]*/,\n unexpectedChars: /[!@#$^&',?+~`|:]/\n };\n\n const keywords = [\n \"ALPHA\",\n \"BIT\",\n \"CHAR\",\n \"CR\",\n \"CRLF\",\n \"CTL\",\n \"DIGIT\",\n \"DQUOTE\",\n \"HEXDIG\",\n \"HTAB\",\n \"LF\",\n \"LWSP\",\n \"OCTET\",\n \"SP\",\n \"VCHAR\",\n \"WSP\"\n ];\n\n const commentMode = hljs.COMMENT(/;/, /$/);\n\n const terminalBinaryMode = {\n className: \"symbol\",\n begin: /%b[0-1]+(-[0-1]+|(\\.[0-1]+)+){0,1}/\n };\n\n const terminalDecimalMode = {\n className: \"symbol\",\n begin: /%d[0-9]+(-[0-9]+|(\\.[0-9]+)+){0,1}/\n };\n\n const terminalHexadecimalMode = {\n className: \"symbol\",\n begin: /%x[0-9A-F]+(-[0-9A-F]+|(\\.[0-9A-F]+)+){0,1}/\n };\n\n const caseSensitivityIndicatorMode = {\n className: \"symbol\",\n begin: /%[si]/\n };\n\n const ruleDeclarationMode = {\n className: \"attribute\",\n begin: concat(regexes.ruleDeclaration, /(?=\\s*=)/)\n };\n\n return {\n name: 'Augmented Backus-Naur Form',\n illegal: regexes.unexpectedChars,\n keywords: keywords,\n contains: [\n ruleDeclarationMode,\n commentMode,\n terminalBinaryMode,\n terminalDecimalMode,\n terminalHexadecimalMode,\n caseSensitivityIndicatorMode,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = abnf;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\n Language: Apache Access Log\n Author: Oleg Efimov <efimovov@gmail.com>\n Description: Apache/Nginx Access Logs\n Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction accesslog(_hljs) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods\n const HTTP_VERBS = [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"PUT\",\n \"DELETE\",\n \"CONNECT\",\n \"OPTIONS\",\n \"PATCH\",\n \"TRACE\"\n ];\n return {\n name: 'Apache Access Log',\n contains: [\n // IP\n {\n className: 'number',\n begin: /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b/,\n relevance: 5\n },\n // Other numbers\n {\n className: 'number',\n begin: /\\b\\d+\\b/,\n relevance: 0\n },\n // Requests\n {\n className: 'string',\n begin: concat(/\"/, either(...HTTP_VERBS)),\n end: /\"/,\n keywords: HTTP_VERBS,\n illegal: /\\n/,\n relevance: 5,\n contains: [\n {\n begin: /HTTP\\/[12]\\.\\d'/,\n relevance: 5\n }\n ]\n },\n // Dates\n {\n className: 'string',\n // dates must have a certain length, this prevents matching\n // simple array accesses a[123] and [] and other common patterns\n // found in other languages\n begin: /\\[\\d[^\\]\\n]{8,}\\]/,\n illegal: /\\n/,\n relevance: 1\n },\n {\n className: 'string',\n begin: /\\[/,\n end: /\\]/,\n illegal: /\\n/,\n relevance: 0\n },\n // User agent / relevance boost\n {\n className: 'string',\n begin: /\"Mozilla\\/\\d\\.\\d \\(/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 3\n },\n // Strings\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = accesslog;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: ActionScript\nAuthor: Alexander Myadzel <myadzel@gmail.com>\nCategory: scripting\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction actionscript(hljs) {\n const IDENT_RE = /[a-zA-Z_$][a-zA-Z0-9_$]*/;\n const IDENT_FUNC_RETURN_TYPE_RE = /([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/;\n\n const AS3_REST_ARG_MODE = {\n className: 'rest_arg',\n begin: /[.]{3}/,\n end: IDENT_RE,\n relevance: 10\n };\n\n return {\n name: 'ActionScript',\n aliases: [ 'as' ],\n keywords: {\n keyword: 'as break case catch class const continue default delete do dynamic each ' +\n 'else extends final finally for function get if implements import in include ' +\n 'instanceof interface internal is namespace native new override package private ' +\n 'protected public return set static super switch this throw try typeof use var void ' +\n 'while with',\n literal: 'true false null undefined'\n },\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'class',\n beginKeywords: 'package',\n end: /\\{/,\n contains: [ hljs.TITLE_MODE ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.TITLE_MODE\n ]\n },\n {\n className: 'meta',\n beginKeywords: 'import include',\n end: /;/,\n keywords: { 'meta-keyword': 'import include' }\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n illegal: /\\S/,\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AS3_REST_ARG_MODE\n ]\n },\n { begin: concat(/:\\s*/, IDENT_FUNC_RETURN_TYPE_RE) }\n ]\n },\n hljs.METHOD_GUARD\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = actionscript;\n","/*\nLanguage: Ada\nAuthor: Lars Schulna <kartoffelbrei.mit.muskatnuss@gmail.org>\nDescription: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.\n It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).\n The first version appeared in the 80s, but it's still actively developed today with\n the newest standard being Ada2012.\n*/\n\n// We try to support full Ada2012\n//\n// We highlight all appearances of types, keywords, literals (string, char, number, bool)\n// and titles (user defined function/procedure/package)\n// CSS classes are set accordingly\n//\n// Languages causing problems for language detection:\n// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)\n// sql (ada default.txt has a lot of sql keywords)\n\n/** @type LanguageFn */\nfunction ada(hljs) {\n // Regular expression for Ada numeric literals.\n // stolen form the VHDL highlighter\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n // Identifier regex\n const ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';\n\n // bad chars, only allowed in literals\n const BAD_CHARS = `[]\\\\{\\\\}%#'\"`;\n\n // Ada doesn't have block comments, only line comments\n const COMMENTS = hljs.COMMENT('--', '$');\n\n // variable declarations of the form\n // Foo : Bar := Baz;\n // where only Bar will be highlighted\n const VAR_DECLS = {\n // TODO: These spaces are not required by the Ada syntax\n // however, I have yet to see handwritten Ada code where\n // someone does not put spaces around :\n begin: '\\\\s+:\\\\s+',\n end: '\\\\s*(:=|;|\\\\)|=>|$)',\n // endsWithParent: true,\n // returnBegin: true,\n illegal: BAD_CHARS,\n contains: [\n {\n // workaround to avoid highlighting\n // named loops and declare blocks\n beginKeywords: 'loop for declare others',\n endsParent: true\n },\n {\n // properly highlight all modifiers\n className: 'keyword',\n beginKeywords: 'not null constant access function procedure in out aliased exception'\n },\n {\n className: 'type',\n begin: ID_REGEX,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n return {\n name: 'Ada',\n case_insensitive: true,\n keywords: {\n keyword:\n 'abort else new return abs elsif not reverse abstract end ' +\n 'accept entry select access exception of separate aliased exit or some ' +\n 'all others subtype and for out synchronized array function overriding ' +\n 'at tagged generic package task begin goto pragma terminate ' +\n 'body private then if procedure type case in protected constant interface ' +\n 'is raise use declare range delay limited record when delta loop rem while ' +\n 'digits renames with do mod requeue xor',\n literal:\n 'True False'\n },\n contains: [\n COMMENTS,\n // strings \"foobar\"\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n // characters ''\n {\n // character literals always contain one char\n className: 'string',\n begin: /'.'/\n },\n {\n // number literals\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n // Attributes\n className: 'symbol',\n begin: \"'\" + ID_REGEX\n },\n {\n // package definition, maybe inside generic\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?(\\\\bprivate\\\\s+)?\\\\bpackage\\\\s+(\\\\bbody\\\\s+)?',\n end: '(is|$)',\n keywords: 'package body',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n {\n // function/procedure declaration/definition\n // maybe inside generic\n begin: '(\\\\b(with|overriding)\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\bis|\\\\bwith|\\\\brenames|\\\\)\\\\s*;)',\n keywords: 'overriding function procedure with is renames return',\n // we need to re-match the 'function' keyword, so that\n // the title mode below matches only exactly once\n returnBegin: true,\n contains:\n [\n COMMENTS,\n {\n // name of the function/procedure\n className: 'title',\n begin: '(\\\\bwith\\\\s+)?\\\\b(function|procedure)\\\\s+',\n end: '(\\\\(|\\\\s+|$)',\n excludeBegin: true,\n excludeEnd: true,\n illegal: BAD_CHARS\n },\n // 'self'\n // // parameter types\n VAR_DECLS,\n {\n // return type\n className: 'type',\n begin: '\\\\breturn\\\\s+',\n end: '(\\\\s+|;|$)',\n keywords: 'return',\n excludeBegin: true,\n excludeEnd: true,\n // we are done with functions\n endsParent: true,\n illegal: BAD_CHARS\n\n }\n ]\n },\n {\n // new type declarations\n // maybe inside generic\n className: 'type',\n begin: '\\\\b(sub)?type\\\\s+',\n end: '\\\\s+',\n keywords: 'type',\n excludeBegin: true,\n illegal: BAD_CHARS\n },\n\n // see comment above the definition\n VAR_DECLS\n\n // no markup\n // relevance boosters for small snippets\n // {begin: '\\\\s*=>\\\\s*'},\n // {begin: '\\\\s*:=\\\\s*'},\n // {begin: '\\\\s+:=\\\\s+'},\n ]\n };\n}\n\nmodule.exports = ada;\n","/*\nLanguage: AngelScript\nAuthor: Melissa Geels <melissa@nimble.tools>\nCategory: scripting\nWebsite: https://www.angelcode.com/angelscript/\n*/\n\n/** @type LanguageFn */\nfunction angelscript(hljs) {\n var builtInTypeMode = {\n className: 'built_in',\n begin: '\\\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'\n };\n\n var objectHandleMode = {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+@'\n };\n\n var genericMode = {\n className: 'keyword',\n begin: '<', end: '>',\n contains: [ builtInTypeMode, objectHandleMode ]\n };\n\n builtInTypeMode.contains = [ genericMode ];\n objectHandleMode.contains = [ genericMode ];\n\n return {\n name: 'AngelScript',\n aliases: ['asc'],\n\n keywords:\n 'for in|0 break continue while do|0 return if else case switch namespace is cast ' +\n 'or and xor not get|0 in inout|10 out override set|0 private public const default|0 ' +\n 'final shared external mixin|10 enum typedef funcdef this super import from interface ' +\n 'abstract|0 try catch protected explicit property',\n\n // avoid close detection with C# and JS\n illegal: '(^using\\\\s+[A-Za-z0-9_\\\\.]+;$|\\\\bfunction\\\\s*[^\\\\(])',\n\n contains: [\n { // 'strings'\n className: 'string',\n begin: '\\'', end: '\\'',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n // \"\"\"heredoc strings\"\"\"\n {\n className: 'string',\n begin: '\"\"\"', end: '\"\"\"'\n },\n\n { // \"strings\"\n className: 'string',\n begin: '\"', end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n },\n\n hljs.C_LINE_COMMENT_MODE, // single-line comments\n hljs.C_BLOCK_COMMENT_MODE, // comment blocks\n\n { // metadata\n className: 'string',\n begin: '^\\\\s*\\\\[', end: '\\\\]',\n },\n\n { // interface or namespace declaration\n beginKeywords: 'interface namespace', end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // interface or namespace name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n },\n\n { // class declaration\n beginKeywords: 'class', end: /\\{/,\n illegal: '[;.\\\\-]',\n contains: [\n { // class name\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+',\n contains: [\n {\n begin: '[:,]\\\\s*',\n contains: [\n {\n className: 'symbol',\n begin: '[a-zA-Z0-9_]+'\n }\n ]\n }\n ]\n }\n ]\n },\n\n builtInTypeMode, // built-in types\n objectHandleMode, // object handles\n\n { // literals\n className: 'literal',\n begin: '\\\\b(null|true|false)'\n },\n\n { // numbers\n className: 'number',\n relevance: 0,\n begin: '(-?)(\\\\b0[xXbBoOdD][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?f?|\\\\.\\\\d+f?)([eE][-+]?\\\\d+f?)?)'\n }\n ]\n };\n}\n\nmodule.exports = angelscript;\n","/*\nLanguage: Apache config\nAuthor: Ruslan Keba <rukeba@gmail.com>\nContributors: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://httpd.apache.org\nDescription: language definition for Apache configuration files (httpd.conf & .htaccess)\nCategory: common, config\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction apache(hljs) {\n const NUMBER_REF = {\n className: 'number',\n begin: /[$%]\\d+/\n };\n const NUMBER = {\n className: 'number',\n begin: /\\d+/\n };\n const IP_ADDRESS = {\n className: \"number\",\n begin: /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?/\n };\n const PORT_NUMBER = {\n className: \"number\",\n begin: /:\\d{1,5}/\n };\n return {\n name: 'Apache config',\n aliases: [ 'apacheconf' ],\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'section',\n begin: /<\\/?/,\n end: />/,\n contains: [\n IP_ADDRESS,\n PORT_NUMBER,\n // low relevance prevents us from claming XML/HTML where this rule would\n // match strings inside of XML tags\n hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })\n ]\n },\n {\n className: 'attribute',\n begin: /\\w+/,\n relevance: 0,\n // keywords aren’t needed for highlighting per se, they only boost relevance\n // for a very generally defined mode (starts with a word, ends with line-end\n keywords: {\n nomarkup:\n 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +\n 'sethandler errordocument loadmodule options header listen serverroot ' +\n 'servername'\n },\n starts: {\n end: /$/,\n relevance: 0,\n keywords: { literal: 'on off all deny allow' },\n contains: [\n {\n className: 'meta',\n begin: /\\s\\[/,\n end: /\\]$/\n },\n {\n className: 'variable',\n begin: /[\\$%]\\{/,\n end: /\\}/,\n contains: [\n 'self',\n NUMBER_REF\n ]\n },\n IP_ADDRESS,\n NUMBER,\n hljs.QUOTE_STRING_MODE\n ]\n }\n }\n ],\n illegal: /\\S/\n };\n}\n\nmodule.exports = apache;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: AppleScript\nAuthors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>\nCategory: scripting\nWebsite: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction applescript(hljs) {\n const STRING = hljs.inherit(\n hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n hljs.C_NUMBER_MODE,\n STRING\n ]\n };\n const COMMENT_MODE_1 = hljs.COMMENT(/--/, /$/);\n const COMMENT_MODE_2 = hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n {\n contains: [\n 'self', // allow nesting\n COMMENT_MODE_1\n ]\n }\n );\n const COMMENTS = [\n COMMENT_MODE_1,\n COMMENT_MODE_2,\n hljs.HASH_COMMENT_MODE\n ];\n\n const KEYWORD_PATTERNS = [\n /apart from/,\n /aside from/,\n /instead of/,\n /out of/,\n /greater than/,\n /isn't|(doesn't|does not) (equal|come before|come after|contain)/,\n /(greater|less) than( or equal)?/,\n /(starts?|ends|begins?) with/,\n /contained by/,\n /comes (before|after)/,\n /a (ref|reference)/,\n /POSIX (file|path)/,\n /(date|time) string/,\n /quoted form/\n ];\n\n const BUILT_IN_PATTERNS = [\n /clipboard info/,\n /the clipboard/,\n /info for/,\n /list (disks|folder)/,\n /mount volume/,\n /path to/,\n /(close|open for) access/,\n /(get|set) eof/,\n /current date/,\n /do shell script/,\n /get volume settings/,\n /random number/,\n /set volume/,\n /system attribute/,\n /system info/,\n /time to GMT/,\n /(load|run|store) script/,\n /scripting components/,\n /ASCII (character|number)/,\n /localized string/,\n /choose (application|color|file|file name|folder|from list|remote application|URL)/,\n /display (alert|dialog)/\n ];\n\n return {\n name: 'AppleScript',\n aliases: [ 'osascript' ],\n keywords: {\n keyword:\n 'about above after against and around as at back before beginning ' +\n 'behind below beneath beside between but by considering ' +\n 'contain contains continue copy div does eighth else end equal ' +\n 'equals error every exit fifth first for fourth from front ' +\n 'get given global if ignoring in into is it its last local me ' +\n 'middle mod my ninth not of on onto or over prop property put ref ' +\n 'reference repeat returning script second set seventh since ' +\n 'sixth some tell tenth that the|0 then third through thru ' +\n 'timeout times to transaction try until where while whose with ' +\n 'without',\n literal:\n 'AppleScript false linefeed return pi quote result space tab true',\n built_in:\n 'alias application boolean class constant date file integer list ' +\n 'number real record string text ' +\n 'activate beep count delay launch log offset read round ' +\n 'run say summarize write ' +\n 'character characters contents day frontmost id item length ' +\n 'month name paragraph paragraphs rest reverse running time version ' +\n 'weekday word words year'\n },\n contains: [\n STRING,\n hljs.C_NUMBER_MODE,\n {\n className: 'built_in',\n begin: concat(\n /\\b/,\n either(...BUILT_IN_PATTERNS),\n /\\b/\n )\n },\n {\n className: 'built_in',\n begin: /^\\s*return\\b/\n },\n {\n className: 'literal',\n begin:\n /\\b(text item delimiters|current application|missing value)\\b/\n },\n {\n className: 'keyword',\n begin: concat(\n /\\b/,\n either(...KEYWORD_PATTERNS),\n /\\b/\n )\n },\n {\n beginKeywords: 'on',\n illegal: /[${=;\\n]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n ...COMMENTS\n ],\n illegal: /\\/\\/|->|=>|\\[\\[/\n };\n}\n\nmodule.exports = applescript;\n","/*\n Language: ArcGIS Arcade\n Category: scripting\n Author: John Foster <jfoster@esri.com>\n Website: https://developers.arcgis.com/arcade/\n Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python\n*/\n\n/** @type LanguageFn */\nfunction arcade(hljs) {\n const IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';\n const KEYWORDS = {\n keyword:\n 'if for while var new function do return void else break',\n literal:\n 'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',\n built_in:\n 'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' +\n 'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +\n 'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' +\n 'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' +\n 'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' +\n 'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +\n 'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +\n 'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +\n 'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' +\n 'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' +\n 'Weekday When Within Year '\n };\n const SYMBOL = {\n className: 'symbol',\n begin: '\\\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'\n };\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0[bB][01]+)'\n },\n {\n begin: '\\\\b(0[oO][0-7]+)'\n },\n {\n begin: hljs.C_NUMBER_RE\n }\n ],\n relevance: 0\n };\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS,\n contains: [] // defined later\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n SUBST.contains = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n const PARAMS_CONTAINS = SUBST.contains.concat([\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]);\n\n return {\n name: 'ArcGIS Arcade',\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n TEMPLATE_STRING,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n SYMBOL,\n NUMBER,\n { // object attr container\n begin: /[{,]\\s*/,\n relevance: 0,\n contains: [{\n begin: IDENT_RE + '\\\\s*:',\n returnBegin: true,\n relevance: 0,\n contains: [{\n className: 'attr',\n begin: IDENT_RE,\n relevance: 0\n }]\n }]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(return)\\\\b)\\\\s*',\n keywords: 'return',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n begin: '(\\\\(.*?\\\\)|' + IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [{\n className: 'params',\n variants: [\n {\n begin: IDENT_RE\n },\n {\n begin: /\\(\\s*\\)/\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: PARAMS_CONTAINS\n }\n ]\n }]\n }\n ],\n relevance: 0\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: IDENT_RE\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: PARAMS_CONTAINS\n }\n ],\n illegal: /\\[|%/\n },\n {\n begin: /\\$[(.]/\n }\n ],\n illegal: /#(?!!)/\n };\n}\n\nmodule.exports = arcade;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(' +\n DECLTYPE_AUTO_RE + '|' +\n optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n const CPP_PRIMITIVE_TYPES = {\n className: 'keyword',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const COMMON_CPP_HINTS = [\n 'asin',\n 'atan2',\n 'atan',\n 'calloc',\n 'ceil',\n 'cosh',\n 'cos',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'auto_ptr',\n 'deque',\n 'list',\n 'queue',\n 'stack',\n 'vector',\n 'map',\n 'set',\n 'pair',\n 'bitset',\n 'multiset',\n 'multimap',\n 'unordered_set',\n 'fscanf',\n 'future',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'tolower',\n 'toupper',\n 'labs',\n 'ldexp',\n 'log10',\n 'log',\n 'malloc',\n 'realloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'scanf',\n 'sinh',\n 'sin',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'tanh',\n 'tan',\n 'unordered_map',\n 'unordered_multiset',\n 'unordered_multimap',\n 'priority_queue',\n 'make_pair',\n 'array',\n 'shared_ptr',\n 'abort',\n 'terminate',\n 'abs',\n 'acos',\n 'vfprintf',\n 'vprintf',\n 'vsprintf',\n 'endl',\n 'initializer_list',\n 'unique_ptr',\n 'complex',\n 'imaginary',\n 'std',\n 'string',\n 'wstring',\n 'cin',\n 'cout',\n 'cerr',\n 'clog',\n 'stdin',\n 'stdout',\n 'stderr',\n 'stringstream',\n 'istringstream',\n 'ostringstream'\n ];\n\n const CPP_KEYWORDS = {\n keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n 'unsigned long volatile static protected bool template mutable if public friend ' +\n 'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n 'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n 'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n 'concept co_await co_return co_yield requires ' +\n 'noexcept static_assert thread_local restrict final override ' +\n 'atomic_bool atomic_char atomic_schar ' +\n 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n 'atomic_ullong new throw return ' +\n 'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n built_in: '_Bool _Complex _Imaginary',\n _relevance_hints: COMMON_CPP_HINTS,\n literal: 'true false nullptr NULL'\n };\n\n const FUNCTION_DISPATCH = {\n className: \"function.dispatch\",\n relevance: 0,\n keywords: CPP_KEYWORDS,\n begin: concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!while)/,\n hljs.IDENT_RE,\n lookahead(/\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: '</',\n classNameAliases: {\n \"function.dispatch\": \"built_in\"\n },\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n FUNCTION_DISPATCH,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n { // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [\n {\n beginKeywords: \"final class struct\"\n },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: CPP_KEYWORDS\n }\n };\n}\n\n/*\nLanguage: Arduino\nAuthor: Stefania Mellai <s.mellai@arduino.cc>\nDescription: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.\nWebsite: https://www.arduino.cc\n*/\n\n/** @type LanguageFn */\nfunction arduino(hljs) {\n const ARDUINO_KW = {\n keyword:\n 'boolean byte word String',\n built_in:\n 'KeyboardController MouseController SoftwareSerial ' +\n 'EthernetServer EthernetClient LiquidCrystal ' +\n 'RobotControl GSMVoiceCall EthernetUDP EsploraTFT ' +\n 'HttpClient RobotMotor WiFiClient GSMScanner ' +\n 'FileSystem Scheduler GSMServer YunClient YunServer ' +\n 'IPAddress GSMClient GSMModem Keyboard Ethernet ' +\n 'Console GSMBand Esplora Stepper Process ' +\n 'WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage ' +\n 'Client Server GSMPIN FileIO Bridge Serial ' +\n 'EEPROM Stream Mouse Audio Servo File Task ' +\n 'GPRS WiFi Wire TFT GSM SPI SD ',\n _:\n 'setup loop ' +\n 'runShellCommandAsynchronously analogWriteResolution ' +\n 'retrieveCallingNumber printFirmwareVersion ' +\n 'analogReadResolution sendDigitalPortPair ' +\n 'noListenOnLocalhost readJoystickButton setFirmwareVersion ' +\n 'readJoystickSwitch scrollDisplayRight getVoiceCallStatus ' +\n 'scrollDisplayLeft writeMicroseconds delayMicroseconds ' +\n 'beginTransmission getSignalStrength runAsynchronously ' +\n 'getAsynchronously listenOnLocalhost getCurrentCarrier ' +\n 'readAccelerometer messageAvailable sendDigitalPorts ' +\n 'lineFollowConfig countryNameWrite runShellCommand ' +\n 'readStringUntil rewindDirectory readTemperature ' +\n 'setClockDivider readLightSensor endTransmission ' +\n 'analogReference detachInterrupt countryNameRead ' +\n 'attachInterrupt encryptionType readBytesUntil ' +\n 'robotNameWrite readMicrophone robotNameRead cityNameWrite ' +\n 'userNameWrite readJoystickY readJoystickX mouseReleased ' +\n 'openNextFile scanNetworks noInterrupts digitalWrite ' +\n 'beginSpeaker mousePressed isActionDone mouseDragged ' +\n 'displayLogos noAutoscroll addParameter remoteNumber ' +\n 'getModifiers keyboardRead userNameRead waitContinue ' +\n 'processInput parseCommand printVersion readNetworks ' +\n 'writeMessage blinkVersion cityNameRead readMessage ' +\n 'setDataMode parsePacket isListening setBitOrder ' +\n 'beginPacket isDirectory motorsWrite drawCompass ' +\n 'digitalRead clearScreen serialEvent rightToLeft ' +\n 'setTextSize leftToRight requestFrom keyReleased ' +\n 'compassRead analogWrite interrupts WiFiServer ' +\n 'disconnect playMelody parseFloat autoscroll ' +\n 'getPINUsed setPINUsed setTimeout sendAnalog ' +\n 'readSlider analogRead beginWrite createChar ' +\n 'motorsStop keyPressed tempoWrite readButton ' +\n 'subnetMask debugPrint macAddress writeGreen ' +\n 'randomSeed attachGPRS readString sendString ' +\n 'remotePort releaseAll mouseMoved background ' +\n 'getXChange getYChange answerCall getResult ' +\n 'voiceCall endPacket constrain getSocket writeJSON ' +\n 'getButton available connected findUntil readBytes ' +\n 'exitValue readGreen writeBlue startLoop IPAddress ' +\n 'isPressed sendSysex pauseMode gatewayIP setCursor ' +\n 'getOemKey tuneWrite noDisplay loadImage switchPIN ' +\n 'onRequest onReceive changePIN playFile noBuffer ' +\n 'parseInt overflow checkPIN knobRead beginTFT ' +\n 'bitClear updateIR bitWrite position writeRGB ' +\n 'highByte writeRed setSpeed readBlue noStroke ' +\n 'remoteIP transfer shutdown hangCall beginSMS ' +\n 'endWrite attached maintain noCursor checkReg ' +\n 'checkPUK shiftOut isValid shiftIn pulseIn ' +\n 'connect println localIP pinMode getIMEI ' +\n 'display noBlink process getBand running beginSD ' +\n 'drawBMP lowByte setBand release bitRead prepare ' +\n 'pointTo readRed setMode noFill remove listen ' +\n 'stroke detach attach noTone exists buffer ' +\n 'height bitSet circle config cursor random ' +\n 'IRread setDNS endSMS getKey micros ' +\n 'millis begin print write ready flush width ' +\n 'isPIN blink clear press mkdir rmdir close ' +\n 'point yield image BSSID click delay ' +\n 'read text move peek beep rect line open ' +\n 'seek fill size turn stop home find ' +\n 'step tone sqrt RSSI SSID ' +\n 'end bit tan cos sin pow map abs max ' +\n 'min get run put',\n literal:\n 'DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE ' +\n 'REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP ' +\n 'SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN ' +\n 'INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL ' +\n 'DEFAULT OUTPUT INPUT HIGH LOW'\n };\n\n const ARDUINO = cPlusPlus(hljs);\n\n const kws = /** @type {Record<string,any>} */ (ARDUINO.keywords);\n\n kws.keyword += ' ' + ARDUINO_KW.keyword;\n kws.literal += ' ' + ARDUINO_KW.literal;\n kws.built_in += ' ' + ARDUINO_KW.built_in;\n kws._ += ' ' + ARDUINO_KW._;\n\n ARDUINO.name = 'Arduino';\n ARDUINO.aliases = ['ino'];\n ARDUINO.supersetOf = \"cpp\";\n\n return ARDUINO;\n}\n\nmodule.exports = arduino;\n","/*\nLanguage: ARM Assembly\nAuthor: Dan Panzarella <alsoelp@gmail.com>\nDescription: ARM Assembly including Thumb and Thumb2 instructions\nCategory: assembler\n*/\n\n/** @type LanguageFn */\nfunction armasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n\n const COMMENT = {\n variants: [\n hljs.COMMENT('^[ \\\\t]*(?=#)', '$', {\n relevance: 0,\n excludeBegin: true\n }),\n hljs.COMMENT('[;@]', '$', {\n relevance: 0\n }),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n return {\n name: 'ARM Assembly',\n case_insensitive: true,\n aliases: ['arm'],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ' +\n // ARM directives\n 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL 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 FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',\n built_in:\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 ' + // standard registers\n 'pc lr sp ip sl sb fp ' + // typical regs plus backward compatibility\n 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 ' + // more regs and fp\n 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 ' + // coprocessor regs\n 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 ' + // more coproc\n 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 ' + // advanced SIMD NEON regs\n\n // program status registers\n 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf ' +\n 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf ' +\n\n // NEON and VFP registers\n 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 ' +\n 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 ' +\n 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 ' +\n 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +\n\n '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' + // mnemonics\n 'adc|' +\n '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|' +\n 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|' +\n 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|' +\n 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|' +\n 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|' +\n 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|' +\n 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|' +\n 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|' +\n 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|' +\n 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|' +\n '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|' +\n 'wfe|wfi|yield' +\n ')' +\n '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?' + // condition codes\n '[sptrx]?' + // legal postfixes\n '(?=\\\\s)' // followed by space\n },\n COMMENT,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '[#$=]?0x[0-9a-f]+'\n },\n { // bin\n begin: '[#$=]?0b[01]+'\n },\n { // literal\n begin: '[#$=]\\\\d+'\n },\n { // bare number\n begin: '\\\\b\\\\d+'\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU ARM syntax\n begin: '^[ \\\\t]*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n },\n { // ARM syntax\n begin: '^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+'\n },\n { // label reference\n begin: '[=#]\\\\w+'\n }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = armasm;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: HTML, XML\nWebsite: https://www.w3.org/XML/\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xml(hljs) {\n // Element names can contain letters, digits, hyphens, underscores, and periods\n const TAG_NAME_RE = concat(/[A-Z_]/, optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/);\n const XML_IDENT_RE = /[A-Za-z0-9._:-]+/;\n const XML_ENTITIES = {\n className: 'symbol',\n begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/\n };\n const XML_META_KEYWORDS = {\n begin: /\\s/,\n contains: [\n {\n className: 'meta-keyword',\n begin: /#?[a-z_][a-z1-9_-]+/,\n illegal: /\\n/\n }\n ]\n };\n const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, {\n begin: /\\(/,\n end: /\\)/\n });\n const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, {\n className: 'meta-string'\n });\n const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'meta-string'\n });\n const TAG_INTERNALS = {\n endsWithParent: true,\n illegal: /</,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: XML_IDENT_RE,\n relevance: 0\n },\n {\n begin: /=\\s*/,\n relevance: 0,\n contains: [\n {\n className: 'string',\n endsParent: true,\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [ XML_ENTITIES ]\n },\n {\n begin: /[^\\s\"'=<>`]+/\n }\n ]\n }\n ]\n }\n ]\n };\n return {\n name: 'HTML, XML',\n aliases: [\n 'html',\n 'xhtml',\n 'rss',\n 'atom',\n 'xjb',\n 'xsd',\n 'xsl',\n 'plist',\n 'wsf',\n 'svg'\n ],\n case_insensitive: true,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n relevance: 10,\n contains: [\n XML_META_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE,\n XML_META_PAR_KEYWORDS,\n {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n {\n className: 'meta',\n begin: /<![a-z]/,\n end: />/,\n contains: [\n XML_META_KEYWORDS,\n XML_META_PAR_KEYWORDS,\n QUOTE_META_STRING_MODE,\n APOS_META_STRING_MODE\n ]\n }\n ]\n }\n ]\n },\n hljs.COMMENT(\n /<!--/,\n /-->/,\n {\n relevance: 10\n }\n ),\n {\n begin: /<!\\[CDATA\\[/,\n end: /\\]\\]>/,\n relevance: 10\n },\n XML_ENTITIES,\n {\n className: 'meta',\n begin: /<\\?xml/,\n end: /\\?>/,\n relevance: 10\n },\n {\n className: 'tag',\n /*\n The lookahead pattern (?=...) ensures that 'begin' only matches\n '<style' as a single word, followed by a whitespace or an\n ending braket. The '$' is needed for the lexeme to be recognized\n by hljs.subMode() that tests lexemes outside the stream.\n */\n begin: /<style(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'style'\n },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/style>/,\n returnEnd: true,\n subLanguage: [\n 'css',\n 'xml'\n ]\n }\n },\n {\n className: 'tag',\n // See the comment in the <style tag about the lookahead pattern\n begin: /<script(?=\\s|>)/,\n end: />/,\n keywords: {\n name: 'script'\n },\n contains: [ TAG_INTERNALS ],\n starts: {\n end: /<\\/script>/,\n returnEnd: true,\n subLanguage: [\n 'javascript',\n 'handlebars',\n 'xml'\n ]\n }\n },\n // we need this for now for jSX\n {\n className: 'tag',\n begin: /<>|<\\/>/\n },\n // open tag\n {\n className: 'tag',\n begin: concat(\n /</,\n lookahead(concat(\n TAG_NAME_RE,\n // <tag/>\n // <tag>\n // <tag ...\n either(/\\/>/, />/, /\\s/)\n ))\n ),\n end: /\\/?>/,\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0,\n starts: TAG_INTERNALS\n }\n ]\n },\n // close tag\n {\n className: 'tag',\n begin: concat(\n /<\\//,\n lookahead(concat(\n TAG_NAME_RE, />/\n ))\n ),\n contains: [\n {\n className: 'name',\n begin: TAG_NAME_RE,\n relevance: 0\n },\n {\n begin: />/,\n relevance: 0,\n endsParent: true\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = xml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: AsciiDoc\nRequires: xml.js\nAuthor: Dan Allen <dan.j.allen@gmail.com>\nWebsite: http://asciidoc.org\nDescription: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction asciidoc(hljs) {\n const HORIZONTAL_RULE = {\n begin: '^\\'{3,}[ \\\\t]*$',\n relevance: 10\n };\n const ESCAPED_FORMATTING = [\n // escaped constrained formatting marks (i.e., \\* \\_ or \\`)\n {\n begin: /\\\\[*_`]/\n },\n // escaped unconstrained formatting marks (i.e., \\\\** \\\\__ or \\\\``)\n // must ignore until the next formatting marks\n // this rule might not be 100% compliant with Asciidoctor 2.0 but we are entering undefined behavior territory...\n {\n begin: /\\\\\\\\\\*{2}[^\\n]*?\\*{2}/\n },\n {\n begin: /\\\\\\\\_{2}[^\\n]*_{2}/\n },\n {\n begin: /\\\\\\\\`{2}[^\\n]*`{2}/\n },\n // guard: constrained formatting mark may not be preceded by \":\", \";\" or\n // \"}\". match these so the constrained rule doesn't see them\n {\n begin: /[:;}][*_`](?![*_`])/\n }\n ];\n const STRONG = [\n // inline unconstrained strong (single line)\n {\n className: 'strong',\n begin: /\\*{2}([^\\n]+?)\\*{2}/\n },\n // inline unconstrained strong (multi-line)\n {\n className: 'strong',\n begin: concat(\n /\\*\\*/,\n /((\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])+\\n)+/,\n /(\\*(?!\\*)|\\\\[^\\n]|[^*\\n\\\\])*/,\n /\\*\\*/\n ),\n relevance: 0\n },\n // inline constrained strong (single line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\B\\*(\\S|\\S[^\\n]*?\\S)\\*(?!\\w)/\n },\n // inline constrained strong (multi-line)\n {\n className: 'strong',\n // must not precede or follow a word character\n begin: /\\*[^\\s]([^\\n]+\\n)+([^\\n]+)\\*/\n }\n ];\n const EMPHASIS = [\n // inline unconstrained emphasis (single line)\n {\n className: 'emphasis',\n begin: /_{2}([^\\n]+?)_{2}/\n },\n // inline unconstrained emphasis (multi-line)\n {\n className: 'emphasis',\n begin: concat(\n /__/,\n /((_(?!_)|\\\\[^\\n]|[^_\\n\\\\])+\\n)+/,\n /(_(?!_)|\\\\[^\\n]|[^_\\n\\\\])*/,\n /__/\n ),\n relevance: 0\n },\n // inline constrained emphasis (single line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /\\b_(\\S|\\S[^\\n]*?\\S)_(?!\\w)/\n },\n // inline constrained emphasis (multi-line)\n {\n className: 'emphasis',\n // must not precede or follow a word character\n begin: /_[^\\s]([^\\n]+\\n)+([^\\n]+)_/\n },\n // inline constrained emphasis using single quote (legacy)\n {\n className: 'emphasis',\n // must not follow a word character or be followed by a single quote or space\n begin: '\\\\B\\'(?![\\'\\\\s])',\n end: '(\\\\n{2}|\\')',\n // allow escaped single quote followed by word char\n contains: [{\n begin: '\\\\\\\\\\'\\\\w',\n relevance: 0\n }],\n relevance: 0\n }\n ];\n const ADMONITION = {\n className: 'symbol',\n begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+',\n relevance: 10\n };\n const BULLET_LIST = {\n className: 'bullet',\n begin: '^(\\\\*+|-+|\\\\.+|[^\\\\n]+?::)\\\\s+'\n };\n\n return {\n name: 'AsciiDoc',\n aliases: ['adoc'],\n contains: [\n // block comment\n hljs.COMMENT(\n '^/{4,}\\\\n',\n '\\\\n/{4,}$',\n // can also be done as...\n // '^/{4,}$',\n // '^/{4,}$',\n {\n relevance: 10\n }\n ),\n // line comment\n hljs.COMMENT(\n '^//',\n '$',\n {\n relevance: 0\n }\n ),\n // title\n {\n className: 'title',\n begin: '^\\\\.\\\\w.*$'\n },\n // example, admonition & sidebar blocks\n {\n begin: '^[=\\\\*]{4,}\\\\n',\n end: '\\\\n^[=\\\\*]{4,}$',\n relevance: 10\n },\n // headings\n {\n className: 'section',\n relevance: 10,\n variants: [\n {\n begin: '^(={1,6})[ \\t].+?([ \\t]\\\\1)?$'\n },\n {\n begin: '^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$'\n }\n ]\n },\n // document attributes\n {\n className: 'meta',\n begin: '^:.+?:',\n end: '\\\\s',\n excludeEnd: true,\n relevance: 10\n },\n // block attributes\n {\n className: 'meta',\n begin: '^\\\\[.+?\\\\]$',\n relevance: 0\n },\n // quoteblocks\n {\n className: 'quote',\n begin: '^_{4,}\\\\n',\n end: '\\\\n_{4,}$',\n relevance: 10\n },\n // listing and literal blocks\n {\n className: 'code',\n begin: '^[\\\\-\\\\.]{4,}\\\\n',\n end: '\\\\n[\\\\-\\\\.]{4,}$',\n relevance: 10\n },\n // passthrough blocks\n {\n begin: '^\\\\+{4,}\\\\n',\n end: '\\\\n\\\\+{4,}$',\n contains: [{\n begin: '<',\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n }],\n relevance: 10\n },\n\n BULLET_LIST,\n ADMONITION,\n ...ESCAPED_FORMATTING,\n ...STRONG,\n ...EMPHASIS,\n\n // inline smart quotes\n {\n className: 'string',\n variants: [\n {\n begin: \"``.+?''\"\n },\n {\n begin: \"`.+?'\"\n }\n ]\n },\n // inline unconstrained emphasis\n {\n className: 'code',\n begin: /`{2}/,\n end: /(\\n{2}|`{2})/\n },\n // inline code snippets (TODO should get same treatment as strong and emphasis)\n {\n className: 'code',\n begin: '(`.+?`|\\\\+.+?\\\\+)',\n relevance: 0\n },\n // indented literal block\n {\n className: 'code',\n begin: '^[ \\\\t]',\n end: '$',\n relevance: 0\n },\n HORIZONTAL_RULE,\n // images and links\n {\n begin: '(link:)?(http|https|ftp|file|irc|image:?):\\\\S+?\\\\[[^[]*?\\\\]',\n returnBegin: true,\n contains: [\n {\n begin: '(link|image:?):',\n relevance: 0\n },\n {\n className: 'link',\n begin: '\\\\w',\n end: '[^\\\\[]+',\n relevance: 0\n },\n {\n className: 'string',\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }\n ],\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = asciidoc;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: AspectJ\nAuthor: Hakan Ozler <ozler.hakan@gmail.com>\nWebsite: https://www.eclipse.org/aspectj/\nDescription: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction aspectj(hljs) {\n const KEYWORDS =\n 'false synchronized int abstract float private char boolean static null if const ' +\n 'for true while long throw strictfp finally protected import native final return void ' +\n 'enum else extends implements break transient new catch instanceof byte super volatile case ' +\n 'assert short package default double public try this switch continue throws privileged ' +\n 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +\n 'staticinitialization withincode target within execution getWithinTypeName handler ' +\n 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents ' +\n 'warning error soft precedence thisAspectInstance';\n const SHORTKEYS = 'get set args call';\n\n return {\n name: 'AspectJ',\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n /\\/\\*\\*/,\n /\\*\\//,\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: /@[A-Za-z]+/\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'class',\n beginKeywords: 'aspect',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:;\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: /\\([^\\)]*/,\n end: /[)]+/,\n keywords: KEYWORDS + ' ' + SHORTKEYS,\n excludeEnd: false\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /[{;=]/,\n excludeEnd: true,\n relevance: 0,\n keywords: 'class interface',\n illegal: /[:\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n // AspectJ Constructs\n beginKeywords: 'pointcut after before around throwing returning',\n end: /[)]/,\n excludeEnd: false,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n }\n ]\n },\n {\n begin: /[:]/,\n returnBegin: true,\n end: /[{;]/,\n relevance: 0,\n excludeEnd: false,\n keywords: KEYWORDS,\n illegal: /[\"\\[\\]]/,\n contains: [\n {\n begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n keywords: KEYWORDS + ' ' + SHORTKEYS,\n relevance: 0\n },\n hljs.QUOTE_STRING_MODE\n ]\n },\n {\n // this prevents 'new Name(...), or throw ...' from being recognized as a function definition\n beginKeywords: 'new throw',\n relevance: 0\n },\n {\n // the function class is a bit different for AspectJ compared to the Java language\n className: 'function',\n begin: /\\w+ +\\w+(\\.\\w+)?\\s*\\([^\\)]*\\)\\s*((throws)[\\w\\s,]+)?[\\{;]/,\n returnBegin: true,\n end: /[{;=]/,\n keywords: KEYWORDS,\n excludeEnd: true,\n contains: [\n {\n begin: concat(hljs.UNDERSCORE_IDENT_RE, /\\s*\\(/),\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_NUMBER_MODE,\n {\n // annotation is also used in this language\n className: 'meta',\n begin: /@[A-Za-z]+/\n }\n ]\n };\n}\n\nmodule.exports = aspectj;\n","/*\nLanguage: AutoHotkey\nAuthor: Seongwon Lee <dlimpid@gmail.com>\nDescription: AutoHotkey language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autohotkey(hljs) {\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]'\n };\n\n return {\n name: 'AutoHotkey',\n case_insensitive: true,\n aliases: ['ahk'],\n keywords: {\n keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',\n literal: 'true false NOT AND OR',\n built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel'\n },\n contains: [\n BACKTICK_ESCAPE,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n contains: [BACKTICK_ESCAPE]\n }),\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'number',\n begin: hljs.NUMBER_RE,\n relevance: 0\n },\n {\n // subst would be the most accurate however fails the point of\n // highlighting. variable is comparably the most accurate that actually\n // has some effect\n className: 'variable',\n begin: '%[a-zA-Z0-9#_$@]+%'\n },\n {\n className: 'built_in',\n begin: '^\\\\s*\\\\w+\\\\s*(,|%)'\n // I don't really know if this is totally relevant\n },\n {\n // symbol would be most accurate however is highlighted just like\n // built_in and that makes up a lot of AutoHotkey code meaning that it\n // would fail to highlight anything\n className: 'title',\n variants: [\n {\n begin: '^[^\\\\n\";]+::(?!=)'\n },\n {\n begin: '^[^\\\\n\";]+:(?!=)',\n // zero relevance as it catches a lot of things\n // followed by a single ':' in many languages\n relevance: 0\n }\n ]\n },\n {\n className: 'meta',\n begin: '^\\\\s*#\\\\w+',\n end: '$',\n relevance: 0\n },\n {\n className: 'built_in',\n begin: 'A_[a-zA-Z0-9]+'\n },\n {\n // consecutive commas, not for highlighting but just for relevance\n begin: ',\\\\s*,'\n }\n ]\n };\n}\n\nmodule.exports = autohotkey;\n","/*\nLanguage: AutoIt\nAuthor: Manh Tuan <junookyo@gmail.com>\nDescription: AutoIt language definition\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction autoit(hljs) {\n const KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +\n 'Dim Do Else ElseIf EndFunc EndIf EndSelect ' +\n 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +\n 'Global If In Local Next ReDim Return Select Static ' +\n 'Step Switch Then To Until Volatile WEnd While With';\n\n const DIRECTIVES = [\n \"EndRegion\",\n \"forcedef\",\n \"forceref\",\n \"ignorefunc\",\n \"include\",\n \"include-once\",\n \"NoTrayIcon\",\n \"OnAutoItStartRegister\",\n \"pragma\",\n \"Region\",\n \"RequireAdmin\",\n \"Tidy_Off\",\n \"Tidy_On\",\n \"Tidy_Parameters\"\n ];\n \n const LITERAL = 'True False And Null Not Or Default';\n\n const BUILT_IN\n = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive';\n\n const COMMENT = {\n variants: [\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n hljs.COMMENT('#cs', '#ce'),\n hljs.COMMENT('#comments-start', '#comments-end')\n ]\n };\n\n const VARIABLE = {\n begin: '\\\\$[A-z0-9_]+'\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n };\n\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': DIRECTIVES\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n {\n beginKeywords: 'include',\n keywords: {\n 'meta-keyword': 'include'\n },\n end: '$',\n contains: [\n STRING,\n {\n className: 'meta-string',\n variants: [\n {\n begin: '<',\n end: '>'\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [{\n begin: /\"\"/,\n relevance: 0\n }]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/,\n relevance: 0\n }]\n }\n ]\n }\n ]\n },\n STRING,\n COMMENT\n ]\n };\n\n const CONSTANT = {\n className: 'symbol',\n // begin: '@',\n // end: '$',\n // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',\n // relevance: 5\n begin: '@[A-z0-9_]+'\n };\n\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'Func',\n end: '$',\n illegal: '\\\\$|\\\\[|%',\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n VARIABLE,\n STRING,\n NUMBER\n ]\n }\n ]\n };\n\n return {\n name: 'AutoIt',\n case_insensitive: true,\n illegal: /\\/\\*/,\n keywords: {\n keyword: KEYWORDS,\n built_in: BUILT_IN,\n literal: LITERAL\n },\n contains: [\n COMMENT,\n VARIABLE,\n STRING,\n NUMBER,\n PREPROCESSOR,\n CONSTANT,\n FUNCTION\n ]\n };\n}\n\nmodule.exports = autoit;\n","/*\nLanguage: AVR Assembly\nAuthor: Vladimir Ermakov <vooon341@gmail.com>\nCategory: assembler\nWebsite: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html\n*/\n\n/** @type LanguageFn */\nfunction avrasm(hljs) {\n return {\n name: 'AVR Assembly',\n case_insensitive: true,\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n keyword:\n /* mnemonic */\n 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +\n 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +\n 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +\n 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +\n 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +\n 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +\n 'subi swap tst wdr',\n built_in:\n /* general purpose registers */\n 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +\n 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +\n /* IO Registers (ATMega128) */\n 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +\n 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +\n 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +\n 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +\n 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +\n 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +\n 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +\n 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',\n meta:\n '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +\n '.listmac .macro .nolist .org .set'\n },\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n hljs.C_NUMBER_MODE, // 0x..., decimal, float\n hljs.BINARY_NUMBER_MODE, // 0b...\n {\n className: 'number',\n begin: '\\\\b(\\\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n illegal: '[^\\\\\\\\][^\\']'\n },\n {\n className: 'symbol',\n begin: '^[A-Za-z0-9_.$]+:'\n },\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n { // substitution within a macro\n className: 'subst',\n begin: '@[0-9]+'\n }\n ]\n };\n}\n\nmodule.exports = avrasm;\n","/*\nLanguage: Awk\nAuthor: Matthew Daly <matthewbdaly@gmail.com>\nWebsite: https://www.gnu.org/software/gawk/manual/gawk.html\nDescription: language definition for Awk scripts\n*/\n\n/** @type LanguageFn */\nfunction awk(hljs) {\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n },\n {\n begin: /\\$\\{(.*?)\\}/\n }\n ]\n };\n const KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';\n const STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n {\n begin: /(u|b)?r?'''/,\n end: /'''/,\n relevance: 10\n },\n {\n begin: /(u|b)?r?\"\"\"/,\n end: /\"\"\"/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /(u|r|ur)\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /(b|br)'/,\n end: /'/\n },\n {\n begin: /(b|br)\"/,\n end: /\"/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n return {\n name: 'Awk',\n keywords: {\n keyword: KEYWORDS\n },\n contains: [\n VARIABLE,\n STRING,\n hljs.REGEXP_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = awk;\n","/*\nLanguage: Microsoft X++\nDescription: X++ is a language used in Microsoft Dynamics 365, Dynamics AX, and Axapta.\nAuthor: Dmitri Roudakov <dmitri@roudakov.ru>\nWebsite: https://dynamics.microsoft.com/en-us/ax-overview/\nCategory: enterprise\n*/\n\n/** @type LanguageFn */\nfunction axapta(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'anytype',\n 'boolean',\n 'byte',\n 'char',\n 'container',\n 'date',\n 'double',\n 'enum',\n 'guid',\n 'int',\n 'int64',\n 'long',\n 'real',\n 'short',\n 'str',\n 'utcdatetime',\n 'var'\n ];\n\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'asc',\n 'avg',\n 'break',\n 'breakpoint',\n 'by',\n 'byref',\n 'case',\n 'catch',\n 'changecompany',\n 'class',\n 'client',\n 'client',\n 'common',\n 'const',\n 'continue',\n 'count',\n 'crosscompany',\n 'delegate',\n 'delete_from',\n 'desc',\n 'display',\n 'div',\n 'do',\n 'edit',\n 'else',\n 'eventhandler',\n 'exists',\n 'extends',\n 'final',\n 'finally',\n 'firstfast',\n 'firstonly',\n 'firstonly1',\n 'firstonly10',\n 'firstonly100',\n 'firstonly1000',\n 'flush',\n 'for',\n 'forceliterals',\n 'forcenestedloop',\n 'forceplaceholders',\n 'forceselectorder',\n 'forupdate',\n 'from',\n 'generateonly',\n 'group',\n 'hint',\n 'if',\n 'implements',\n 'in',\n 'index',\n 'insert_recordset',\n 'interface',\n 'internal',\n 'is',\n 'join',\n 'like',\n 'maxof',\n 'minof',\n 'mod',\n 'namespace',\n 'new',\n 'next',\n 'nofetch',\n 'notexists',\n 'optimisticlock',\n 'order',\n 'outer',\n 'pessimisticlock',\n 'print',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'repeatableread',\n 'retry',\n 'return',\n 'reverse',\n 'select',\n 'server',\n 'setting',\n 'static',\n 'sum',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'ttsabort',\n 'ttsbegin',\n 'ttscommit',\n 'unchecked',\n 'update_recordset',\n 'using',\n 'validtimestate',\n 'void',\n 'where',\n 'while'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS,\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n\n return {\n name: 'X++',\n aliases: ['x++'],\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n illegal: ':',\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = axapta;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Bash\nAuthor: vah <vahtenberg@gmail.com>\nContributrors: Benjamin Pannell <contact@sierrasoftworks.com>\nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n const VAR = {};\n const BRACED_VAR = {\n begin: /\\$\\{/,\n end:/\\}/,\n contains: [\n \"self\",\n {\n begin: /:-/,\n contains: [ VAR ]\n } // default values\n ]\n };\n Object.assign(VAR,{\n className: 'variable',\n variants: [\n {begin: concat(/\\$[\\w\\d#@][\\w\\d_]*/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![\\\\w\\\\d])(?![$])`) },\n BRACED_VAR\n ]\n });\n\n const SUBST = {\n className: 'subst',\n begin: /\\$\\(/, end: /\\)/,\n contains: [hljs.BACKSLASH_ESCAPE]\n };\n const HERE_DOC = {\n begin: /<<-?\\s*(?=\\w+)/,\n starts: {\n contains: [\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n className: 'string'\n })\n ]\n }\n };\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/, end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n SUBST\n ]\n };\n SUBST.contains.push(QUOTE_STRING);\n const ESCAPED_QUOTE = {\n className: '',\n begin: /\\\\\"/\n\n };\n const APOS_STRING = {\n className: 'string',\n begin: /'/, end: /'/\n };\n const ARITHMETIC = {\n begin: /\\$\\(\\(/,\n end: /\\)\\)/,\n contains: [\n { begin: /\\d+#[0-9a-f]+/, className: \"number\" },\n hljs.NUMBER_MODE,\n VAR\n ]\n };\n const SH_LIKE_SHELLS = [\n \"fish\",\n \"bash\",\n \"zsh\",\n \"sh\",\n \"csh\",\n \"ksh\",\n \"tcsh\",\n \"dash\",\n \"scsh\",\n ];\n const KNOWN_SHEBANG = hljs.SHEBANG({\n binary: `(${SH_LIKE_SHELLS.join(\"|\")})`,\n relevance: 10\n });\n const FUNCTION = {\n className: 'function',\n begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n returnBegin: true,\n contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\\w[\\w\\d_]*/})],\n relevance: 0\n };\n\n return {\n name: 'Bash',\n aliases: ['sh', 'zsh'],\n keywords: {\n $pattern: /\\b[a-z._-]+\\b/,\n keyword:\n 'if then else elif fi for while in do done case esac function',\n literal:\n 'true false',\n built_in:\n // Shell built-ins\n // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +\n 'trap umask unset ' +\n // Bash built-ins\n 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +\n 'read readarray source type typeset ulimit unalias ' +\n // Shell modifiers\n 'set shopt ' +\n // Zsh built-ins\n 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +\n 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +\n 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +\n 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +\n 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +\n 'zpty zregexparse zsocket zstyle ztcp'\n },\n contains: [\n KNOWN_SHEBANG, // to catch known shells and boost relevancy\n hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n FUNCTION,\n ARITHMETIC,\n hljs.HASH_COMMENT_MODE,\n HERE_DOC,\n QUOTE_STRING,\n ESCAPED_QUOTE,\n APOS_STRING,\n VAR\n ]\n };\n}\n\nmodule.exports = bash;\n","/*\nLanguage: BASIC\nAuthor: Raphaël Assénat <raph@raphnet.net>\nDescription: Based on the BASIC reference from the Tandy 1000 guide\nWebsite: https://en.wikipedia.org/wiki/Tandy_1000\n*/\n\n/** @type LanguageFn */\nfunction basic(hljs) {\n return {\n name: 'BASIC',\n case_insensitive: true,\n illegal: '^\\.',\n // Support explicitly typed variables that end with $%! or #.\n keywords: {\n $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',\n keyword:\n 'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' +\n 'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' +\n 'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' +\n 'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' +\n 'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' +\n 'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' +\n 'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' +\n 'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' +\n 'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' +\n 'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' +\n 'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' +\n 'WEND WIDTH WINDOW WRITE XOR'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.COMMENT('REM', '$', {\n relevance: 10\n }),\n hljs.COMMENT('\\'', '$', {\n relevance: 0\n }),\n {\n // Match line numbers\n className: 'symbol',\n begin: '^[0-9]+ ',\n relevance: 10\n },\n {\n // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?([edED]\\\\d+)?[#\\!]?',\n relevance: 0\n },\n {\n // Match hexadecimal numbers (&Hxxxx)\n className: 'number',\n begin: '(&[hH][0-9a-fA-F]{1,4})'\n },\n {\n // Match octal numbers (&Oxxxxxx)\n className: 'number',\n begin: '(&[oO][0-7]{1,6})'\n }\n ]\n };\n}\n\nmodule.exports = basic;\n","/*\nLanguage: Backus–Naur Form\nWebsite: https://en.wikipedia.org/wiki/Backus–Naur_form\nAuthor: Oleg Efimov <efimovov@gmail.com>\n*/\n\n/** @type LanguageFn */\nfunction bnf(hljs) {\n return {\n name: 'Backus–Naur Form',\n contains: [\n // Attribute\n {\n className: 'attribute',\n begin: /</,\n end: />/\n },\n // Specific\n {\n begin: /::=/,\n end: /$/,\n contains: [\n {\n begin: /</,\n end: />/\n },\n // Common\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = bnf;\n","/*\nLanguage: Brainfuck\nAuthor: Evgeny Stepanischev <imbolk@gmail.com>\nWebsite: https://esolangs.org/wiki/Brainfuck\n*/\n\n/** @type LanguageFn */\nfunction brainfuck(hljs) {\n const LITERAL = {\n className: 'literal',\n begin: /[+-]/,\n relevance: 0\n };\n return {\n name: 'Brainfuck',\n aliases: ['bf'],\n contains: [\n hljs.COMMENT(\n '[^\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n '[\\\\[\\\\]\\\\.,\\\\+\\\\-<> \\r\\n]',\n {\n returnEnd: true,\n relevance: 0\n }\n ),\n {\n className: 'title',\n begin: '[\\\\[\\\\]]',\n relevance: 0\n },\n {\n className: 'string',\n begin: '[\\\\.,]',\n relevance: 0\n },\n {\n // this mode works as the only relevance counter\n begin: /(?:\\+\\+|--)/,\n contains: [LITERAL]\n },\n LITERAL\n ]\n };\n}\n\nmodule.exports = brainfuck;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cPlusPlus(hljs) {\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(' +\n DECLTYPE_AUTO_RE + '|' +\n optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n const CPP_PRIMITIVE_TYPES = {\n className: 'keyword',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const COMMON_CPP_HINTS = [\n 'asin',\n 'atan2',\n 'atan',\n 'calloc',\n 'ceil',\n 'cosh',\n 'cos',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'auto_ptr',\n 'deque',\n 'list',\n 'queue',\n 'stack',\n 'vector',\n 'map',\n 'set',\n 'pair',\n 'bitset',\n 'multiset',\n 'multimap',\n 'unordered_set',\n 'fscanf',\n 'future',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'tolower',\n 'toupper',\n 'labs',\n 'ldexp',\n 'log10',\n 'log',\n 'malloc',\n 'realloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'scanf',\n 'sinh',\n 'sin',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'tanh',\n 'tan',\n 'unordered_map',\n 'unordered_multiset',\n 'unordered_multimap',\n 'priority_queue',\n 'make_pair',\n 'array',\n 'shared_ptr',\n 'abort',\n 'terminate',\n 'abs',\n 'acos',\n 'vfprintf',\n 'vprintf',\n 'vsprintf',\n 'endl',\n 'initializer_list',\n 'unique_ptr',\n 'complex',\n 'imaginary',\n 'std',\n 'string',\n 'wstring',\n 'cin',\n 'cout',\n 'cerr',\n 'clog',\n 'stdin',\n 'stdout',\n 'stderr',\n 'stringstream',\n 'istringstream',\n 'ostringstream'\n ];\n\n const CPP_KEYWORDS = {\n keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n 'unsigned long volatile static protected bool template mutable if public friend ' +\n 'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n 'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n 'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n 'concept co_await co_return co_yield requires ' +\n 'noexcept static_assert thread_local restrict final override ' +\n 'atomic_bool atomic_char atomic_schar ' +\n 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n 'atomic_ullong new throw return ' +\n 'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n built_in: '_Bool _Complex _Imaginary',\n _relevance_hints: COMMON_CPP_HINTS,\n literal: 'true false nullptr NULL'\n };\n\n const FUNCTION_DISPATCH = {\n className: \"function.dispatch\",\n relevance: 0,\n keywords: CPP_KEYWORDS,\n begin: concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!while)/,\n hljs.IDENT_RE,\n lookahead(/\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: '</',\n classNameAliases: {\n \"function.dispatch\": \"built_in\"\n },\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n FUNCTION_DISPATCH,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n { // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [\n {\n beginKeywords: \"final class struct\"\n },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: CPP_KEYWORDS\n }\n };\n}\n\n/*\nLanguage: C-like (deprecated, use C and C++ instead)\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>, Sam Wu <samsam2310@gmail.com>, Jordi Petit <jordi.petit@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, Google Inc. (David Benjamin) <davidben@google.com>\n*/\n\n/** @type LanguageFn */\nfunction cLike(hljs) {\n const lang = cPlusPlus(hljs);\n\n const C_ALIASES = [\n \"c\",\n \"h\"\n ];\n\n const CPP_ALIASES = [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ];\n\n lang.disableAutodetect = true;\n lang.aliases = [];\n // support users only loading c-like (legacy)\n if (!hljs.getLanguage(\"c\")) lang.aliases.push(...C_ALIASES);\n if (!hljs.getLanguage(\"cpp\")) lang.aliases.push(...CPP_ALIASES);\n\n // if c and cpp are loaded after then they will reclaim these\n // aliases for themselves\n\n return lang;\n}\n\nmodule.exports = cLike;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: C\nCategory: common, system\nWebsite: https://en.wikipedia.org/wiki/C_(programming_language)\n*/\n\n/** @type LanguageFn */\nfunction c(hljs) {\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(' +\n DECLTYPE_AUTO_RE + '|' +\n optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n const CPP_PRIMITIVE_TYPES = {\n className: 'keyword',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const CPP_KEYWORDS = {\n keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n 'unsigned long volatile static protected bool template mutable if public friend ' +\n 'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n 'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n 'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n 'concept co_await co_return co_yield requires ' +\n 'noexcept static_assert thread_local restrict final override ' +\n 'atomic_bool atomic_char atomic_schar ' +\n 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n 'atomic_ullong new throw return ' +\n 'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +\n 'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set ' +\n 'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos ' +\n 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +\n 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +\n 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +\n 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +\n 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +\n 'vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary',\n literal: 'true false nullptr NULL'\n };\n\n const EXPRESSION_CONTAINS = [\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: \"C\",\n aliases: [\n 'h'\n ],\n keywords: CPP_KEYWORDS,\n // Until differentiations are added between `c` and `cpp`, `c` will\n // not be auto-detected to avoid auto-detect conflicts between C and C++\n disableAutodetect: true,\n illegal: '</',\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n { // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [\n {\n beginKeywords: \"final class struct\"\n },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: CPP_KEYWORDS\n }\n };\n}\n\nmodule.exports = c;\n","/*\nLanguage: C/AL\nAuthor: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>\nDescription: Provides highlighting of Microsoft Dynamics NAV C/AL code files\nWebsite: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al\n*/\n\n/** @type LanguageFn */\nfunction cal(hljs) {\n const KEYWORDS =\n 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +\n 'until while with var';\n const LITERALS = 'false true';\n const COMMENT_MODES = [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT(\n /\\{/,\n /\\}/,\n {\n relevance: 0\n }\n ),\n hljs.COMMENT(\n /\\(\\*/,\n /\\*\\)/,\n {\n relevance: 10\n }\n )\n ];\n const STRING = {\n className: 'string',\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/\n }]\n };\n const CHAR_STRING = {\n className: 'string',\n begin: /(#\\d+)+/\n };\n const DATE = {\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(DT|D|T)',\n relevance: 0\n };\n const DBL_QUOTED_VARIABLE = {\n className: 'string', // not a string technically but makes sense to be highlighted in the same style\n begin: '\"',\n end: '\"'\n };\n\n const PROCEDURE = {\n className: 'function',\n beginKeywords: 'procedure',\n end: /[:;]/,\n keywords: 'procedure|10',\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING\n ]\n }\n ].concat(COMMENT_MODES)\n };\n\n const OBJECT = {\n className: 'class',\n begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\\\d+) ([^\\\\r\\\\n]+)',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n PROCEDURE\n ]\n };\n\n return {\n name: 'C/AL',\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS,\n literal: LITERALS\n },\n illegal: /\\/\\*/,\n contains: [\n STRING,\n CHAR_STRING,\n DATE,\n DBL_QUOTED_VARIABLE,\n hljs.NUMBER_MODE,\n OBJECT,\n PROCEDURE\n ]\n };\n}\n\nmodule.exports = cal;\n","/*\nLanguage: Cap’n Proto\nAuthor: Oleg Efimov <efimovov@gmail.com>\nDescription: Cap’n Proto message definition format\nWebsite: https://capnproto.org/capnp-tool.html\nCategory: protocols\n*/\n\n/** @type LanguageFn */\nfunction capnproto(hljs) {\n return {\n name: 'Cap’n Proto',\n aliases: ['capnp'],\n keywords: {\n keyword:\n 'struct enum interface union group import using const annotation extends in of on as with from fixed',\n built_in:\n 'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +\n 'Text Data AnyPointer AnyStruct Capability List',\n literal:\n 'true false'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.HASH_COMMENT_MODE,\n {\n className: 'meta',\n begin: /@0x[\\w\\d]{16};/,\n illegal: /\\n/\n },\n {\n className: 'symbol',\n begin: /@\\d+\\b/\n },\n {\n className: 'class',\n beginKeywords: 'struct enum',\n end: /\\{/,\n illegal: /\\n/,\n contains: [hljs.inherit(hljs.TITLE_MODE, {\n starts: {\n endsWithParent: true,\n excludeEnd: true\n } // hack: eating everything after the first title\n })]\n },\n {\n className: 'class',\n beginKeywords: 'interface',\n end: /\\{/,\n illegal: /\\n/,\n contains: [hljs.inherit(hljs.TITLE_MODE, {\n starts: {\n endsWithParent: true,\n excludeEnd: true\n } // hack: eating everything after the first title\n })]\n }\n ]\n };\n}\n\nmodule.exports = capnproto;\n","/*\nLanguage: Ceylon\nAuthor: Lucas Werkmeister <mail@lucaswerkmeister.de>\nWebsite: https://ceylon-lang.org\n*/\n\n/** @type LanguageFn */\nfunction ceylon(hljs) {\n // 2.3. Identifiers and keywords\n const KEYWORDS =\n 'assembly module package import alias class interface object given value ' +\n 'assign void function new of extends satisfies abstracts in out return ' +\n 'break continue throw assert dynamic if else switch case for while try ' +\n 'catch finally then let this outer super is exists nonempty';\n // 7.4.1 Declaration Modifiers\n const DECLARATION_MODIFIERS =\n 'shared abstract formal default actual variable late native deprecated ' +\n 'final sealed annotation suppressWarnings small';\n // 7.4.2 Documentation\n const DOCUMENTATION =\n 'doc by license see throws tagged';\n const SUBST = {\n className: 'subst',\n excludeBegin: true,\n excludeEnd: true,\n begin: /``/,\n end: /``/,\n keywords: KEYWORDS,\n relevance: 10\n };\n const EXPRESSIONS = [\n {\n // verbatim string\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n },\n {\n // string literal or template\n className: 'string',\n begin: '\"',\n end: '\"',\n contains: [SUBST]\n },\n {\n // character literal\n className: 'string',\n begin: \"'\",\n end: \"'\"\n },\n {\n // numeric literal\n className: 'number',\n begin: '#[0-9a-fA-F_]+|\\\\$[01_]+|[0-9_]+(?:\\\\.[0-9_](?:[eE][+-]?\\\\d+)?)?[kMGTPmunpf]?',\n relevance: 0\n }\n ];\n SUBST.contains = EXPRESSIONS;\n\n return {\n name: 'Ceylon',\n keywords: {\n keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,\n meta: DOCUMENTATION\n },\n illegal: '\\\\$[^01]|#[^0-9a-fA-F]',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: ['self']\n }),\n {\n // compiler annotation\n className: 'meta',\n begin: '@[a-z]\\\\w*(?::\"[^\"]*\")?'\n }\n ].concat(EXPRESSIONS)\n };\n}\n\nmodule.exports = ceylon;\n","/*\nLanguage: Clean\nAuthor: Camil Staps <info@camilstaps.nl>\nCategory: functional\nWebsite: http://clean.cs.ru.nl\n*/\n\n/** @type LanguageFn */\nfunction clean(hljs) {\n return {\n name: 'Clean',\n aliases: [\n 'icl',\n 'dcl'\n ],\n keywords: {\n keyword:\n 'if let in with where case of class instance otherwise ' +\n 'implementation definition system module from import qualified as ' +\n 'special code inline foreign export ccall stdcall generic derive ' +\n 'infix infixl infixr',\n built_in:\n 'Int Real Char Bool',\n literal:\n 'True False'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n { // relevance booster\n begin: '->|<-[|:]?|#!?|>>=|\\\\{\\\\||\\\\|\\\\}|:==|=:|<>'\n }\n ]\n };\n}\n\nmodule.exports = clean;\n","/*\nLanguage: Clojure\nDescription: Clojure syntax (based on lisp.js)\nAuthor: mfornos\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojure(hljs) {\n const SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&#\\'';\n const SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';\n const globals = 'def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord';\n const keywords = {\n $pattern: SYMBOL_RE,\n 'builtin-name':\n // Clojure keywords\n globals + ' ' +\n 'cond apply if-not if-let if not not= =|0 <|0 >|0 <=|0 >=|0 ==|0 +|0 /|0 *|0 -|0 rem ' +\n 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? ' +\n 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? ' +\n 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? ' +\n 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . ' +\n 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last ' +\n 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate ' +\n 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext ' +\n 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends ' +\n 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler ' +\n 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter ' +\n 'monitor-exit macroexpand macroexpand-1 for dosync and or ' +\n 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert ' +\n 'peek pop doto proxy first rest cons cast coll last butlast ' +\n 'sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import ' +\n 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! ' +\n 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger ' +\n 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline ' +\n 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking ' +\n 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! ' +\n 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! ' +\n 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty ' +\n 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list ' +\n 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer ' +\n 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate ' +\n 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta ' +\n 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'\n };\n\n const SIMPLE_NUMBER_RE = '[-+]?\\\\d+(\\\\.\\\\d+)?';\n\n const SYMBOL = {\n begin: SYMBOL_RE,\n relevance: 0\n };\n const NUMBER = {\n className: 'number',\n begin: SIMPLE_NUMBER_RE,\n relevance: 0\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const COMMENT = hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n );\n const LITERAL = {\n className: 'literal',\n begin: /\\b(true|false|nil)\\b/\n };\n const COLLECTION = {\n begin: '[\\\\[\\\\{]',\n end: '[\\\\]\\\\}]'\n };\n const HINT = {\n className: 'comment',\n begin: '\\\\^' + SYMBOL_RE\n };\n const HINT_COL = hljs.COMMENT('\\\\^\\\\{', '\\\\}');\n const KEY = {\n className: 'symbol',\n begin: '[:]{1,2}' + SYMBOL_RE\n };\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)'\n };\n const BODY = {\n endsWithParent: true,\n relevance: 0\n };\n const NAME = {\n keywords: keywords,\n className: 'name',\n begin: SYMBOL_RE,\n relevance: 0,\n starts: BODY\n };\n const DEFAULT_CONTAINS = [\n LIST,\n STRING,\n HINT,\n HINT_COL,\n COMMENT,\n KEY,\n COLLECTION,\n NUMBER,\n LITERAL,\n SYMBOL\n ];\n\n const GLOBAL = {\n beginKeywords: globals,\n lexemes: SYMBOL_RE,\n end: '(\\\\[|#|\\\\d|\"|:|\\\\{|\\\\)|\\\\(|$)',\n contains: [\n {\n className: 'title',\n begin: SYMBOL_RE,\n relevance: 0,\n excludeEnd: true,\n // we can only have a single title\n endsParent: true\n }\n ].concat(DEFAULT_CONTAINS)\n };\n\n LIST.contains = [\n hljs.COMMENT('comment', ''),\n GLOBAL,\n NAME,\n BODY\n ];\n BODY.contains = DEFAULT_CONTAINS;\n COLLECTION.contains = DEFAULT_CONTAINS;\n HINT_COL.contains = [ COLLECTION ];\n\n return {\n name: 'Clojure',\n aliases: [ 'clj' ],\n illegal: /\\S/,\n contains: [\n LIST,\n STRING,\n HINT,\n HINT_COL,\n COMMENT,\n KEY,\n COLLECTION,\n NUMBER,\n LITERAL\n ]\n };\n}\n\nmodule.exports = clojure;\n","/*\nLanguage: Clojure REPL\nDescription: Clojure REPL sessions\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nRequires: clojure.js\nWebsite: https://clojure.org\nCategory: lisp\n*/\n\n/** @type LanguageFn */\nfunction clojureRepl(hljs) {\n return {\n name: 'Clojure REPL',\n contains: [\n {\n className: 'meta',\n begin: /^([\\w.-]+|\\s*#_)?=>/,\n starts: {\n end: /$/,\n subLanguage: 'clojure'\n }\n }\n ]\n };\n}\n\nmodule.exports = clojureRepl;\n","/*\nLanguage: CMake\nDescription: CMake is an open-source cross-platform system for build automation.\nAuthor: Igor Kalnitsky <igor@kalnitsky.org>\nWebsite: https://cmake.org\n*/\n\n/** @type LanguageFn */\nfunction cmake(hljs) {\n return {\n name: 'CMake',\n aliases: ['cmake.in'],\n case_insensitive: true,\n keywords: {\n keyword:\n // scripting commands\n 'break cmake_host_system_information cmake_minimum_required cmake_parse_arguments ' +\n 'cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro ' +\n 'endwhile execute_process file find_file find_library find_package find_path ' +\n 'find_program foreach function get_cmake_property get_directory_property ' +\n 'get_filename_component get_property if include include_guard list macro ' +\n 'mark_as_advanced math message option return separate_arguments ' +\n 'set_directory_properties set_property set site_name string unset variable_watch while ' +\n // project commands\n 'add_compile_definitions add_compile_options add_custom_command add_custom_target ' +\n 'add_definitions add_dependencies add_executable add_library add_link_options ' +\n 'add_subdirectory add_test aux_source_directory build_command create_test_sourcelist ' +\n 'define_property enable_language enable_testing export fltk_wrap_ui ' +\n 'get_source_file_property get_target_property get_test_property include_directories ' +\n 'include_external_msproject include_regular_expression install link_directories ' +\n 'link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions ' +\n 'set_source_files_properties set_target_properties set_tests_properties source_group ' +\n 'target_compile_definitions target_compile_features target_compile_options ' +\n 'target_include_directories target_link_directories target_link_libraries ' +\n 'target_link_options target_sources try_compile try_run ' +\n // CTest commands\n 'ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ' +\n 'ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ' +\n 'ctest_test ctest_update ctest_upload ' +\n // deprecated commands\n 'build_name exec_program export_library_dependencies install_files install_programs ' +\n 'install_targets load_command make_directory output_required_files remove ' +\n 'subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file ' +\n 'qt5_use_modules qt5_use_package qt5_wrap_cpp ' +\n // core keywords\n 'on off true false and or not command policy target test exists is_newer_than ' +\n 'is_directory is_symlink is_absolute matches less greater equal less_equal ' +\n 'greater_equal strless strgreater strequal strless_equal strgreater_equal version_less ' +\n 'version_greater version_equal version_less_equal version_greater_equal in_list defined'\n },\n contains: [\n {\n className: 'variable',\n begin: /\\$\\{/,\n end: /\\}/\n },\n hljs.HASH_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = cmake;\n","const KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\nconst TYPES = [\n \"Intl\",\n \"DataView\",\n \"Number\",\n \"Math\",\n \"Date\",\n \"String\",\n \"RegExp\",\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Error\",\n \"Symbol\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"Proxy\",\n \"Reflect\",\n \"JSON\",\n \"Promise\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"ArrayBuffer\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n BUILT_IN_VARIABLES,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: CoffeeScript\nAuthor: Dmytrii Nagirniak <dnagir@gmail.com>\nContributors: Oleg Efimov <efimovov@gmail.com>, Cédric Néhémie <cedric.nehemie@gmail.com>\nDescription: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/\nCategory: common, scripting\nWebsite: https://coffeescript.org\n*/\n\n/** @type LanguageFn */\nfunction coffeescript(hljs) {\n const COFFEE_BUILT_INS = [\n 'npm',\n 'print'\n ];\n const COFFEE_LITERALS = [\n 'yes',\n 'no',\n 'on',\n 'off'\n ];\n const COFFEE_KEYWORDS = [\n 'then',\n 'unless',\n 'until',\n 'loop',\n 'by',\n 'when',\n 'and',\n 'or',\n 'is',\n 'isnt',\n 'not'\n ];\n const NOT_VALID_KEYWORDS = [\n \"var\",\n \"const\",\n \"let\",\n \"function\",\n \"static\"\n ];\n const excluding = (list) =>\n (kw) => !list.includes(kw);\n const KEYWORDS$1 = {\n keyword: KEYWORDS.concat(COFFEE_KEYWORDS).filter(excluding(NOT_VALID_KEYWORDS)),\n literal: LITERALS.concat(COFFEE_LITERALS),\n built_in: BUILT_INS.concat(COFFEE_BUILT_INS)\n };\n const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1\n };\n const EXPRESSIONS = [\n hljs.BINARY_NUMBER_MODE,\n hljs.inherit(hljs.C_NUMBER_MODE, {\n starts: {\n end: '(\\\\s*/)?',\n relevance: 0\n }\n }), // a number tries to eat the following slash to prevent treating it as a regexp\n {\n className: 'string',\n variants: [\n {\n begin: /'''/,\n end: /'''/,\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n }\n ]\n },\n {\n className: 'regexp',\n variants: [\n {\n begin: '///',\n end: '///',\n contains: [\n SUBST,\n hljs.HASH_COMMENT_MODE\n ]\n },\n {\n begin: '//[gim]{0,3}(?=\\\\W)',\n relevance: 0\n },\n {\n // regex can't start with space to parse x / 2 / 3 as two divisions\n // regex can't start with *, and it supports an \"illegal\" in the main mode\n begin: /\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/\n }\n ]\n },\n {\n begin: '@' + JS_IDENT_RE // relevance booster\n },\n {\n subLanguage: 'javascript',\n excludeBegin: true,\n excludeEnd: true,\n variants: [\n {\n begin: '```',\n end: '```'\n },\n {\n begin: '`',\n end: '`'\n }\n ]\n }\n ];\n SUBST.contains = EXPRESSIONS;\n\n const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n begin: JS_IDENT_RE\n });\n const POSSIBLE_PARAMS_RE = '(\\\\(.*\\\\)\\\\s*)?\\\\B[-=]>';\n const PARAMS = {\n className: 'params',\n begin: '\\\\([^\\\\(]',\n returnBegin: true,\n /* We need another contained nameless mode to not have every nested\n pair of parens to be called \"params\" */\n contains: [{\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: ['self'].concat(EXPRESSIONS)\n }]\n };\n\n return {\n name: 'CoffeeScript',\n aliases: [\n 'coffee',\n 'cson',\n 'iced'\n ],\n keywords: KEYWORDS$1,\n illegal: /\\/\\*/,\n contains: EXPRESSIONS.concat([\n hljs.COMMENT('###', '###'),\n hljs.HASH_COMMENT_MODE,\n {\n className: 'function',\n begin: '^\\\\s*' + JS_IDENT_RE + '\\\\s*=\\\\s*' + POSSIBLE_PARAMS_RE,\n end: '[-=]>',\n returnBegin: true,\n contains: [\n TITLE,\n PARAMS\n ]\n },\n {\n // anonymous function start\n begin: /[:\\(,=]\\s*/,\n relevance: 0,\n contains: [{\n className: 'function',\n begin: POSSIBLE_PARAMS_RE,\n end: '[-=]>',\n returnBegin: true,\n contains: [PARAMS]\n }]\n },\n {\n className: 'class',\n beginKeywords: 'class',\n end: '$',\n illegal: /[:=\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends',\n endsWithParent: true,\n illegal: /[:=\"\\[\\]]/,\n contains: [TITLE]\n },\n TITLE\n ]\n },\n {\n begin: JS_IDENT_RE + ':',\n end: ':',\n returnBegin: true,\n returnEnd: true,\n relevance: 0\n }\n ])\n };\n}\n\nmodule.exports = coffeescript;\n","/*\nLanguage: Coq\nAuthor: Stephan Boyer <stephan@stephanboyer.com>\nCategory: functional\nWebsite: https://coq.inria.fr\n*/\n\n/** @type LanguageFn */\nfunction coq(hljs) {\n return {\n name: 'Coq',\n keywords: {\n keyword:\n '_|0 as at cofix else end exists exists2 fix for forall fun if IF in let ' +\n 'match mod Prop return Set then Type using where with ' +\n 'Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo ' +\n 'Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion ' +\n 'Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture ' +\n 'Conjectures Constant constr Constraint Constructors Context Corollary ' +\n 'CreateHintDb Cut Declare Defined Definition Delimit Dependencies Dependent ' +\n 'Derive Drop eauto End Equality Eval Example Existential Existentials ' +\n 'Existing Export exporting Extern Extract Extraction Fact Field Fields File ' +\n 'Fixpoint Focus for From Function Functional Generalizable Global Goal Grab ' +\n 'Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident ' +\n 'Identity If Immediate Implicit Import Include Inductive Infix Info Initial ' +\n 'Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear ' +\n 'Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML ' +\n 'Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation ' +\n 'Obligations Opaque Open Optimize Options Parameter Parameters Parametric ' +\n 'Path Paths pattern Polymorphic Preterm Print Printing Program Projections ' +\n 'Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark ' +\n 'Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save ' +\n 'Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern ' +\n 'SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies ' +\n 'Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time ' +\n 'Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused ' +\n 'Unfold Universe Universes Unset Unshelve using Variable Variables Variant ' +\n 'Verbose Visibility where with',\n built_in:\n 'abstract absurd admit after apply as assert assumption at auto autorewrite ' +\n 'autounfold before bottom btauto by case case_eq cbn cbv change ' +\n 'classical_left classical_right clear clearbody cofix compare compute ' +\n 'congruence constr_eq constructor contradict contradiction cut cutrewrite ' +\n 'cycle decide decompose dependent destruct destruction dintuition ' +\n 'discriminate discrR do double dtauto eapply eassumption eauto ecase ' +\n 'econstructor edestruct ediscriminate eelim eexact eexists einduction ' +\n 'einjection eleft elim elimtype enough equality erewrite eright ' +\n 'esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail ' +\n 'field field_simplify field_simplify_eq first firstorder fix fold fourier ' +\n 'functional generalize generalizing gfail give_up has_evar hnf idtac in ' +\n 'induction injection instantiate intro intro_pattern intros intuition ' +\n 'inversion inversion_clear is_evar is_var lapply lazy left lia lra move ' +\n 'native_compute nia nsatz omega once pattern pose progress proof psatz quote ' +\n 'record red refine reflexivity remember rename repeat replace revert ' +\n 'revgoals rewrite rewrite_strat right ring ring_simplify rtauto set ' +\n 'setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry ' +\n 'setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve ' +\n 'specialize split split_Rabs split_Rmult stepl stepr subst sum swap ' +\n 'symmetry tactic tauto time timeout top transitivity trivial try tryif ' +\n 'unfold unify until using vm_compute with'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.COMMENT('\\\\(\\\\*', '\\\\*\\\\)'),\n hljs.C_NUMBER_MODE,\n {\n className: 'type',\n excludeBegin: true,\n begin: '\\\\|\\\\s*',\n end: '\\\\w+'\n },\n { // relevance booster\n begin: /[-=]>/\n }\n ]\n };\n}\n\nmodule.exports = coq;\n","/*\nLanguage: Caché Object Script\nAuthor: Nikita Savchenko <zitros.lab@gmail.com>\nCategory: enterprise, scripting\nWebsite: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls\n*/\n\n/** @type LanguageFn */\nfunction cos(hljs) {\n const STRINGS = {\n className: 'string',\n variants: [{\n begin: '\"',\n end: '\"',\n contains: [{ // escaped\n begin: \"\\\"\\\"\",\n relevance: 0\n }]\n }]\n };\n\n const NUMBERS = {\n className: \"number\",\n begin: \"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)\",\n relevance: 0\n };\n\n const COS_KEYWORDS =\n 'property parameter class classmethod clientmethod extends as break ' +\n 'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' +\n 'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' +\n 'tcommit throw trollback try tstart use view while write w|0 xecute x|0 ' +\n 'zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert ' +\n 'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' +\n 'zsync ascii';\n\n // registered function - no need in them due to all functions are highlighted,\n // but I'll just leave this here.\n\n // \"$bit\", \"$bitcount\",\n // \"$bitfind\", \"$bitlogic\", \"$case\", \"$char\", \"$classmethod\", \"$classname\",\n // \"$compile\", \"$data\", \"$decimal\", \"$double\", \"$extract\", \"$factor\",\n // \"$find\", \"$fnumber\", \"$get\", \"$increment\", \"$inumber\", \"$isobject\",\n // \"$isvaliddouble\", \"$isvalidnum\", \"$justify\", \"$length\", \"$list\",\n // \"$listbuild\", \"$listdata\", \"$listfind\", \"$listfromstring\", \"$listget\",\n // \"$listlength\", \"$listnext\", \"$listsame\", \"$listtostring\", \"$listvalid\",\n // \"$locate\", \"$match\", \"$method\", \"$name\", \"$nconvert\", \"$next\",\n // \"$normalize\", \"$now\", \"$number\", \"$order\", \"$parameter\", \"$piece\",\n // \"$prefetchoff\", \"$prefetchon\", \"$property\", \"$qlength\", \"$qsubscript\",\n // \"$query\", \"$random\", \"$replace\", \"$reverse\", \"$sconvert\", \"$select\",\n // \"$sortbegin\", \"$sortend\", \"$stack\", \"$text\", \"$translate\", \"$view\",\n // \"$wascii\", \"$wchar\", \"$wextract\", \"$wfind\", \"$wiswide\", \"$wlength\",\n // \"$wreverse\", \"$xecute\", \"$zabs\", \"$zarccos\", \"$zarcsin\", \"$zarctan\",\n // \"$zcos\", \"$zcot\", \"$zcsc\", \"$zdate\", \"$zdateh\", \"$zdatetime\",\n // \"$zdatetimeh\", \"$zexp\", \"$zhex\", \"$zln\", \"$zlog\", \"$zpower\", \"$zsec\",\n // \"$zsin\", \"$zsqr\", \"$ztan\", \"$ztime\", \"$ztimeh\", \"$zboolean\",\n // \"$zconvert\", \"$zcrc\", \"$zcyc\", \"$zdascii\", \"$zdchar\", \"$zf\",\n // \"$ziswide\", \"$zlascii\", \"$zlchar\", \"$zname\", \"$zposition\", \"$zqascii\",\n // \"$zqchar\", \"$zsearch\", \"$zseek\", \"$zstrip\", \"$zwascii\", \"$zwchar\",\n // \"$zwidth\", \"$zwpack\", \"$zwbpack\", \"$zwunpack\", \"$zwbunpack\", \"$zzenkaku\",\n // \"$change\", \"$mv\", \"$mvat\", \"$mvfmt\", \"$mvfmts\", \"$mviconv\",\n // \"$mviconvs\", \"$mvinmat\", \"$mvlover\", \"$mvoconv\", \"$mvoconvs\", \"$mvraise\",\n // \"$mvtrans\", \"$mvv\", \"$mvname\", \"$zbitand\", \"$zbitcount\", \"$zbitfind\",\n // \"$zbitget\", \"$zbitlen\", \"$zbitnot\", \"$zbitor\", \"$zbitset\", \"$zbitstr\",\n // \"$zbitxor\", \"$zincrement\", \"$znext\", \"$zorder\", \"$zprevious\", \"$zsort\",\n // \"device\", \"$ecode\", \"$estack\", \"$etrap\", \"$halt\", \"$horolog\",\n // \"$io\", \"$job\", \"$key\", \"$namespace\", \"$principal\", \"$quit\", \"$roles\",\n // \"$storage\", \"$system\", \"$test\", \"$this\", \"$tlevel\", \"$username\",\n // \"$x\", \"$y\", \"$za\", \"$zb\", \"$zchild\", \"$zeof\", \"$zeos\", \"$zerror\",\n // \"$zhorolog\", \"$zio\", \"$zjob\", \"$zmode\", \"$znspace\", \"$zparent\", \"$zpi\",\n // \"$zpos\", \"$zreference\", \"$zstorage\", \"$ztimestamp\", \"$ztimezone\",\n // \"$ztrap\", \"$zversion\"\n\n return {\n name: 'Caché Object Script',\n case_insensitive: true,\n aliases: [\n \"cls\"\n ],\n keywords: COS_KEYWORDS,\n contains: [\n NUMBERS,\n STRINGS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: \"comment\",\n begin: /;/,\n end: \"$\",\n relevance: 0\n },\n { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1)\n className: \"built_in\",\n begin: /(?:\\$\\$?|\\.\\.)\\^?[a-zA-Z]+/\n },\n { // Macro command: quit $$$OK\n className: \"built_in\",\n begin: /\\$\\$\\$[a-zA-Z]+/\n },\n { // Special (global) variables: write %request.Content; Built-in classes: %Library.Integer\n className: \"built_in\",\n begin: /%[a-z]+(?:\\.[a-z]+)*/\n },\n { // Global variable: set ^globalName = 12 write ^globalName\n className: \"symbol\",\n begin: /\\^%?[a-zA-Z][\\w]*/\n },\n { // Some control constructions: do ##class(Package.ClassName).Method(), ##super()\n className: \"keyword\",\n begin: /##class|##super|#define|#dim/\n },\n // sub-languages: are not fully supported by hljs by 11/15/2015\n // left for the future implementation.\n {\n begin: /&sql\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n subLanguage: \"sql\"\n },\n {\n begin: /&(js|jscript|javascript)</,\n end: />/,\n excludeBegin: true,\n excludeEnd: true,\n subLanguage: \"javascript\"\n },\n {\n // this brakes first and last tag, but this is the only way to embed a valid html\n begin: /&html<\\s*</,\n end: />\\s*>/,\n subLanguage: \"xml\"\n }\n ]\n };\n}\n\nmodule.exports = cos;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nfunction cpp(hljs) {\n // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n // not include such support nor can we be sure all the grammars depending\n // on it would desire this behavior\n const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', {\n contains: [\n {\n begin: /\\\\\\n/\n }\n ]\n });\n const DECLTYPE_AUTO_RE = 'decltype\\\\(auto\\\\)';\n const NAMESPACE_RE = '[a-zA-Z_]\\\\w*::';\n const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';\n const FUNCTION_TYPE_RE = '(' +\n DECLTYPE_AUTO_RE + '|' +\n optional(NAMESPACE_RE) +\n '[a-zA-Z_]\\\\w*' + optional(TEMPLATE_ARGUMENT_RE) +\n ')';\n const CPP_PRIMITIVE_TYPES = {\n className: 'keyword',\n begin: '\\\\b[a-z\\\\d_]*_t\\\\b'\n };\n\n // https://en.cppreference.com/w/cpp/language/escape\n // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n const CHARACTER_ESCAPES = '\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)';\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '(u8?|U|L)?\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '(u8?|U|L)?\\'(' + CHARACTER_ESCAPES + \"|.)\",\n end: '\\'',\n illegal: '.'\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n end: /\\)([^()\\\\ ]{0,16})\"/\n })\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'if else elif endif define undef warning error line ' +\n 'pragma _Pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<.*?>/\n },\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const TITLE_MODE = {\n className: 'title',\n begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,\n relevance: 0\n };\n\n const FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\\\s*\\\\(';\n\n const COMMON_CPP_HINTS = [\n 'asin',\n 'atan2',\n 'atan',\n 'calloc',\n 'ceil',\n 'cosh',\n 'cos',\n 'exit',\n 'exp',\n 'fabs',\n 'floor',\n 'fmod',\n 'fprintf',\n 'fputs',\n 'free',\n 'frexp',\n 'auto_ptr',\n 'deque',\n 'list',\n 'queue',\n 'stack',\n 'vector',\n 'map',\n 'set',\n 'pair',\n 'bitset',\n 'multiset',\n 'multimap',\n 'unordered_set',\n 'fscanf',\n 'future',\n 'isalnum',\n 'isalpha',\n 'iscntrl',\n 'isdigit',\n 'isgraph',\n 'islower',\n 'isprint',\n 'ispunct',\n 'isspace',\n 'isupper',\n 'isxdigit',\n 'tolower',\n 'toupper',\n 'labs',\n 'ldexp',\n 'log10',\n 'log',\n 'malloc',\n 'realloc',\n 'memchr',\n 'memcmp',\n 'memcpy',\n 'memset',\n 'modf',\n 'pow',\n 'printf',\n 'putchar',\n 'puts',\n 'scanf',\n 'sinh',\n 'sin',\n 'snprintf',\n 'sprintf',\n 'sqrt',\n 'sscanf',\n 'strcat',\n 'strchr',\n 'strcmp',\n 'strcpy',\n 'strcspn',\n 'strlen',\n 'strncat',\n 'strncmp',\n 'strncpy',\n 'strpbrk',\n 'strrchr',\n 'strspn',\n 'strstr',\n 'tanh',\n 'tan',\n 'unordered_map',\n 'unordered_multiset',\n 'unordered_multimap',\n 'priority_queue',\n 'make_pair',\n 'array',\n 'shared_ptr',\n 'abort',\n 'terminate',\n 'abs',\n 'acos',\n 'vfprintf',\n 'vprintf',\n 'vsprintf',\n 'endl',\n 'initializer_list',\n 'unique_ptr',\n 'complex',\n 'imaginary',\n 'std',\n 'string',\n 'wstring',\n 'cin',\n 'cout',\n 'cerr',\n 'clog',\n 'stdin',\n 'stdout',\n 'stderr',\n 'stringstream',\n 'istringstream',\n 'ostringstream'\n ];\n\n const CPP_KEYWORDS = {\n keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +\n 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +\n 'unsigned long volatile static protected bool template mutable if public friend ' +\n 'do goto auto void enum else break extern using asm case typeid wchar_t ' +\n 'short reinterpret_cast|10 default double register explicit signed typename try this ' +\n 'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +\n 'concept co_await co_return co_yield requires ' +\n 'noexcept static_assert thread_local restrict final override ' +\n 'atomic_bool atomic_char atomic_schar ' +\n 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +\n 'atomic_ullong new throw return ' +\n 'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',\n built_in: '_Bool _Complex _Imaginary',\n _relevance_hints: COMMON_CPP_HINTS,\n literal: 'true false nullptr NULL'\n };\n\n const FUNCTION_DISPATCH = {\n className: \"function.dispatch\",\n relevance: 0,\n keywords: CPP_KEYWORDS,\n begin: concat(\n /\\b/,\n /(?!decltype)/,\n /(?!if)/,\n /(?!for)/,\n /(?!while)/,\n hljs.IDENT_RE,\n lookahead(/\\s*\\(/))\n };\n\n const EXPRESSION_CONTAINS = [\n FUNCTION_DISPATCH,\n PREPROCESSOR,\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ];\n\n\n const EXPRESSION_CONTEXT = {\n // This mode covers expression context where we can't expect a function\n // definition and shouldn't highlight anything that looks like one:\n // `return some()`, `else if()`, `(x*sum(1, 2))`\n variants: [\n {\n begin: /=/,\n end: /;/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n beginKeywords: 'new throw return else',\n end: /;/\n }\n ],\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n contains: EXPRESSION_CONTAINS.concat([ 'self' ]),\n relevance: 0\n }\n ]),\n relevance: 0\n };\n\n const FUNCTION_DECLARATION = {\n className: 'function',\n begin: '(' + FUNCTION_TYPE_RE + '[\\\\*&\\\\s]+)+' + FUNCTION_TITLE,\n returnBegin: true,\n end: /[{;=]/,\n excludeEnd: true,\n keywords: CPP_KEYWORDS,\n illegal: /[^\\w\\s\\*&:<>.]/,\n contains: [\n { // to prevent it from being confused as the function title\n begin: DECLTYPE_AUTO_RE,\n keywords: CPP_KEYWORDS,\n relevance: 0\n },\n {\n begin: FUNCTION_TITLE,\n returnBegin: true,\n contains: [ TITLE_MODE ],\n relevance: 0\n },\n // needed because we do not have look-behind on the below rule\n // to prevent it from grabbing the final : in a :: pair\n {\n begin: /::/,\n relevance: 0\n },\n // initializers\n {\n begin: /:/,\n endsWithParent: true,\n contains: [\n STRINGS,\n NUMBERS\n ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES,\n // Count matching parentheses.\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: CPP_KEYWORDS,\n relevance: 0,\n contains: [\n 'self',\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRINGS,\n NUMBERS,\n CPP_PRIMITIVE_TYPES\n ]\n }\n ]\n },\n CPP_PRIMITIVE_TYPES,\n C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n PREPROCESSOR\n ]\n };\n\n return {\n name: 'C++',\n aliases: [\n 'cc',\n 'c++',\n 'h++',\n 'hpp',\n 'hh',\n 'hxx',\n 'cxx'\n ],\n keywords: CPP_KEYWORDS,\n illegal: '</',\n classNameAliases: {\n \"function.dispatch\": \"built_in\"\n },\n contains: [].concat(\n EXPRESSION_CONTEXT,\n FUNCTION_DECLARATION,\n FUNCTION_DISPATCH,\n EXPRESSION_CONTAINS,\n [\n PREPROCESSOR,\n { // containers: ie, `vector <int> rooms (9);`\n begin: '\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',\n end: '>',\n keywords: CPP_KEYWORDS,\n contains: [\n 'self',\n CPP_PRIMITIVE_TYPES\n ]\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: CPP_KEYWORDS\n },\n {\n className: 'class',\n beginKeywords: 'enum class struct union',\n end: /[{;:<>=]/,\n contains: [\n {\n beginKeywords: \"final class struct\"\n },\n hljs.TITLE_MODE\n ]\n }\n ]),\n exports: {\n preprocessor: PREPROCESSOR,\n strings: STRINGS,\n keywords: CPP_KEYWORDS\n }\n };\n}\n\nmodule.exports = cpp;\n","/*\nLanguage: crmsh\nAuthor: Kristoffer Gronlund <kgronlund@suse.com>\nWebsite: http://crmsh.github.io\nDescription: Syntax Highlighting for the crmsh DSL\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction crmsh(hljs) {\n const RESOURCES = 'primitive rsc_template';\n const COMMANDS = 'group clone ms master location colocation order fencing_topology ' +\n 'rsc_ticket acl_target acl_group user role ' +\n 'tag xml';\n const PROPERTY_SETS = 'property rsc_defaults op_defaults';\n const KEYWORDS = 'params meta operations op rule attributes utilization';\n const OPERATORS = 'read write deny defined not_defined in_range date spec in ' +\n 'ref reference attribute type xpath version and or lt gt tag ' +\n 'lte gte eq ne \\\\';\n const TYPES = 'number string';\n const LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';\n\n return {\n name: 'crmsh',\n aliases: [\n 'crm',\n 'pcmk'\n ],\n case_insensitive: true,\n keywords: {\n keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,\n literal: LITERALS\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n beginKeywords: 'node',\n starts: {\n end: '\\\\s*([\\\\w_-]+:)?',\n starts: {\n className: 'title',\n end: '\\\\s*[\\\\$\\\\w_][\\\\w_-]*'\n }\n }\n },\n {\n beginKeywords: RESOURCES,\n starts: {\n className: 'title',\n end: '\\\\s*[\\\\$\\\\w_][\\\\w_-]*',\n starts: {\n end: '\\\\s*@?[\\\\w_][\\\\w_\\\\.:-]*'\n }\n }\n },\n {\n begin: '\\\\b(' + COMMANDS.split(' ').join('|') + ')\\\\s+',\n keywords: COMMANDS,\n starts: {\n className: 'title',\n end: '[\\\\$\\\\w_][\\\\w_-]*'\n }\n },\n {\n beginKeywords: PROPERTY_SETS,\n starts: {\n className: 'title',\n end: '\\\\s*([\\\\w_-]+:)?'\n }\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'meta',\n begin: '(ocf|systemd|service|lsb):[\\\\w_:-]+',\n relevance: 0\n },\n {\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(ms|s|h|m)?',\n relevance: 0\n },\n {\n className: 'literal',\n begin: '[-]?(infinity|inf)',\n relevance: 0\n },\n {\n className: 'attr',\n begin: /([A-Za-z$_#][\\w_-]+)=/,\n relevance: 0\n },\n {\n className: 'tag',\n begin: '</?',\n end: '/?>',\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = crmsh;\n","/*\nLanguage: Crystal\nAuthor: TSUYUSATO Kitsune <make.just.on@gmail.com>\nWebsite: https://crystal-lang.org\n*/\n\n/** @type LanguageFn */\nfunction crystal(hljs) {\n const INT_SUFFIX = '(_?[ui](8|16|32|64|128))?';\n const FLOAT_SUFFIX = '(_?f(32|64))?';\n const CRYSTAL_IDENT_RE = '[a-zA-Z_]\\\\w*[!?=]?';\n const CRYSTAL_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\\\*\\\\*|\\\\[\\\\][=?]?';\n const CRYSTAL_PATH_RE = '[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|!)?';\n const CRYSTAL_KEYWORDS = {\n $pattern: CRYSTAL_IDENT_RE,\n keyword:\n 'abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +\n 'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +\n 'return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield ' +\n '__DIR__ __END_LINE__ __FILE__ __LINE__',\n literal: 'false nil true'\n };\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: CRYSTAL_KEYWORDS\n };\n const EXPANSION = {\n className: 'template-variable',\n variants: [\n {\n begin: '\\\\{\\\\{',\n end: '\\\\}\\\\}'\n },\n {\n begin: '\\\\{%',\n end: '%\\\\}'\n }\n ],\n keywords: CRYSTAL_KEYWORDS\n };\n\n function recursiveParen(begin, end) {\n const\n contains = [\n {\n begin: begin,\n end: end\n }\n ];\n contains[0].contains = contains;\n return contains;\n }\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: '%[Qwi]?\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%[Qwi]?\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%[Qwi]?\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%[Qwi]?<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%[Qwi]?\\\\|',\n end: '\\\\|'\n },\n {\n begin: /<<-\\w+$/,\n end: /^\\s*\\w+$/\n }\n ],\n relevance: 0\n };\n const Q_STRING = {\n className: 'string',\n variants: [\n {\n begin: '%q\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%q\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%q\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%q<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%q\\\\|',\n end: '\\\\|'\n },\n {\n begin: /<<-'\\w+'$/,\n end: /^\\s*\\w+$/\n }\n ],\n relevance: 0\n };\n const REGEXP = {\n begin: '(?!%\\\\})(' + hljs.RE_STARTERS_RE + '|\\\\n|\\\\b(case|if|select|unless|until|when|while)\\\\b)\\\\s*',\n keywords: 'case if select unless until when while',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: '//[a-z]*',\n relevance: 0\n },\n {\n begin: '/(?!\\\\/)',\n end: '/[a-z]*'\n }\n ]\n }\n ],\n relevance: 0\n };\n const REGEXP2 = {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: '%r\\\\(',\n end: '\\\\)',\n contains: recursiveParen('\\\\(', '\\\\)')\n },\n {\n begin: '%r\\\\[',\n end: '\\\\]',\n contains: recursiveParen('\\\\[', '\\\\]')\n },\n {\n begin: '%r\\\\{',\n end: /\\}/,\n contains: recursiveParen(/\\{/, /\\}/)\n },\n {\n begin: '%r<',\n end: '>',\n contains: recursiveParen('<', '>')\n },\n {\n begin: '%r\\\\|',\n end: '\\\\|'\n }\n ],\n relevance: 0\n };\n const ATTRIBUTE = {\n className: 'meta',\n begin: '@\\\\[',\n end: '\\\\]',\n contains: [\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'meta-string'\n })\n ]\n };\n const CRYSTAL_DEFAULT_CONTAINS = [\n EXPANSION,\n STRING,\n Q_STRING,\n REGEXP2,\n REGEXP,\n ATTRIBUTE,\n hljs.HASH_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'class module struct',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_PATH_RE\n }),\n { // relevance booster for inheritance\n begin: '<'\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'lib enum union',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_PATH_RE\n })\n ]\n },\n {\n beginKeywords: 'annotation',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_PATH_RE\n })\n ],\n relevance: 2\n },\n {\n className: 'function',\n beginKeywords: 'def',\n end: /\\B\\b/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_METHOD_RE,\n endsParent: true\n })\n ]\n },\n {\n className: 'function',\n beginKeywords: 'fun macro',\n end: /\\B\\b/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: CRYSTAL_METHOD_RE,\n endsParent: true\n })\n ],\n relevance: 2\n },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':',\n contains: [\n STRING,\n {\n begin: CRYSTAL_METHOD_RE\n }\n ],\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n {\n begin: '\\\\b0b([01_]+)' + INT_SUFFIX\n },\n {\n begin: '\\\\b0o([0-7_]+)' + INT_SUFFIX\n },\n {\n begin: '\\\\b0x([A-Fa-f0-9_]+)' + INT_SUFFIX\n },\n {\n begin: '\\\\b([1-9][0-9_]*[0-9]|[0-9])(\\\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?' + FLOAT_SUFFIX + '(?!_)'\n },\n {\n begin: '\\\\b([1-9][0-9_]*|0)' + INT_SUFFIX\n }\n ],\n relevance: 0\n }\n ];\n SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;\n EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION\n\n return {\n name: 'Crystal',\n aliases: [ 'cr' ],\n keywords: CRYSTAL_KEYWORDS,\n contains: CRYSTAL_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = crystal;\n","/*\nLanguage: C#\nAuthor: Jason Diamond <jason@diamond.name>\nContributor: Nicolas LLOBERA <nllobera@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, David Pine <david.pine@microsoft.com>\nWebsite: https://docs.microsoft.com/en-us/dotnet/csharp/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction csharp(hljs) {\n const BUILT_IN_KEYWORDS = [\n 'bool',\n 'byte',\n 'char',\n 'decimal',\n 'delegate',\n 'double',\n 'dynamic',\n 'enum',\n 'float',\n 'int',\n 'long',\n 'nint',\n 'nuint',\n 'object',\n 'sbyte',\n 'short',\n 'string',\n 'ulong',\n 'uint',\n 'ushort'\n ];\n const FUNCTION_MODIFIERS = [\n 'public',\n 'private',\n 'protected',\n 'static',\n 'internal',\n 'protected',\n 'abstract',\n 'async',\n 'extern',\n 'override',\n 'unsafe',\n 'virtual',\n 'new',\n 'sealed',\n 'partial'\n ];\n const LITERAL_KEYWORDS = [\n 'default',\n 'false',\n 'null',\n 'true'\n ];\n const NORMAL_KEYWORDS = [\n 'abstract',\n 'as',\n 'base',\n 'break',\n 'case',\n 'class',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'event',\n 'explicit',\n 'extern',\n 'finally',\n 'fixed',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'namespace',\n 'new',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'record',\n 'ref',\n 'return',\n 'sealed',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'try',\n 'typeof',\n 'unchecked',\n 'unsafe',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while'\n ];\n const CONTEXTUAL_KEYWORDS = [\n 'add',\n 'alias',\n 'and',\n 'ascending',\n 'async',\n 'await',\n 'by',\n 'descending',\n 'equals',\n 'from',\n 'get',\n 'global',\n 'group',\n 'init',\n 'into',\n 'join',\n 'let',\n 'nameof',\n 'not',\n 'notnull',\n 'on',\n 'or',\n 'orderby',\n 'partial',\n 'remove',\n 'select',\n 'set',\n 'unmanaged',\n 'value|0',\n 'var',\n 'when',\n 'where',\n 'with',\n 'yield'\n ];\n\n const KEYWORDS = {\n keyword: NORMAL_KEYWORDS.concat(CONTEXTUAL_KEYWORDS),\n built_in: BUILT_IN_KEYWORDS,\n literal: LITERAL_KEYWORDS\n };\n const TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, {\n begin: '[a-zA-Z](\\\\.?\\\\w)*'\n });\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0b[01\\']+)'\n },\n {\n begin: '(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)'\n },\n {\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'\n }\n ],\n relevance: 0\n };\n const VERBATIM_STRING = {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [\n {\n begin: '\"\"'\n }\n ]\n };\n const VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, {\n illegal: /\\n/\n });\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const SUBST_NO_LF = hljs.inherit(SUBST, {\n illegal: /\\n/\n });\n const INTERPOLATED_STRING = {\n className: 'string',\n begin: /\\$\"/,\n end: '\"',\n illegal: /\\n/,\n contains: [\n {\n begin: /\\{\\{/\n },\n {\n begin: /\\}\\}/\n },\n hljs.BACKSLASH_ESCAPE,\n SUBST_NO_LF\n ]\n };\n const INTERPOLATED_VERBATIM_STRING = {\n className: 'string',\n begin: /\\$@\"/,\n end: '\"',\n contains: [\n {\n begin: /\\{\\{/\n },\n {\n begin: /\\}\\}/\n },\n {\n begin: '\"\"'\n },\n SUBST\n ]\n };\n const INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {\n illegal: /\\n/,\n contains: [\n {\n begin: /\\{\\{/\n },\n {\n begin: /\\}\\}/\n },\n {\n begin: '\"\"'\n },\n SUBST_NO_LF\n ]\n });\n SUBST.contains = [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n SUBST_NO_LF.contains = [\n INTERPOLATED_VERBATIM_STRING_NO_LF,\n INTERPOLATED_STRING,\n VERBATIM_STRING_NO_LF,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, {\n illegal: /\\n/\n })\n ];\n const STRING = {\n variants: [\n INTERPOLATED_VERBATIM_STRING,\n INTERPOLATED_STRING,\n VERBATIM_STRING,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n const GENERIC_MODIFIER = {\n begin: \"<\",\n end: \">\",\n contains: [\n {\n beginKeywords: \"in out\"\n },\n TITLE_MODE\n ]\n };\n const TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\\\s*,\\\\s*' + hljs.IDENT_RE + ')*>)?(\\\\[\\\\])?';\n const AT_IDENTIFIER = {\n // prevents expressions like `@class` from incorrect flagging\n // `class` as a keyword\n begin: \"@\" + hljs.IDENT_RE,\n relevance: 0\n };\n\n return {\n name: 'C#',\n aliases: [\n 'cs',\n 'c#'\n ],\n keywords: KEYWORDS,\n illegal: /::/,\n contains: [\n hljs.COMMENT(\n '///',\n '$',\n {\n returnBegin: true,\n contains: [\n {\n className: 'doctag',\n variants: [\n {\n begin: '///',\n relevance: 0\n },\n {\n begin: '<!--|-->'\n },\n {\n begin: '</?',\n end: '>'\n }\n ]\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'\n }\n },\n STRING,\n NUMBERS,\n {\n beginKeywords: 'class interface',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:,]/,\n contains: [\n {\n beginKeywords: \"where class\"\n },\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n beginKeywords: 'record',\n relevance: 0,\n end: /[{;=]/,\n illegal: /[^\\s:]/,\n contains: [\n TITLE_MODE,\n GENERIC_MODIFIER,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n // [Attributes(\"\")]\n className: 'meta',\n begin: '^\\\\s*\\\\[',\n excludeBegin: true,\n end: '\\\\]',\n excludeEnd: true,\n contains: [\n {\n className: 'meta-string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new return throw await else',\n relevance: 0\n },\n {\n className: 'function',\n begin: '(' + TYPE_IDENT_RE + '\\\\s+)+' + hljs.IDENT_RE + '\\\\s*(<.+>\\\\s*)?\\\\(',\n returnBegin: true,\n end: /\\s*[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n // prevents these from being highlighted `title`\n {\n beginKeywords: FUNCTION_MODIFIERS.join(\" \"),\n relevance: 0\n },\n {\n begin: hljs.IDENT_RE + '\\\\s*(<.+>\\\\s*)?\\\\(',\n returnBegin: true,\n contains: [\n hljs.TITLE_MODE,\n GENERIC_MODIFIER\n ],\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n NUMBERS,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n AT_IDENTIFIER\n ]\n };\n}\n\nmodule.exports = csharp;\n","/*\nLanguage: CSP\nDescription: Content Security Policy definition highlighting\nAuthor: Taras <oxdef@oxdef.info>\nWebsite: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP\n\nvim: ts=2 sw=2 st=2\n*/\n\n/** @type LanguageFn */\nfunction csp(hljs) {\n return {\n name: 'CSP',\n case_insensitive: false,\n keywords: {\n $pattern: '[a-zA-Z][a-zA-Z0-9_-]*',\n keyword: 'base-uri child-src connect-src default-src font-src form-action ' +\n 'frame-ancestors frame-src img-src media-src object-src plugin-types ' +\n 'report-uri sandbox script-src style-src'\n },\n contains: [\n {\n className: 'string',\n begin: \"'\",\n end: \"'\"\n },\n {\n className: 'attribute',\n begin: '^Content',\n end: ':',\n excludeEnd: true\n }\n ]\n };\n}\n\nmodule.exports = csp;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n className: 'meta',\n begin: '!important'\n },\n HEXCOLOR: {\n className: 'number',\n begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n },\n ATTRIBUTE_SELECTOR_MODE: {\n className: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'auto',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'border',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'clear',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'content',\n 'counter-increment',\n 'counter-reset',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-variant-ligatures',\n 'font-variation-settings',\n 'font-weight',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inherit',\n 'initial',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'max-height',\n 'max-width',\n 'min-height',\n 'min-width',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-last',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-indent',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'white-space',\n 'widows',\n 'width',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: CSS\nCategory: common, css\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const modes = MODES(hljs);\n const FUNCTION_DISPATCH = {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n };\n const VENDOR_PREFIX = {\n begin: /-(webkit|moz|ms|o)-(?=[a-z])/\n };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: {\n keyframePosition: \"from to\"\n },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\"\n },\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n hljs.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n {\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n begin: '::(' + PSEUDO_ELEMENTS.join('|') + ')'\n }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: ':',\n end: '[;}]',\n contains: [\n modes.HEXCOLOR,\n modes.IMPORTANT,\n hljs.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: {\n built_in: \"url data-uri\"\n },\n contains: [\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n FUNCTION_DISPATCH\n ]\n },\n {\n begin: lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n hljs.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nmodule.exports = css;\n","/*\nLanguage: D\nAuthor: Aleksandar Ruzicic <aleksandar@ruzicic.info>\nDescription: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.\nVersion: 1.0a\nWebsite: https://dlang.org\nDate: 2012-04-08\n*/\n\n/**\n * Known issues:\n *\n * - invalid hex string literals will be recognized as a double quoted strings\n * but 'x' at the beginning of string will not be matched\n *\n * - delimited string literals are not checked for matching end delimiter\n * (not possible to do with js regexp)\n *\n * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)\n * also, content of token string is not validated to contain only valid D tokens\n *\n * - special token sequence rule is not strictly following D grammar (anything following #line\n * up to the end of line is matched as special token sequence)\n */\n\n/** @type LanguageFn */\nfunction d(hljs) {\n /**\n * Language keywords\n *\n * @type {Object}\n */\n const D_KEYWORDS = {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n keyword:\n 'abstract alias align asm assert auto body break byte case cast catch class ' +\n 'const continue debug default delete deprecated do else enum export extern final ' +\n 'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +\n 'interface invariant is lazy macro mixin module new nothrow out override package ' +\n 'pragma private protected public pure ref return scope shared static struct ' +\n 'super switch synchronized template this throw try typedef typeid typeof union ' +\n 'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +\n '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',\n built_in:\n 'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +\n 'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +\n 'wstring',\n literal:\n 'false null true'\n };\n\n /**\n * Number literal regexps\n *\n * @type {String}\n */\n const decimal_integer_re = '(0|[1-9][\\\\d_]*)';\n const decimal_integer_nosus_re = '(0|[1-9][\\\\d_]*|\\\\d[\\\\d_]*|[\\\\d_]+?\\\\d)';\n const binary_integer_re = '0[bB][01_]+';\n const hexadecimal_digits_re = '([\\\\da-fA-F][\\\\da-fA-F_]*|_[\\\\da-fA-F][\\\\da-fA-F_]*)';\n const hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re;\n\n const decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')';\n const decimal_float_re = '(' + decimal_integer_nosus_re + '(\\\\.\\\\d*|' + decimal_exponent_re + ')|' +\n '\\\\d+\\\\.' + decimal_integer_nosus_re + '|' +\n '\\\\.' + decimal_integer_re + decimal_exponent_re + '?' +\n ')';\n const hexadecimal_float_re = '(0[xX](' +\n hexadecimal_digits_re + '\\\\.' + hexadecimal_digits_re + '|' +\n '\\\\.?' + hexadecimal_digits_re +\n ')[pP][+-]?' + decimal_integer_nosus_re + ')';\n\n const integer_re = '(' +\n decimal_integer_re + '|' +\n binary_integer_re + '|' +\n hexadecimal_integer_re +\n ')';\n\n const float_re = '(' +\n hexadecimal_float_re + '|' +\n decimal_float_re +\n ')';\n\n /**\n * Escape sequence supported in D string and character literals\n *\n * @type {String}\n */\n const escape_sequence_re = '\\\\\\\\(' +\n '[\\'\"\\\\?\\\\\\\\abfnrtv]|' + // common escapes\n 'u[\\\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint\n '[0-7]{1,3}|' + // one to three octal digit ascii char code\n 'x[\\\\dA-Fa-f]{2}|' + // two hex digit ascii char code\n 'U[\\\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint\n ')|' +\n '&[a-zA-Z\\\\d]{2,};'; // named character entity\n\n /**\n * D integer number literals\n *\n * @type {Object}\n */\n const D_INTEGER_MODE = {\n className: 'number',\n begin: '\\\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',\n relevance: 0\n };\n\n /**\n * [D_FLOAT_MODE description]\n * @type {Object}\n */\n const D_FLOAT_MODE = {\n className: 'number',\n begin: '\\\\b(' +\n float_re + '([fF]|L|i|[fF]i|Li)?|' +\n integer_re + '(i|[fF]i|Li)' +\n ')',\n relevance: 0\n };\n\n /**\n * D character literal\n *\n * @type {Object}\n */\n const D_CHARACTER_MODE = {\n className: 'string',\n begin: '\\'(' + escape_sequence_re + '|.)',\n end: '\\'',\n illegal: '.'\n };\n\n /**\n * D string escape sequence\n *\n * @type {Object}\n */\n const D_ESCAPE_SEQUENCE = {\n begin: escape_sequence_re,\n relevance: 0\n };\n\n /**\n * D double quoted string literal\n *\n * @type {Object}\n */\n const D_STRING_MODE = {\n className: 'string',\n begin: '\"',\n contains: [D_ESCAPE_SEQUENCE],\n end: '\"[cwd]?'\n };\n\n /**\n * D wysiwyg and delimited string literals\n *\n * @type {Object}\n */\n const D_WYSIWYG_DELIMITED_STRING_MODE = {\n className: 'string',\n begin: '[rq]\"',\n end: '\"[cwd]?',\n relevance: 5\n };\n\n /**\n * D alternate wysiwyg string literal\n *\n * @type {Object}\n */\n const D_ALTERNATE_WYSIWYG_STRING_MODE = {\n className: 'string',\n begin: '`',\n end: '`[cwd]?'\n };\n\n /**\n * D hexadecimal string literal\n *\n * @type {Object}\n */\n const D_HEX_STRING_MODE = {\n className: 'string',\n begin: 'x\"[\\\\da-fA-F\\\\s\\\\n\\\\r]*\"[cwd]?',\n relevance: 10\n };\n\n /**\n * D delimited string literal\n *\n * @type {Object}\n */\n const D_TOKEN_STRING_MODE = {\n className: 'string',\n begin: 'q\"\\\\{',\n end: '\\\\}\"'\n };\n\n /**\n * Hashbang support\n *\n * @type {Object}\n */\n const D_HASHBANG_MODE = {\n className: 'meta',\n begin: '^#!',\n end: '$',\n relevance: 5\n };\n\n /**\n * D special token sequence\n *\n * @type {Object}\n */\n const D_SPECIAL_TOKEN_SEQUENCE_MODE = {\n className: 'meta',\n begin: '#(line)',\n end: '$',\n relevance: 5\n };\n\n /**\n * D attributes\n *\n * @type {Object}\n */\n const D_ATTRIBUTE_MODE = {\n className: 'keyword',\n begin: '@[a-zA-Z_][a-zA-Z_\\\\d]*'\n };\n\n /**\n * D nesting comment\n *\n * @type {Object}\n */\n const D_NESTING_COMMENT_MODE = hljs.COMMENT(\n '\\\\/\\\\+',\n '\\\\+\\\\/',\n {\n contains: ['self'],\n relevance: 10\n }\n );\n\n return {\n name: 'D',\n keywords: D_KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n D_NESTING_COMMENT_MODE,\n D_HEX_STRING_MODE,\n D_STRING_MODE,\n D_WYSIWYG_DELIMITED_STRING_MODE,\n D_ALTERNATE_WYSIWYG_STRING_MODE,\n D_TOKEN_STRING_MODE,\n D_FLOAT_MODE,\n D_INTEGER_MODE,\n D_CHARACTER_MODE,\n D_HASHBANG_MODE,\n D_SPECIAL_TOKEN_SEQUENCE_MODE,\n D_ATTRIBUTE_MODE\n ]\n };\n}\n\nmodule.exports = d;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi <john.crepezzi@gmail.com>\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\n\nfunction markdown(hljs) {\n const INLINE_HTML = {\n begin: /<\\/?[A-Za-z_]/,\n end: '>',\n subLanguage: 'xml',\n relevance: 0\n };\n const HORIZONTAL_RULE = {\n begin: '^[-\\\\*]{3,}',\n end: '$'\n };\n const CODE = {\n className: 'code',\n variants: [\n // TODO: fix to allow these to work with sublanguage also\n {\n begin: '(`{3,})[^`](.|\\\\n)*?\\\\1`*[ ]*'\n },\n {\n begin: '(~{3,})[^~](.|\\\\n)*?\\\\1~*[ ]*'\n },\n // needed to allow markdown as a sublanguage to work\n {\n begin: '```',\n end: '```+[ ]*$'\n },\n {\n begin: '~~~',\n end: '~~~+[ ]*$'\n },\n {\n begin: '`.+?`'\n },\n {\n begin: '(?=^( {4}|\\\\t))',\n // use contains to gobble up multiple lines to allow the block to be whatever size\n // but only have a single open/close tag vs one per line\n contains: [\n {\n begin: '^( {4}|\\\\t)',\n end: '(\\\\n)$'\n }\n ],\n relevance: 0\n }\n ]\n };\n const LIST = {\n className: 'bullet',\n begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n end: '\\\\s+',\n excludeEnd: true\n };\n const LINK_REFERENCE = {\n begin: /^\\[[^\\n]+\\]:/,\n returnBegin: true,\n contains: [\n {\n className: 'symbol',\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'link',\n begin: /:\\s*/,\n end: /$/,\n excludeBegin: true\n }\n ]\n };\n const URL_SCHEME = /[A-Za-z][A-Za-z0-9+.-]*/;\n const LINK = {\n variants: [\n // too much like nested array access in so many languages\n // to have any real relevance\n {\n begin: /\\[.+?\\]\\[.*?\\]/,\n relevance: 0\n },\n // popular internet URLs\n {\n begin: /\\[.+?\\]\\(((data|javascript|mailto):|(?:http|ftp)s?:\\/\\/).*?\\)/,\n relevance: 2\n },\n {\n begin: concat(/\\[.+?\\]\\(/, URL_SCHEME, /:\\/\\/.*?\\)/),\n relevance: 2\n },\n // relative urls\n {\n begin: /\\[.+?\\]\\([./?&#].*?\\)/,\n relevance: 1\n },\n // whatever else, lower relevance (might not be a link at all)\n {\n begin: /\\[.+?\\]\\(.*?\\)/,\n relevance: 0\n }\n ],\n returnBegin: true,\n contains: [\n {\n className: 'string',\n relevance: 0,\n begin: '\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n returnEnd: true\n },\n {\n className: 'link',\n relevance: 0,\n begin: '\\\\]\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: '\\\\]\\\\[',\n end: '\\\\]',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n const BOLD = {\n className: 'strong',\n contains: [], // defined later\n variants: [\n {\n begin: /_{2}/,\n end: /_{2}/\n },\n {\n begin: /\\*{2}/,\n end: /\\*{2}/\n }\n ]\n };\n const ITALIC = {\n className: 'emphasis',\n contains: [], // defined later\n variants: [\n {\n begin: /\\*(?!\\*)/,\n end: /\\*/\n },\n {\n begin: /_(?!_)/,\n end: /_/,\n relevance: 0\n }\n ]\n };\n BOLD.contains.push(ITALIC);\n ITALIC.contains.push(BOLD);\n\n let CONTAINABLE = [\n INLINE_HTML,\n LINK\n ];\n\n BOLD.contains = BOLD.contains.concat(CONTAINABLE);\n ITALIC.contains = ITALIC.contains.concat(CONTAINABLE);\n\n CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n\n const HEADER = {\n className: 'section',\n variants: [\n {\n begin: '^#{1,6}',\n end: '$',\n contains: CONTAINABLE\n },\n {\n begin: '(?=^.+?\\\\n[=-]{2,}$)',\n contains: [\n {\n begin: '^[=-]*$'\n },\n {\n begin: '^',\n end: \"\\\\n\",\n contains: CONTAINABLE\n }\n ]\n }\n ]\n };\n\n const BLOCKQUOTE = {\n className: 'quote',\n begin: '^>\\\\s+',\n contains: CONTAINABLE,\n end: '$'\n };\n\n return {\n name: 'Markdown',\n aliases: [\n 'md',\n 'mkdown',\n 'mkd'\n ],\n contains: [\n HEADER,\n INLINE_HTML,\n LIST,\n BOLD,\n ITALIC,\n BLOCKQUOTE,\n CODE,\n HORIZONTAL_RULE,\n LINK,\n LINK_REFERENCE\n ]\n };\n}\n\nmodule.exports = markdown;\n","/*\nLanguage: Dart\nRequires: markdown.js\nAuthor: Maxim Dikun <dikmax@gmail.com>\nDescription: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/\nWebsite: https://dart.dev\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction dart(hljs) {\n const SUBST = {\n className: 'subst',\n variants: [{\n begin: '\\\\$[A-Za-z0-9_]+'\n }]\n };\n\n const BRACED_SUBST = {\n className: 'subst',\n variants: [{\n begin: /\\$\\{/,\n end: /\\}/\n }],\n keywords: 'true false null this is new super'\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: 'r\\'\\'\\'',\n end: '\\'\\'\\''\n },\n {\n begin: 'r\"\"\"',\n end: '\"\"\"'\n },\n {\n begin: 'r\\'',\n end: '\\'',\n illegal: '\\\\n'\n },\n {\n begin: 'r\"',\n end: '\"',\n illegal: '\\\\n'\n },\n {\n begin: '\\'\\'\\'',\n end: '\\'\\'\\'',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n BRACED_SUBST\n ]\n }\n ]\n };\n BRACED_SUBST.contains = [\n hljs.C_NUMBER_MODE,\n STRING\n ];\n\n const BUILT_IN_TYPES = [\n // dart:core\n 'Comparable',\n 'DateTime',\n 'Duration',\n 'Function',\n 'Iterable',\n 'Iterator',\n 'List',\n 'Map',\n 'Match',\n 'Object',\n 'Pattern',\n 'RegExp',\n 'Set',\n 'Stopwatch',\n 'String',\n 'StringBuffer',\n 'StringSink',\n 'Symbol',\n 'Type',\n 'Uri',\n 'bool',\n 'double',\n 'int',\n 'num',\n // dart:html\n 'Element',\n 'ElementList'\n ];\n const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e) => `${e}?`);\n\n const KEYWORDS = {\n keyword: 'abstract as assert async await break case catch class const continue covariant default deferred do ' +\n 'dynamic else enum export extends extension external factory false final finally for Function get hide if ' +\n 'implements import in inferface is late library mixin new null on operator part required rethrow return set ' +\n 'show static super switch sync this throw true try typedef var void while with yield',\n built_in:\n BUILT_IN_TYPES\n .concat(NULLABLE_BUILT_IN_TYPES)\n .concat([\n // dart:core\n 'Never',\n 'Null',\n 'dynamic',\n 'print',\n // dart:html\n 'document',\n 'querySelector',\n 'querySelectorAll',\n 'window'\n ]),\n $pattern: /[A-Za-z][A-Za-z0-9_]*\\??/\n };\n\n return {\n name: 'Dart',\n keywords: KEYWORDS,\n contains: [\n STRING,\n hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n /\\*\\//,\n {\n subLanguage: 'markdown',\n relevance: 0\n }\n ),\n hljs.COMMENT(\n /\\/{3,} ?/,\n /$/, {\n contains: [{\n subLanguage: 'markdown',\n begin: '.',\n end: '$',\n relevance: 0\n }]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '@[A-Za-z]+'\n },\n {\n begin: '=>' // No markup, just a relevance booster\n }\n ]\n };\n}\n\nmodule.exports = dart;\n","/*\nLanguage: Delphi\nWebsite: https://www.embarcadero.com/products/delphi\n*/\n\n/** @type LanguageFn */\nfunction delphi(hljs) {\n const KEYWORDS =\n 'exports register file shl array record property for mod while set ally label uses raise not ' +\n 'stored class safecall var interface or private static exit index inherited to else stdcall ' +\n 'override shr asm far resourcestring finalization packed virtual out and protected library do ' +\n 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +\n 'destructor write message program with read initialization except default nil if case cdecl in ' +\n 'downto threadvar of try pascal const external constructor type public then implementation ' +\n 'finally published procedure absolute reintroduce operator as is abstract alias assembler ' +\n 'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' +\n 'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' +\n 'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' +\n 'specialize strict unaligned varargs ';\n const COMMENT_MODES = [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT(/\\{/, /\\}/, {\n relevance: 0\n }),\n hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n relevance: 10\n })\n ];\n const DIRECTIVE = {\n className: 'meta',\n variants: [\n {\n begin: /\\{\\$/,\n end: /\\}/\n },\n {\n begin: /\\(\\*\\$/,\n end: /\\*\\)/\n }\n ]\n };\n const STRING = {\n className: 'string',\n begin: /'/,\n end: /'/,\n contains: [{\n begin: /''/\n }]\n };\n const NUMBER = {\n className: 'number',\n relevance: 0,\n // Source: https://www.freepascal.org/docs-html/ref/refse6.html\n variants: [\n {\n // Hexadecimal notation, e.g., $7F.\n begin: '\\\\$[0-9A-Fa-f]+'\n },\n {\n // Octal notation, e.g., &42.\n begin: '&[0-7]+'\n },\n {\n // Binary notation, e.g., %1010.\n begin: '%[01]+'\n }\n ]\n };\n const CHAR_STRING = {\n className: 'string',\n begin: /(#\\d+)+/\n };\n const CLASS = {\n begin: hljs.IDENT_RE + '\\\\s*=\\\\s*class\\\\s*\\\\(',\n returnBegin: true,\n contains: [hljs.TITLE_MODE]\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'function constructor destructor procedure',\n end: /[:;]/,\n keywords: 'function constructor|10 destructor|10 procedure|10',\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING,\n DIRECTIVE\n ].concat(COMMENT_MODES)\n },\n DIRECTIVE\n ].concat(COMMENT_MODES)\n };\n return {\n name: 'Delphi',\n aliases: [\n 'dpr',\n 'dfm',\n 'pas',\n 'pascal',\n 'freepascal',\n 'lazarus',\n 'lpr',\n 'lfm'\n ],\n case_insensitive: true,\n keywords: KEYWORDS,\n illegal: /\"|\\$[G-Zg-z]|\\/\\*|<\\/|\\|/,\n contains: [\n STRING,\n CHAR_STRING,\n hljs.NUMBER_MODE,\n NUMBER,\n CLASS,\n FUNCTION,\n DIRECTIVE\n ].concat(COMMENT_MODES)\n };\n}\n\nmodule.exports = delphi;\n","/*\nLanguage: Diff\nDescription: Unified and context diff\nAuthor: Vasily Polovnyov <vast@whiteants.net>\nWebsite: https://www.gnu.org/software/diffutils/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction diff(hljs) {\n return {\n name: 'Diff',\n aliases: ['patch'],\n contains: [\n {\n className: 'meta',\n relevance: 10,\n variants: [\n {\n begin: /^@@ +-\\d+,\\d+ +\\+\\d+,\\d+ +@@/\n },\n {\n begin: /^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/\n },\n {\n begin: /^--- +\\d+,\\d+ +----$/\n }\n ]\n },\n {\n className: 'comment',\n variants: [\n {\n begin: /Index: /,\n end: /$/\n },\n {\n begin: /^index/,\n end: /$/\n },\n {\n begin: /={3,}/,\n end: /$/\n },\n {\n begin: /^-{3}/,\n end: /$/\n },\n {\n begin: /^\\*{3} /,\n end: /$/\n },\n {\n begin: /^\\+{3}/,\n end: /$/\n },\n {\n begin: /^\\*{15}$/\n },\n {\n begin: /^diff --git/,\n end: /$/\n }\n ]\n },\n {\n className: 'addition',\n begin: /^\\+/,\n end: /$/\n },\n {\n className: 'deletion',\n begin: /^-/,\n end: /$/\n },\n {\n className: 'addition',\n begin: /^!/,\n end: /$/\n }\n ]\n };\n}\n\nmodule.exports = diff;\n","/*\nLanguage: Django\nDescription: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.\nRequires: xml.js\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Ilya Baryshev <baryshev@gmail.com>\nWebsite: https://www.djangoproject.com\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction django(hljs) {\n const FILTER = {\n begin: /\\|[A-Za-z]+:?/,\n keywords: {\n name:\n 'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +\n 'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +\n 'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +\n 'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +\n 'dictsortreversed default_if_none pluralize lower join center default ' +\n 'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +\n 'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +\n 'localtime utc timezone'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE\n ]\n };\n\n return {\n name: 'Django',\n aliases: ['jinja'],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n hljs.COMMENT(/\\{%\\s*comment\\s*%\\}/, /\\{%\\s*endcomment\\s*%\\}/),\n hljs.COMMENT(/\\{#/, /#\\}/),\n {\n className: 'template-tag',\n begin: /\\{%/,\n end: /%\\}/,\n contains: [{\n className: 'name',\n begin: /\\w+/,\n keywords: {\n name:\n 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +\n 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +\n 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +\n 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +\n 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +\n 'plural get_current_language language get_available_languages ' +\n 'get_current_language_bidi get_language_info get_language_info_list localize ' +\n 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +\n 'verbatim'\n },\n starts: {\n endsWithParent: true,\n keywords: 'in by as',\n contains: [FILTER],\n relevance: 0\n }\n }]\n },\n {\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [FILTER]\n }\n ]\n };\n}\n\nmodule.exports = django;\n","/*\nLanguage: DNS Zone\nAuthor: Tim Schumacher <tim@datenknoten.me>\nCategory: config\nWebsite: https://en.wikipedia.org/wiki/Zone_file\n*/\n\n/** @type LanguageFn */\nfunction dns(hljs) {\n return {\n name: 'DNS Zone',\n aliases: [\n 'bind',\n 'zone'\n ],\n keywords: {\n keyword:\n 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +\n 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'\n },\n contains: [\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n {\n className: 'meta',\n begin: /^\\$(TTL|GENERATE|INCLUDE|ORIGIN)\\b/\n },\n // IPv6\n {\n className: 'number',\n begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)(\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]?\\\\d)){3}))|:)))\\\\b'\n },\n // IPv4\n {\n className: 'number',\n begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\b'\n },\n hljs.inherit(hljs.NUMBER_MODE, {\n begin: /\\b\\d+[dhwm]?/\n })\n ]\n };\n}\n\nmodule.exports = dns;\n","/*\nLanguage: Dockerfile\nRequires: bash.js\nAuthor: Alexis Hénaut <alexis@henaut.net>\nDescription: language definition for Dockerfile files\nWebsite: https://docs.docker.com/engine/reference/builder/\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction dockerfile(hljs) {\n return {\n name: 'Dockerfile',\n aliases: ['docker'],\n case_insensitive: true,\n keywords: 'from maintainer expose env arg user onbuild stopsignal',\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n {\n beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell',\n starts: {\n end: /[^\\\\]$/,\n subLanguage: 'bash'\n }\n }\n ],\n illegal: '</'\n };\n}\n\nmodule.exports = dockerfile;\n","/*\nLanguage: Batch file (DOS)\nAuthor: Alexander Makarov <sam@rmcreative.ru>\nContributors: Anton Kochkov <anton.kochkov@gmail.com>\nWebsite: https://en.wikipedia.org/wiki/Batch_file\n*/\n\n/** @type LanguageFn */\nfunction dos(hljs) {\n const COMMENT = hljs.COMMENT(\n /^\\s*@?rem\\b/, /$/,\n {\n relevance: 10\n }\n );\n const LABEL = {\n className: 'symbol',\n begin: '^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)',\n relevance: 0\n };\n return {\n name: 'Batch file (DOS)',\n aliases: [\n 'bat',\n 'cmd'\n ],\n case_insensitive: true,\n illegal: /\\/\\*/,\n keywords: {\n keyword:\n 'if else goto for in do call exit not exist errorlevel defined ' +\n 'equ neq lss leq gtr geq',\n built_in:\n 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +\n 'shift cd dir echo setlocal endlocal set pause copy ' +\n 'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +\n 'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +\n 'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +\n 'pause print popd pushd promt rd recover rem rename replace restore rmdir shift ' +\n 'sort start subst time title tree type ver verify vol ' +\n // winutils\n 'ping net ipconfig taskkill xcopy ren del'\n },\n contains: [\n {\n className: 'variable',\n begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/\n },\n {\n className: 'function',\n begin: LABEL.begin,\n end: 'goto:eof',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'\n }),\n COMMENT\n ]\n },\n {\n className: 'number',\n begin: '\\\\b\\\\d+',\n relevance: 0\n },\n COMMENT\n ]\n };\n}\n\nmodule.exports = dos;\n","/*\n Language: dsconfig\n Description: dsconfig batch configuration language for LDAP directory servers\n Contributors: Jacob Childress <jacobc@gmail.com>\n Category: enterprise, config\n */\n\n /** @type LanguageFn */\nfunction dsconfig(hljs) {\n const QUOTED_PROPERTY = {\n className: 'string',\n begin: /\"/,\n end: /\"/\n };\n const APOS_PROPERTY = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n const UNQUOTED_PROPERTY = {\n className: 'string',\n begin: /[\\w\\-?]+:\\w+/,\n end: /\\W/,\n relevance: 0\n };\n const VALUELESS_PROPERTY = {\n className: 'string',\n begin: /\\w+(\\-\\w+)*/,\n end: /(?=\\W)/,\n relevance: 0\n };\n\n return {\n keywords: 'dsconfig',\n contains: [\n {\n className: 'keyword',\n begin: '^dsconfig',\n end: /\\s/,\n excludeEnd: true,\n relevance: 10\n },\n {\n className: 'built_in',\n begin: /(list|create|get|set|delete)-(\\w+)/,\n end: /\\s/,\n excludeEnd: true,\n illegal: '!@#$%^&*()',\n relevance: 10\n },\n {\n className: 'built_in',\n begin: /--(\\w+)/,\n end: /\\s/,\n excludeEnd: true\n },\n QUOTED_PROPERTY,\n APOS_PROPERTY,\n UNQUOTED_PROPERTY,\n VALUELESS_PROPERTY,\n hljs.HASH_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = dsconfig;\n","/*\nLanguage: Device Tree\nDescription: *.dts files used in the Linux kernel\nAuthor: Martin Braun <martin.braun@ettus.com>, Moritz Fischer <moritz.fischer@ettus.com>\nWebsite: https://elinux.org/Device_Tree_Reference\nCategory: config\n*/\n\n/** @type LanguageFn */\nfunction dts(hljs) {\n const STRINGS = {\n className: 'string',\n variants: [\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n begin: '((u8?|U)|L)?\"'\n }),\n {\n begin: '(u8?|U)?R\"',\n end: '\"',\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n begin: '\\'\\\\\\\\?.',\n end: '\\'',\n illegal: '.'\n }\n ]\n };\n\n const NUMBERS = {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)'\n },\n {\n begin: hljs.C_NUMBER_RE\n }\n ],\n relevance: 0\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': 'if else elif endif define undef ifdef ifndef'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n {\n beginKeywords: 'include',\n end: '$',\n keywords: {\n 'meta-keyword': 'include'\n },\n contains: [\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: '<',\n end: '>',\n illegal: '\\\\n'\n }\n ]\n },\n STRINGS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n const DTS_REFERENCE = {\n className: 'variable',\n begin: /&[a-z\\d_]*\\b/\n };\n\n const DTS_KEYWORD = {\n className: 'meta-keyword',\n begin: '/[a-z][a-z\\\\d-]*/'\n };\n\n const DTS_LABEL = {\n className: 'symbol',\n begin: '^\\\\s*[a-zA-Z_][a-zA-Z\\\\d_]*:'\n };\n\n const DTS_CELL_PROPERTY = {\n className: 'params',\n begin: '<',\n end: '>',\n contains: [\n NUMBERS,\n DTS_REFERENCE\n ]\n };\n\n const DTS_NODE = {\n className: 'class',\n begin: /[a-zA-Z_][a-zA-Z\\d_@]*\\s\\{/,\n end: /[{;=]/,\n returnBegin: true,\n excludeEnd: true\n };\n\n const DTS_ROOT_NODE = {\n className: 'class',\n begin: '/\\\\s*\\\\{',\n end: /\\};/,\n relevance: 10,\n contains: [\n DTS_REFERENCE,\n DTS_KEYWORD,\n DTS_LABEL,\n DTS_NODE,\n DTS_CELL_PROPERTY,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS\n ]\n };\n\n return {\n name: 'Device Tree',\n keywords: \"\",\n contains: [\n DTS_ROOT_NODE,\n DTS_REFERENCE,\n DTS_KEYWORD,\n DTS_LABEL,\n DTS_NODE,\n DTS_CELL_PROPERTY,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n STRINGS,\n PREPROCESSOR,\n {\n begin: hljs.IDENT_RE + '::',\n keywords: \"\"\n }\n ]\n };\n}\n\nmodule.exports = dts;\n","/*\nLanguage: Dust\nRequires: xml.js\nAuthor: Michael Allen <michael.allen@benefitfocus.com>\nDescription: Matcher for dust.js templates.\nWebsite: https://www.dustjs.com\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction dust(hljs) {\n const EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';\n return {\n name: 'Dust',\n aliases: ['dst'],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n {\n className: 'template-tag',\n begin: /\\{[#\\/]/,\n end: /\\}/,\n illegal: /;/,\n contains: [{\n className: 'name',\n begin: /[a-zA-Z\\.-]+/,\n starts: {\n endsWithParent: true,\n relevance: 0,\n contains: [hljs.QUOTE_STRING_MODE]\n }\n }]\n },\n {\n className: 'template-variable',\n begin: /\\{/,\n end: /\\}/,\n illegal: /;/,\n keywords: EXPRESSION_KEYWORDS\n }\n ]\n };\n}\n\nmodule.exports = dust;\n","/*\nLanguage: Extended Backus-Naur Form\nAuthor: Alex McKibben <alex@nullscope.net>\nWebsite: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form\n*/\n\n/** @type LanguageFn */\nfunction ebnf(hljs) {\n const commentMode = hljs.COMMENT(/\\(\\*/, /\\*\\)/);\n\n const nonTerminalMode = {\n className: \"attribute\",\n begin: /^[ ]*[a-zA-Z]+([\\s_-]+[a-zA-Z]+)*/\n };\n\n const specialSequenceMode = {\n className: \"meta\",\n begin: /\\?.*\\?/\n };\n\n const ruleBodyMode = {\n begin: /=/,\n end: /[.;]/,\n contains: [\n commentMode,\n specialSequenceMode,\n {\n // terminals\n className: 'string',\n variants: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n begin: '`',\n end: '`'\n }\n ]\n }\n ]\n };\n\n return {\n name: 'Extended Backus-Naur Form',\n illegal: /\\S/,\n contains: [\n commentMode,\n nonTerminalMode,\n ruleBodyMode\n ]\n };\n}\n\nmodule.exports = ebnf;\n","/*\nLanguage: Elixir\nAuthor: Josh Adams <josh@isotope11.com>\nDescription: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.\nCategory: functional\nWebsite: https://elixir-lang.org\n*/\n\n/** @type LanguageFn */\nfunction elixir(hljs) {\n const ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(!|\\\\?)?';\n const ELIXIR_METHOD_RE = '[a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?';\n const ELIXIR_KEYWORDS = {\n $pattern: ELIXIR_IDENT_RE,\n keyword: 'and false then defined module in return redo retry end for true self when ' +\n 'next until do begin unless nil break not case cond alias while ensure or ' +\n 'include use alias fn quote require import with|0'\n };\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: ELIXIR_KEYWORDS\n };\n const NUMBER = {\n className: 'number',\n begin: '(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(\\\\.[0-9_]+([eE][-+]?[0-9]+)?)?)',\n relevance: 0\n };\n const SIGIL_DELIMITERS = '[/|([{<\"\\']';\n const LOWERCASE_SIGIL = {\n className: 'string',\n begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: [\n {\n endsParent: true,\n contains: [\n {\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\\//,\n end: /\\//\n },\n {\n begin: /\\|/,\n end: /\\|/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n begin: /\\[/,\n end: /\\]/\n },\n {\n begin: /\\{/,\n end: /\\}/\n },\n {\n begin: /</,\n end: />/\n }\n ]\n }\n ]\n }\n ]\n };\n\n const UPCASE_SIGIL = {\n className: 'string',\n begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')',\n contains: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\\//,\n end: /\\//\n },\n {\n begin: /\\|/,\n end: /\\|/\n },\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n begin: /\\[/,\n end: /\\]/\n },\n {\n begin: /\\{/,\n end: /\\}/\n },\n {\n begin: /</,\n end: />/\n }\n ]\n };\n\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /\"\"\"/,\n end: /\"\"\"/\n },\n {\n begin: /'''/,\n end: /'''/\n },\n {\n begin: /~S\"\"\"/,\n end: /\"\"\"/,\n contains: [] // override default\n },\n {\n begin: /~S\"/,\n end: /\"/,\n contains: [] // override default\n },\n {\n begin: /~S'''/,\n end: /'''/,\n contains: [] // override default\n },\n {\n begin: /~S'/,\n end: /'/,\n contains: [] // override default\n },\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n }\n ]\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'def defp defmacro',\n end: /\\B\\b/, // the mode is ended by the title\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: ELIXIR_IDENT_RE,\n endsParent: true\n })\n ]\n };\n const CLASS = hljs.inherit(FUNCTION, {\n className: 'class',\n beginKeywords: 'defimpl defmodule defprotocol defrecord',\n end: /\\bdo\\b|$|;/\n });\n const ELIXIR_DEFAULT_CONTAINS = [\n STRING,\n UPCASE_SIGIL,\n LOWERCASE_SIGIL,\n hljs.HASH_COMMENT_MODE,\n CLASS,\n FUNCTION,\n {\n begin: '::'\n },\n {\n className: 'symbol',\n begin: ':(?![\\\\s:])',\n contains: [\n STRING,\n {\n begin: ELIXIR_METHOD_RE\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ELIXIR_IDENT_RE + ':(?!:)',\n relevance: 0\n },\n NUMBER,\n {\n className: 'variable',\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))'\n },\n {\n begin: '->'\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + ')\\\\s*',\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n // to prevent false regex triggers for the division function:\n // /:\n begin: /\\/: (?=\\d+\\s*[,\\]])/,\n relevance: 0,\n contains: [NUMBER]\n },\n {\n className: 'regexp',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ],\n relevance: 0\n }\n ];\n SUBST.contains = ELIXIR_DEFAULT_CONTAINS;\n\n return {\n name: 'Elixir',\n keywords: ELIXIR_KEYWORDS,\n contains: ELIXIR_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = elixir;\n","/*\nLanguage: Elm\nAuthor: Janis Voigtlaender <janis.voigtlaender@gmail.com>\nWebsite: https://elm-lang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction elm(hljs) {\n const COMMENT = {\n variants: [\n hljs.COMMENT('--', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n {\n contains: ['self']\n }\n )\n ]\n };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (built-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n const CHARACTER = {\n className: 'string',\n begin: '\\'\\\\\\\\?.',\n end: '\\'',\n illegal: '.'\n };\n\n return {\n name: 'Elm',\n keywords:\n 'let in if then else case of where module import exposing ' +\n 'type alias as infix infixl infixr port effect command subscription',\n contains: [\n\n // Top-level constructions.\n\n {\n beginKeywords: 'port effect module',\n end: 'exposing',\n keywords: 'port effect module where command subscription exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'import',\n end: '$',\n keywords: 'import as exposing',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: 'type',\n end: '$',\n keywords: 'type alias',\n contains: [\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: 'port',\n end: '$',\n keywords: 'port',\n contains: [COMMENT]\n },\n\n // Literals and names.\n\n CHARACTER,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '^[_a-z][\\\\w\\']*'\n }),\n COMMENT,\n\n {\n begin: '->|<-'\n } // No markup, relevance booster\n ],\n illegal: /;/\n };\n}\n\nmodule.exports = elm;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Ruby\nDescription: Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.\nWebsite: https://www.ruby-lang.org/\nAuthor: Anton Kovalyov <anton@kovalyov.net>\nContributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>\nCategory: common\n*/\n\nfunction ruby(hljs) {\n const RUBY_METHOD_RE = '([a-zA-Z_]\\\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?)';\n const RUBY_KEYWORDS = {\n keyword:\n 'and then defined module in return redo if BEGIN retry end for self when ' +\n 'next until do begin unless END rescue else break undef not super class case ' +\n 'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor ' +\n '__FILE__',\n built_in: 'proc lambda',\n literal:\n 'true false nil'\n };\n const YARDOCTAG = {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n };\n const IRB_OBJECT = {\n begin: '#<',\n end: '>'\n };\n const COMMENT_MODES = [\n hljs.COMMENT(\n '#',\n '$',\n {\n contains: [ YARDOCTAG ]\n }\n ),\n hljs.COMMENT(\n '^=begin',\n '^=end',\n {\n contains: [ YARDOCTAG ],\n relevance: 10\n }\n ),\n hljs.COMMENT('^__END__', '\\\\n$')\n ];\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: RUBY_KEYWORDS\n };\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /`/,\n end: /`/\n },\n {\n begin: /%[qQwWx]?\\(/,\n end: /\\)/\n },\n {\n begin: /%[qQwWx]?\\[/,\n end: /\\]/\n },\n {\n begin: /%[qQwWx]?\\{/,\n end: /\\}/\n },\n {\n begin: /%[qQwWx]?</,\n end: />/\n },\n {\n begin: /%[qQwWx]?\\//,\n end: /\\//\n },\n {\n begin: /%[qQwWx]?%/,\n end: /%/\n },\n {\n begin: /%[qQwWx]?-/,\n end: /-/\n },\n {\n begin: /%[qQwWx]?\\|/,\n end: /\\|/\n },\n // in the following expressions, \\B in the beginning suppresses recognition of ?-sequences\n // where ? is the last character of a preceding identifier, as in: `func?4`\n {\n begin: /\\B\\?(\\\\\\d{1,3})/\n },\n {\n begin: /\\B\\?(\\\\x[A-Fa-f0-9]{1,2})/\n },\n {\n begin: /\\B\\?(\\\\u\\{?[A-Fa-f0-9]{1,6}\\}?)/\n },\n {\n begin: /\\B\\?(\\\\M-\\\\C-|\\\\M-\\\\c|\\\\c\\\\M-|\\\\M-|\\\\C-\\\\M-)[\\x20-\\x7e]/\n },\n {\n begin: /\\B\\?\\\\(c|C-)[\\x20-\\x7e]/\n },\n {\n begin: /\\B\\?\\\\?\\S/\n },\n { // heredocs\n begin: /<<[-~]?'?(\\w+)\\n(?:[^\\n]*\\n)*?\\s*\\1\\b/,\n returnBegin: true,\n contains: [\n {\n begin: /<<[-~]?'?/\n },\n hljs.END_SAME_AS_BEGIN({\n begin: /(\\w+)/,\n end: /(\\w+)/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n })\n ]\n }\n ]\n };\n\n // Ruby syntax is underdocumented, but this grammar seems to be accurate\n // as of version 2.7.2 (confirmed with (irb and `Ripper.sexp(...)`)\n // https://docs.ruby-lang.org/en/2.7.0/doc/syntax/literals_rdoc.html#label-Numbers\n const decimal = '[1-9](_?[0-9])*|0';\n const digits = '[0-9](_?[0-9])*';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal integer/float, optionally exponential or rational, optionally imaginary\n {\n begin: `\\\\b(${decimal})(\\\\.(${digits}))?([eE][+-]?(${digits})|r)?i?\\\\b`\n },\n\n // explicit decimal/binary/octal/hexadecimal integer,\n // optionally rational and/or imaginary\n {\n begin: \"\\\\b0[dD][0-9](_?[0-9])*r?i?\\\\b\"\n },\n {\n begin: \"\\\\b0[bB][0-1](_?[0-1])*r?i?\\\\b\"\n },\n {\n begin: \"\\\\b0[oO][0-7](_?[0-7])*r?i?\\\\b\"\n },\n {\n begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\\\b\"\n },\n\n // 0-prefixed implicit octal integer, optionally rational and/or imaginary\n {\n begin: \"\\\\b0(_?[0-7])+r?i?\\\\b\"\n }\n ]\n };\n\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n endsParent: true,\n keywords: RUBY_KEYWORDS\n };\n\n const RUBY_DEFAULT_CONTAINS = [\n STRING,\n {\n className: 'class',\n beginKeywords: 'class module',\n end: '$|;',\n illegal: /=/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|!)?'\n }),\n {\n begin: '<\\\\s*',\n contains: [\n {\n begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE,\n // we already get points for <, we don't need poitns\n // for the name also\n relevance: 0\n }\n ]\n }\n ].concat(COMMENT_MODES)\n },\n {\n className: 'function',\n // def method_name(\n // def method_name;\n // def method_name (end of line)\n begin: concat(/def\\s+/, lookahead(RUBY_METHOD_RE + \"\\\\s*(\\\\(|;|$)\")),\n relevance: 0, // relevance comes from kewords\n keywords: \"def\",\n end: '$|;',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: RUBY_METHOD_RE\n }),\n PARAMS\n ].concat(COMMENT_MODES)\n },\n {\n // swallow namespace qualifiers before symbols\n begin: hljs.IDENT_RE + '::'\n },\n {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '(!|\\\\?)?:',\n relevance: 0\n },\n {\n className: 'symbol',\n begin: ':(?!\\\\s)',\n contains: [\n STRING,\n {\n begin: RUBY_METHOD_RE\n }\n ],\n relevance: 0\n },\n NUMBER,\n {\n // negative-look forward attemps to prevent false matches like:\n // @ident@ or $ident$ that might indicate this is not ruby at all\n className: \"variable\",\n begin: '(\\\\$\\\\W)|((\\\\$|@@?)(\\\\w+))(?=[^@$?])' + `(?![A-Za-z])(?![@$?'])`\n },\n {\n className: 'params',\n begin: /\\|/,\n end: /\\|/,\n relevance: 0, // this could be a lot of things (in other languages) other than params\n keywords: RUBY_KEYWORDS\n },\n { // regexp container\n begin: '(' + hljs.RE_STARTERS_RE + '|unless)\\\\s*',\n keywords: 'unless',\n contains: [\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n illegal: /\\n/,\n variants: [\n {\n begin: '/',\n end: '/[a-z]*'\n },\n {\n begin: /%r\\{/,\n end: /\\}[a-z]*/\n },\n {\n begin: '%r\\\\(',\n end: '\\\\)[a-z]*'\n },\n {\n begin: '%r!',\n end: '![a-z]*'\n },\n {\n begin: '%r\\\\[',\n end: '\\\\][a-z]*'\n }\n ]\n }\n ].concat(IRB_OBJECT, COMMENT_MODES),\n relevance: 0\n }\n ].concat(IRB_OBJECT, COMMENT_MODES);\n\n SUBST.contains = RUBY_DEFAULT_CONTAINS;\n PARAMS.contains = RUBY_DEFAULT_CONTAINS;\n\n // >>\n // ?>\n const SIMPLE_PROMPT = \"[>?]>\";\n // irb(main):001:0>\n const DEFAULT_PROMPT = \"[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>\";\n const RVM_PROMPT = \"(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d+(p\\\\d+)?[^\\\\d][^>]+>\";\n\n const IRB_DEFAULT = [\n {\n begin: /^\\s*=>/,\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n },\n {\n className: 'meta',\n begin: '^(' + SIMPLE_PROMPT + \"|\" + DEFAULT_PROMPT + '|' + RVM_PROMPT + ')(?=[ ])',\n starts: {\n end: '$',\n contains: RUBY_DEFAULT_CONTAINS\n }\n }\n ];\n\n COMMENT_MODES.unshift(IRB_OBJECT);\n\n return {\n name: 'Ruby',\n aliases: [\n 'rb',\n 'gemspec',\n 'podspec',\n 'thor',\n 'irb'\n ],\n keywords: RUBY_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [\n hljs.SHEBANG({\n binary: \"ruby\"\n })\n ]\n .concat(IRB_DEFAULT)\n .concat(COMMENT_MODES)\n .concat(RUBY_DEFAULT_CONTAINS)\n };\n}\n\nmodule.exports = ruby;\n","/*\nLanguage: ERB (Embedded Ruby)\nRequires: xml.js, ruby.js\nAuthor: Lucas Mazza <lucastmazza@gmail.com>\nContributors: Kassio Borges <kassioborgesm@gmail.com>\nDescription: \"Bridge\" language defining fragments of Ruby in HTML within <% .. %>\nWebsite: https://ruby-doc.org/stdlib-2.6.5/libdoc/erb/rdoc/ERB.html\nCategory: template\n*/\n\n/** @type LanguageFn */\nfunction erb(hljs) {\n return {\n name: 'ERB',\n subLanguage: 'xml',\n contains: [\n hljs.COMMENT('<%#', '%>'),\n {\n begin: '<%[%=-]?',\n end: '[%-]?%>',\n subLanguage: 'ruby',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n}\n\nmodule.exports = erb;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Erlang REPL\nAuthor: Sergey Ignatov <sergey@ignatov.spb.su>\nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlangRepl(hljs) {\n return {\n name: 'Erlang REPL',\n keywords: {\n built_in:\n 'spawn spawn_link self',\n keyword:\n 'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +\n 'let not of or orelse|10 query receive rem try when xor'\n },\n contains: [\n {\n className: 'meta',\n begin: '^[0-9]+> ',\n relevance: 10\n },\n hljs.COMMENT('%', '$'),\n {\n className: 'number',\n begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n relevance: 0\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n begin: concat(\n /\\?(::)?/,\n /([A-Z]\\w*)/, // at least one identifier\n /((::)[A-Z]\\w*)*/ // perhaps more\n )\n },\n {\n begin: '->'\n },\n {\n begin: 'ok'\n },\n {\n begin: '!'\n },\n {\n begin: '(\\\\b[a-z\\'][a-zA-Z0-9_\\']*:[a-z\\'][a-zA-Z0-9_\\']*)|(\\\\b[a-z\\'][a-zA-Z0-9_\\']*)',\n relevance: 0\n },\n {\n begin: '[A-Z][a-zA-Z0-9_\\']*',\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = erlangRepl;\n","/*\nLanguage: Erlang\nDescription: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.\nAuthor: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>\nWebsite: https://www.erlang.org\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction erlang(hljs) {\n const BASIC_ATOM_RE = '[a-z\\'][a-zA-Z0-9_\\']*';\n const FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';\n const ERLANG_RESERVED = {\n keyword:\n 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +\n 'let not of orelse|10 query receive rem try when xor',\n literal:\n 'false true'\n };\n\n const COMMENT = hljs.COMMENT('%', '$');\n const NUMBER = {\n className: 'number',\n begin: '\\\\b(\\\\d+(_\\\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\\\d+(_\\\\d+)*(\\\\.\\\\d+(_\\\\d+)*)?([eE][-+]?\\\\d+)?)',\n relevance: 0\n };\n const NAMED_FUN = {\n begin: 'fun\\\\s+' + BASIC_ATOM_RE + '/\\\\d+'\n };\n const FUNCTION_CALL = {\n begin: FUNCTION_NAME_RE + '\\\\(',\n end: '\\\\)',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n begin: FUNCTION_NAME_RE,\n relevance: 0\n },\n {\n begin: '\\\\(',\n end: '\\\\)',\n endsWithParent: true,\n returnEnd: true,\n relevance: 0\n // \"contains\" defined later\n }\n ]\n };\n const TUPLE = {\n begin: /\\{/,\n end: /\\}/,\n relevance: 0\n // \"contains\" defined later\n };\n const VAR1 = {\n begin: '\\\\b_([A-Z][A-Za-z0-9_]*)?',\n relevance: 0\n };\n const VAR2 = {\n begin: '[A-Z][a-zA-Z0-9_]*',\n relevance: 0\n };\n const RECORD_ACCESS = {\n begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0,\n returnBegin: true,\n contains: [\n {\n begin: '#' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n begin: /\\{/,\n end: /\\}/,\n relevance: 0\n // \"contains\" defined later\n }\n ]\n };\n\n const BLOCK_STATEMENTS = {\n beginKeywords: 'fun receive if try case',\n end: 'end',\n keywords: ERLANG_RESERVED\n };\n BLOCK_STATEMENTS.contains = [\n COMMENT,\n NAMED_FUN,\n hljs.inherit(hljs.APOS_STRING_MODE, {\n className: ''\n }),\n BLOCK_STATEMENTS,\n FUNCTION_CALL,\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n TUPLE,\n VAR1,\n VAR2,\n RECORD_ACCESS\n ];\n\n const BASIC_MODES = [\n COMMENT,\n NAMED_FUN,\n BLOCK_STATEMENTS,\n FUNCTION_CALL,\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n TUPLE,\n VAR1,\n VAR2,\n RECORD_ACCESS\n ];\n FUNCTION_CALL.contains[1].contains = BASIC_MODES;\n TUPLE.contains = BASIC_MODES;\n RECORD_ACCESS.contains[1].contains = BASIC_MODES;\n\n const DIRECTIVES = [\n \"-module\",\n \"-record\",\n \"-undef\",\n \"-export\",\n \"-ifdef\",\n \"-ifndef\",\n \"-author\",\n \"-copyright\",\n \"-doc\",\n \"-vsn\",\n \"-import\",\n \"-include\",\n \"-include_lib\",\n \"-compile\",\n \"-define\",\n \"-else\",\n \"-endif\",\n \"-file\",\n \"-behaviour\",\n \"-behavior\",\n \"-spec\"\n ];\n\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: BASIC_MODES\n };\n return {\n name: 'Erlang',\n aliases: ['erl'],\n keywords: ERLANG_RESERVED,\n illegal: '(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))',\n contains: [\n {\n className: 'function',\n begin: '^' + BASIC_ATOM_RE + '\\\\s*\\\\(',\n end: '->',\n returnBegin: true,\n illegal: '\\\\(|#|//|/\\\\*|\\\\\\\\|:|;',\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: BASIC_ATOM_RE\n })\n ],\n starts: {\n end: ';|\\\\.',\n keywords: ERLANG_RESERVED,\n contains: BASIC_MODES\n }\n },\n COMMENT,\n {\n begin: '^-',\n end: '\\\\.',\n relevance: 0,\n excludeEnd: true,\n returnBegin: true,\n keywords: {\n $pattern: '-' + hljs.IDENT_RE,\n keyword: DIRECTIVES.map(x => `${x}|1.5`).join(\" \")\n },\n contains: [PARAMS]\n },\n NUMBER,\n hljs.QUOTE_STRING_MODE,\n RECORD_ACCESS,\n VAR1,\n VAR2,\n TUPLE,\n {\n begin: /\\.$/\n } // relevance booster\n ]\n };\n}\n\nmodule.exports = erlang;\n","/*\nLanguage: Excel formulae\nAuthor: Victor Zhou <OiCMudkips@users.noreply.github.com>\nDescription: Excel formulae\nWebsite: https://products.office.com/en-us/excel/\n*/\n\n/** @type LanguageFn */\nfunction excel(hljs) {\n return {\n name: 'Excel formulae',\n aliases: [\n 'xlsx',\n 'xls'\n ],\n case_insensitive: true,\n // built-in functions imported from https://web.archive.org/web/20160513042710/https://support.office.com/en-us/article/Excel-functions-alphabetical-b3944572-255d-4efb-bb96-c6d90033e188\n keywords: {\n $pattern: /[a-zA-Z][\\w\\.]*/,\n built_in: 'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST'\n },\n contains: [\n {\n /* matches a beginning equal sign found in Excel formula examples */\n begin: /^=/,\n end: /[^=]/,\n returnEnd: true,\n illegal: /=/, /* only allow single equal sign at front of line */\n relevance: 10\n },\n /* technically, there can be more than 2 letters in column names, but this prevents conflict with some keywords */\n {\n /* matches a reference to a single cell */\n className: 'symbol',\n begin: /\\b[A-Z]{1,2}\\d+\\b/,\n end: /[^\\d]/,\n excludeEnd: true,\n relevance: 0\n },\n {\n /* matches a reference to a range of cells */\n className: 'symbol',\n begin: /[A-Z]{0,2}\\d*:[A-Z]{0,2}\\d*/,\n relevance: 0\n },\n hljs.BACKSLASH_ESCAPE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'number',\n begin: hljs.NUMBER_RE + '(%)?',\n relevance: 0\n },\n /* Excel formula comments are done by putting the comment in a function call to N() */\n hljs.COMMENT(/\\bN\\(/, /\\)/,\n {\n excludeBegin: true,\n excludeEnd: true,\n illegal: /\\n/\n })\n ]\n };\n}\n\nmodule.exports = excel;\n","/*\nLanguage: FIX\nAuthor: Brent Bradbury <brent@brentium.com>\n*/\n\n/** @type LanguageFn */\nfunction fix(hljs) {\n return {\n name: 'FIX',\n contains: [{\n begin: /[^\\u2401\\u0001]+/,\n end: /[\\u2401\\u0001]/,\n excludeEnd: true,\n returnBegin: true,\n returnEnd: false,\n contains: [\n {\n begin: /([^\\u2401\\u0001=]+)/,\n end: /=([^\\u2401\\u0001=]+)/,\n returnEnd: true,\n returnBegin: false,\n className: 'attr'\n },\n {\n begin: /=/,\n end: /([\\u2401\\u0001])/,\n excludeEnd: true,\n excludeBegin: true,\n className: 'string'\n }\n ]\n }],\n case_insensitive: true\n };\n}\n\nmodule.exports = fix;\n","/*\n Language: Flix\n Category: functional\n Author: Magnus Madsen <mmadsen@uwaterloo.ca>\n Website: https://flix.dev/\n */\n\n /** @type LanguageFn */\nfunction flix(hljs) {\n const CHAR = {\n className: 'string',\n begin: /'(.|\\\\[xXuU][a-zA-Z0-9]+)'/\n };\n\n const STRING = {\n className: 'string',\n variants: [{\n begin: '\"',\n end: '\"'\n }]\n };\n\n const NAME = {\n className: 'title',\n relevance: 0,\n begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/\n };\n\n const METHOD = {\n className: 'function',\n beginKeywords: 'def',\n end: /[:={\\[(\\n;]/,\n excludeEnd: true,\n contains: [NAME]\n };\n\n return {\n name: 'Flix',\n keywords: {\n literal: 'true false',\n keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n CHAR,\n STRING,\n METHOD,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = flix;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Fortran\nAuthor: Anthony Scemama <scemama@irsamc.ups-tlse.fr>\nWebsite: https://en.wikipedia.org/wiki/Fortran\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction fortran(hljs) {\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)'\n };\n\n const COMMENT = {\n variants: [\n hljs.COMMENT('!', '$', {\n relevance: 0\n }),\n // allow FORTRAN 77 style comments\n hljs.COMMENT('^C[ ]', '$', {\n relevance: 0\n }),\n hljs.COMMENT('^C$', '$', {\n relevance: 0\n })\n ]\n };\n\n // regex in both fortran and irpf90 should match\n const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\\d]+)?/;\n const OPTIONAL_NUMBER_EXP = /([de][+-]?\\d+)?/;\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: concat(/\\b\\d+/, /\\.(\\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n },\n {\n begin: concat(/\\b\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n },\n {\n begin: concat(/\\.\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n }\n ],\n relevance: 0\n };\n\n const FUNCTION_DEF = {\n className: 'function',\n beginKeywords: 'subroutine function program',\n illegal: '[${=\\\\n]',\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n };\n\n const STRING = {\n className: 'string',\n relevance: 0,\n variants: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n const KEYWORDS = {\n literal: '.False. .True.',\n keyword: 'kind do concurrent local shared while private call intrinsic where elsewhere ' +\n 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock endassociate ' +\n 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +\n 'goto save else use module select case ' +\n 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +\n 'continue format pause cycle exit ' +\n 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +\n 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +\n 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +\n 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +\n 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +\n 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +\n 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +\n 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +\n 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +\n 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +\n 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure impure ' +\n 'integer real character complex logical codimension dimension allocatable|10 parameter ' +\n 'external implicit|10 none double precision assign intent optional pointer ' +\n 'target in out common equivalence data',\n built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +\n 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +\n 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +\n 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +\n 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +\n 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +\n 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +\n 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +\n 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +\n 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +\n 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +\n 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +\n 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +\n 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' +\n 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +\n 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +\n 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +\n 'num_images parity popcnt poppar shifta shiftl shiftr this_image sync change team co_broadcast co_max co_min co_sum co_reduce'\n };\n return {\n name: 'Fortran',\n case_insensitive: true,\n aliases: [\n 'f90',\n 'f95'\n ],\n keywords: KEYWORDS,\n illegal: /\\/\\*/,\n contains: [\n STRING,\n FUNCTION_DEF,\n // allow `C = value` for assignments so they aren't misdetected\n // as Fortran 77 style comments\n {\n begin: /^C\\s*=(?!=)/,\n relevance: 0\n },\n COMMENT,\n NUMBER\n ]\n };\n}\n\nmodule.exports = fortran;\n","/*\nLanguage: F#\nAuthor: Jonas Follesø <jonas@follesoe.no>\nContributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>\nWebsite: https://docs.microsoft.com/en-us/dotnet/fsharp/\nCategory: functional\n*/\n\n/** @type LanguageFn */\nfunction fsharp(hljs) {\n const TYPEPARAM = {\n begin: '<',\n end: '>',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: /'[a-zA-Z0-9_]+/\n })\n ]\n };\n\n return {\n name: 'F#',\n aliases: ['fs'],\n keywords:\n 'abstract and as assert base begin class default delegate do done ' +\n 'downcast downto elif else end exception extern false finally for ' +\n 'fun function global if in inherit inline interface internal lazy let ' +\n 'match member module mutable namespace new null of open or ' +\n 'override private public rec return sig static struct then to ' +\n 'true try type upcast use val void when while with yield',\n illegal: /\\/\\*/,\n contains: [\n {\n // monad builder keywords (matches before non-bang kws)\n className: 'keyword',\n begin: /\\b(yield|return|let|do)!/\n },\n {\n className: 'string',\n begin: '@\"',\n end: '\"',\n contains: [\n {\n begin: '\"\"'\n }\n ]\n },\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n hljs.COMMENT('\\\\(\\\\*(\\\\s)', '\\\\*\\\\)', {\n contains: [\"self\"]\n }),\n {\n className: 'class',\n beginKeywords: 'type',\n end: '\\\\(|=|$',\n excludeEnd: true,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n TYPEPARAM\n ]\n },\n {\n className: 'meta',\n begin: '\\\\[<',\n end: '>\\\\]',\n relevance: 10\n },\n {\n className: 'symbol',\n begin: '\\\\B(\\'[A-Za-z])\\\\b',\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n }),\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = fsharp;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(', re, ')*');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/** @type LanguageFn */\nfunction gams(hljs) {\n const KEYWORDS = {\n keyword:\n 'abort acronym acronyms alias all and assign binary card diag display ' +\n 'else eq file files for free ge gt if integer le loop lt maximizing ' +\n 'minimizing model models ne negative no not option options or ord ' +\n 'positive prod put putpage puttl repeat sameas semicont semiint smax ' +\n 'smin solve sos1 sos2 sum system table then until using while xor yes',\n literal:\n 'eps inf na',\n built_in:\n 'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' +\n 'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' +\n 'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max ' +\n 'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power ' +\n 'randBinomial randLinear randTriangle round rPower sigmoid sign ' +\n 'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt ' +\n 'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp ' +\n 'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt ' +\n 'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear ' +\n 'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion ' +\n 'handleCollect handleDelete handleStatus handleSubmit heapFree ' +\n 'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate ' +\n 'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' +\n 'timeElapsed timeExec timeStart'\n };\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true\n };\n const SYMBOLS = {\n className: 'symbol',\n variants: [\n {\n begin: /=[lgenxc]=/\n },\n {\n begin: /\\$/\n }\n ]\n };\n const QSTR = { // One-line quoted comment string\n className: 'comment',\n variants: [\n {\n begin: '\\'',\n end: '\\''\n },\n {\n begin: '\"',\n end: '\"'\n }\n ],\n illegal: '\\\\n',\n contains: [hljs.BACKSLASH_ESCAPE]\n };\n const ASSIGNMENT = {\n begin: '/',\n end: '/',\n keywords: KEYWORDS,\n contains: [\n QSTR,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n const COMMENT_WORD = /[a-z0-9&#*=?@\\\\><:,()$[\\]_.{}!+%^-]+/;\n const DESCTEXT = { // Parameter/set/variable description text\n begin: /[a-z][a-z0-9_]*(\\([a-z0-9_, ]*\\))?[ \\t]+/,\n excludeBegin: true,\n end: '$',\n endsWithParent: true,\n contains: [\n QSTR,\n ASSIGNMENT,\n {\n className: 'comment',\n // one comment word, then possibly more\n begin: concat(\n COMMENT_WORD,\n // [ ] because \\s would be too broad (matching newlines)\n anyNumberOfTimes(concat(/[ ]+/, COMMENT_WORD))\n ),\n relevance: 0\n }\n ]\n };\n\n return {\n name: 'GAMS',\n aliases: ['gms'],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(/^\\$ontext/, /^\\$offtext/),\n {\n className: 'meta',\n begin: '^\\\\$[a-z0-9]+',\n end: '$',\n returnBegin: true,\n contains: [\n {\n className: 'meta-keyword',\n begin: '^\\\\$[a-z0-9]+'\n }\n ]\n },\n hljs.COMMENT('^\\\\*', '$'),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n // Declarations\n {\n beginKeywords:\n 'set sets parameter parameters variable variables ' +\n 'scalar scalars equation equations',\n end: ';',\n contains: [\n hljs.COMMENT('^\\\\*', '$'),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n ASSIGNMENT,\n DESCTEXT\n ]\n },\n { // table environment\n beginKeywords: 'table',\n end: ';',\n returnBegin: true,\n contains: [\n { // table header row\n beginKeywords: 'table',\n end: '$',\n contains: [DESCTEXT]\n },\n hljs.COMMENT('^\\\\*', '$'),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n hljs.C_NUMBER_MODE\n // Table does not contain DESCTEXT or ASSIGNMENT\n ]\n },\n // Function definitions\n {\n className: 'function',\n begin: /^[a-z][a-z0-9_,\\-+' ()$]+\\.{2}/,\n returnBegin: true,\n contains: [\n { // Function title\n className: 'title',\n begin: /^[a-z0-9_]+/\n },\n PARAMS,\n SYMBOLS\n ]\n },\n hljs.C_NUMBER_MODE,\n SYMBOLS\n ]\n };\n}\n\nmodule.exports = gams;\n","/*\nLanguage: GAUSS\nAuthor: Matt Evans <matt@aptech.com>\nDescription: GAUSS Mathematical and Statistical language\nWebsite: https://www.aptech.com\nCategory: scientific\n*/\nfunction gauss(hljs) {\n const KEYWORDS = {\n keyword: 'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' +\n 'continue create debug declare delete disable dlibrary dllcall do dos ed edit else ' +\n 'elseif enable end endfor endif endp endo errorlog errorlogat expr external fn ' +\n 'for format goto gosub graph if keyword let lib library line load loadarray loadexe ' +\n 'loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow ' +\n 'matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print ' +\n 'printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen ' +\n 'scroll setarray show sparse stop string struct system trace trap threadfor ' +\n 'threadendfor threadbegin threadjoin threadstat threadend until use while winprint ' +\n 'ne ge le gt lt and xor or not eq eqv',\n built_in: 'abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol ' +\n 'AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks ' +\n 'AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults ' +\n 'annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness ' +\n 'annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd ' +\n 'astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar ' +\n 'base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 ' +\n 'cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv ' +\n 'cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn ' +\n 'cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi ' +\n 'cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ' +\n 'ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated ' +\n 'complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs ' +\n 'cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos ' +\n 'datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd ' +\n 'dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName ' +\n 'dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy ' +\n 'dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen ' +\n 'dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA ' +\n 'dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField ' +\n 'dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition ' +\n 'dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows ' +\n 'dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly ' +\n 'dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy ' +\n 'dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl ' +\n 'dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt ' +\n 'dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday ' +\n 'dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays ' +\n 'endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error ' +\n 'etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut ' +\n 'EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol ' +\n 'EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq ' +\n 'feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt ' +\n 'floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC ' +\n 'gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders ' +\n 'gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse ' +\n 'gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray ' +\n 'getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders ' +\n 'getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT ' +\n 'gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm ' +\n 'hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 ' +\n 'indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' +\n 'inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf ' +\n 'isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv ' +\n 'lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn ' +\n 'lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind ' +\n 'loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars ' +\n 'makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli ' +\n 'mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave ' +\n 'movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate ' +\n 'olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto ' +\n 'pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox ' +\n 'plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea ' +\n 'plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout ' +\n 'plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill ' +\n 'plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol ' +\n 'plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange ' +\n 'plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel ' +\n 'plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot ' +\n 'pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames ' +\n 'pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector ' +\n 'pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate ' +\n 'qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr ' +\n 'real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn ' +\n 'rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel ' +\n 'rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn ' +\n 'rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh ' +\n 'rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind ' +\n 'scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa ' +\n 'setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind ' +\n 'sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL ' +\n 'spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense ' +\n 'spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet ' +\n 'sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt ' +\n 'strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr ' +\n 'surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname ' +\n 'time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk ' +\n 'trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt ' +\n 'utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs ' +\n 'vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window ' +\n 'writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM ' +\n 'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute ' +\n 'h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels ' +\n 'plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester ' +\n 'strtrim',\n literal: 'DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS ' +\n 'DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 ' +\n 'DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS ' +\n 'DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES ' +\n 'DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR'\n };\n\n const AT_COMMENT_MODE = hljs.COMMENT('@', '@');\n\n const PREPROCESSOR =\n {\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n {\n beginKeywords: 'include',\n end: '$',\n keywords: {\n 'meta-keyword': 'include'\n },\n contains: [\n {\n className: 'meta-string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n'\n }\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_COMMENT_MODE\n ]\n };\n\n const STRUCT_TYPE =\n {\n begin: /\\bstruct\\s+/,\n end: /\\s/,\n keywords: \"struct\",\n contains: [\n {\n className: \"type\",\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n\n // only for definitions\n const PARSE_PARAMS = [\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n endsWithParent: true,\n relevance: 0,\n contains: [\n { // dots\n className: 'literal',\n begin: /\\.\\.\\./\n },\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_COMMENT_MODE,\n STRUCT_TYPE\n ]\n }\n ];\n\n const FUNCTION_DEF =\n {\n className: \"title\",\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n };\n\n const DEFINITION = function(beginKeywords, end, inherits) {\n const mode = hljs.inherit(\n {\n className: \"function\",\n beginKeywords: beginKeywords,\n end: end,\n excludeEnd: true,\n contains: [].concat(PARSE_PARAMS)\n },\n inherits || {}\n );\n mode.contains.push(FUNCTION_DEF);\n mode.contains.push(hljs.C_NUMBER_MODE);\n mode.contains.push(hljs.C_BLOCK_COMMENT_MODE);\n mode.contains.push(AT_COMMENT_MODE);\n return mode;\n };\n\n const BUILT_IN_REF =\n { // these are explicitly named internal function calls\n className: 'built_in',\n begin: '\\\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\\\b'\n };\n\n const STRING_REF =\n {\n className: 'string',\n begin: '\"',\n end: '\"',\n contains: [hljs.BACKSLASH_ESCAPE],\n relevance: 0\n };\n\n const FUNCTION_REF =\n {\n // className: \"fn_ref\",\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n beginKeywords: KEYWORDS.keyword\n },\n BUILT_IN_REF,\n { // ambiguously named function calls get a relevance of 0\n className: 'built_in',\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n\n const FUNCTION_REF_PARAMS =\n {\n // className: \"fn_ref_params\",\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: {\n built_in: KEYWORDS.built_in,\n literal: KEYWORDS.literal\n },\n contains: [\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_COMMENT_MODE,\n BUILT_IN_REF,\n FUNCTION_REF,\n STRING_REF,\n 'self'\n ]\n };\n\n FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS);\n\n return {\n name: 'GAUSS',\n aliases: ['gss'],\n case_insensitive: true, // language is case-insensitive\n keywords: KEYWORDS,\n illegal: /(\\{[%#]|[%#]\\}| <- )/,\n contains: [\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_COMMENT_MODE,\n STRING_REF,\n PREPROCESSOR,\n {\n className: 'keyword',\n begin: /\\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/\n },\n DEFINITION('proc keyword', ';'),\n DEFINITION('fn', '='),\n {\n beginKeywords: 'for threadfor',\n end: /;/,\n // end: /\\(/,\n relevance: 0,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n AT_COMMENT_MODE,\n FUNCTION_REF_PARAMS\n ]\n },\n { // custom method guard\n // excludes method names from keyword processing\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\.' + hljs.UNDERSCORE_IDENT_RE\n },\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*='\n }\n ],\n relevance: 0\n },\n FUNCTION_REF,\n STRUCT_TYPE\n ]\n };\n}\n\nmodule.exports = gauss;\n","/*\n Language: G-code (ISO 6983)\n Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>\n Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.\n Website: https://www.sis.se/api/document/preview/911952/\n */\n\nfunction gcode(hljs) {\n const GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';\n const GCODE_CLOSE_RE = '%';\n const GCODE_KEYWORDS = {\n $pattern: GCODE_IDENT_RE,\n keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +\n 'EQ LT GT NE GE LE OR XOR'\n };\n const GCODE_START = {\n className: 'meta',\n begin: '([O])([0-9]+)'\n };\n const NUMBER = hljs.inherit(hljs.C_NUMBER_MODE, {\n begin: '([-+]?((\\\\.\\\\d+)|(\\\\d+)(\\\\.\\\\d*)?))|' + hljs.C_NUMBER_RE\n });\n const GCODE_CODE = [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(/\\(/, /\\)/),\n NUMBER,\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n }),\n {\n className: 'name',\n begin: '([G])([0-9]+\\\\.?[0-9]?)'\n },\n {\n className: 'name',\n begin: '([M])([0-9]+\\\\.?[0-9]?)'\n },\n {\n className: 'attr',\n begin: '(VC|VS|#)',\n end: '(\\\\d+)'\n },\n {\n className: 'attr',\n begin: '(VZOFX|VZOFY|VZOFZ)'\n },\n {\n className: 'built_in',\n begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\\\[)',\n contains: [\n NUMBER\n ],\n end: '\\\\]'\n },\n {\n className: 'symbol',\n variants: [\n {\n begin: 'N',\n end: '\\\\d+',\n illegal: '\\\\W'\n }\n ]\n }\n ];\n\n return {\n name: 'G-code (ISO 6983)',\n aliases: ['nc'],\n // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.\n // However, most prefer all uppercase and uppercase is customary.\n case_insensitive: true,\n keywords: GCODE_KEYWORDS,\n contains: [\n {\n className: 'meta',\n begin: GCODE_CLOSE_RE\n },\n GCODE_START\n ].concat(GCODE_CODE)\n };\n}\n\nmodule.exports = gcode;\n","/*\n Language: Gherkin\n Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>\n Description: Gherkin is the format for cucumber specifications. It is a domain specific language which helps you to describe business behavior without the need to go into detail of implementation.\n Website: https://cucumber.io/docs/gherkin/\n */\n\nfunction gherkin(hljs) {\n return {\n name: 'Gherkin',\n aliases: ['feature'],\n keywords: 'Feature Background Ability Business\\ Need Scenario Scenarios Scenario\\ Outline Scenario\\ Template Examples Given And Then But When',\n contains: [\n {\n className: 'symbol',\n begin: '\\\\*',\n relevance: 0\n },\n {\n className: 'meta',\n begin: '@[^@\\\\s]+'\n },\n {\n begin: '\\\\|',\n end: '\\\\|\\\\w*$',\n contains: [\n {\n className: 'string',\n begin: '[^|]+'\n }\n ]\n },\n {\n className: 'variable',\n begin: '<',\n end: '>'\n },\n hljs.HASH_COMMENT_MODE,\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n hljs.QUOTE_STRING_MODE\n ]\n };\n}\n\nmodule.exports = gherkin;\n","/*\nLanguage: GLSL\nDescription: OpenGL Shading Language\nAuthor: Sergey Tikhomirov <sergey@tikhomirov.io>\nWebsite: https://en.wikipedia.org/wiki/OpenGL_Shading_Language\nCategory: graphics\n*/\n\nfunction glsl(hljs) {\n return {\n name: 'GLSL',\n keywords: {\n keyword:\n // Statements\n 'break continue discard do else for if return while switch case default ' +\n // Qualifiers\n 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +\n 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +\n 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +\n 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +\n 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +\n 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f ' +\n 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +\n 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +\n 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +\n 'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +\n 'triangles triangles_adjacency uniform varying vertices volatile writeonly',\n type:\n 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +\n 'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +\n 'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer ' +\n 'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +\n 'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +\n 'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +\n 'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +\n 'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +\n 'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +\n 'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +\n 'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +\n 'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +\n 'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +\n 'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +\n 'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',\n built_in:\n // Constants\n 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +\n 'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +\n 'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +\n 'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +\n 'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +\n 'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +\n 'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +\n 'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +\n 'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +\n 'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +\n 'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +\n 'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +\n 'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +\n 'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +\n 'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +\n 'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +\n 'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +\n 'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +\n 'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +\n 'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +\n 'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +\n 'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +\n 'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +\n // Variables\n 'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +\n 'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +\n 'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +\n 'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +\n 'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +\n 'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +\n 'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +\n 'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +\n 'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +\n 'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +\n 'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +\n 'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +\n 'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +\n 'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +\n 'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +\n 'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +\n 'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +\n 'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +\n // Functions\n 'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +\n 'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +\n 'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +\n 'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +\n 'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +\n 'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +\n 'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +\n 'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +\n 'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +\n 'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +\n 'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +\n 'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +\n 'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +\n 'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +\n 'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +\n 'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +\n 'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +\n 'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +\n 'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +\n 'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +\n 'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +\n 'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +\n 'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',\n literal: 'true false'\n },\n illegal: '\"',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$'\n }\n ]\n };\n}\n\nmodule.exports = glsl;\n","/*\nLanguage: GML\nAuthor: Meseta <meseta@gmail.com>\nDescription: Game Maker Language for GameMaker Studio 2\nWebsite: https://docs2.yoyogames.com\nCategory: scripting\n*/\n\nfunction gml(hljs) {\n const GML_KEYWORDS = {\n keyword: 'begin end if then else while do for break continue with until ' +\n 'repeat exit and or xor not return mod div switch case default var ' +\n 'globalvar enum function constructor delete #macro #region #endregion',\n built_in: 'is_real is_string is_array is_undefined is_int32 is_int64 is_ptr ' +\n 'is_vec3 is_vec4 is_matrix is_bool is_method is_struct is_infinity is_nan ' +\n 'is_numeric typeof variable_global_exists variable_global_get variable_global_set ' +\n 'variable_instance_exists variable_instance_get variable_instance_set ' +\n 'variable_instance_get_names variable_struct_exists variable_struct_get ' +\n 'variable_struct_get_names variable_struct_names_count variable_struct_remove ' +\n 'variable_struct_set array_delete array_insert array_length array_length_1d ' +\n 'array_length_2d array_height_2d array_equals array_create ' +\n 'array_copy array_pop array_push array_resize array_sort ' +\n 'random random_range irandom irandom_range random_set_seed random_get_seed ' +\n 'randomize randomise choose abs round floor ceil sign frac sqrt sqr ' +\n 'exp ln log2 log10 sin cos tan arcsin arccos arctan arctan2 dsin dcos ' +\n 'dtan darcsin darccos darctan darctan2 degtorad radtodeg power logn ' +\n 'min max mean median clamp lerp dot_product dot_product_3d ' +\n 'dot_product_normalised dot_product_3d_normalised ' +\n 'dot_product_normalized dot_product_3d_normalized math_set_epsilon ' +\n 'math_get_epsilon angle_difference point_distance_3d point_distance ' +\n 'point_direction lengthdir_x lengthdir_y real string int64 ptr ' +\n 'string_format chr ansi_char ord string_length string_byte_length ' +\n 'string_pos string_copy string_char_at string_ord_at string_byte_at ' +\n 'string_set_byte_at string_delete string_insert string_lower ' +\n 'string_upper string_repeat string_letters string_digits ' +\n 'string_lettersdigits string_replace string_replace_all string_count ' +\n 'string_hash_to_newline clipboard_has_text clipboard_set_text ' +\n 'clipboard_get_text date_current_datetime date_create_datetime ' +\n 'date_valid_datetime date_inc_year date_inc_month date_inc_week ' +\n 'date_inc_day date_inc_hour date_inc_minute date_inc_second ' +\n 'date_get_year date_get_month date_get_week date_get_day ' +\n 'date_get_hour date_get_minute date_get_second date_get_weekday ' +\n 'date_get_day_of_year date_get_hour_of_year date_get_minute_of_year ' +\n 'date_get_second_of_year date_year_span date_month_span ' +\n 'date_week_span date_day_span date_hour_span date_minute_span ' +\n 'date_second_span date_compare_datetime date_compare_date ' +\n 'date_compare_time date_date_of date_time_of date_datetime_string ' +\n 'date_date_string date_time_string date_days_in_month ' +\n 'date_days_in_year date_leap_year date_is_today date_set_timezone ' +\n 'date_get_timezone game_set_speed game_get_speed motion_set ' +\n 'motion_add place_free place_empty place_meeting place_snapped ' +\n 'move_random move_snap move_towards_point move_contact_solid ' +\n 'move_contact_all move_outside_solid move_outside_all ' +\n 'move_bounce_solid move_bounce_all move_wrap distance_to_point ' +\n 'distance_to_object position_empty position_meeting path_start ' +\n 'path_end mp_linear_step mp_potential_step mp_linear_step_object ' +\n 'mp_potential_step_object mp_potential_settings mp_linear_path ' +\n 'mp_potential_path mp_linear_path_object mp_potential_path_object ' +\n 'mp_grid_create mp_grid_destroy mp_grid_clear_all mp_grid_clear_cell ' +\n 'mp_grid_clear_rectangle mp_grid_add_cell mp_grid_get_cell ' +\n 'mp_grid_add_rectangle mp_grid_add_instances mp_grid_path ' +\n 'mp_grid_draw mp_grid_to_ds_grid collision_point collision_rectangle ' +\n 'collision_circle collision_ellipse collision_line ' +\n 'collision_point_list collision_rectangle_list collision_circle_list ' +\n 'collision_ellipse_list collision_line_list instance_position_list ' +\n 'instance_place_list point_in_rectangle ' +\n 'point_in_triangle point_in_circle rectangle_in_rectangle ' +\n 'rectangle_in_triangle rectangle_in_circle instance_find ' +\n 'instance_exists instance_number instance_position instance_nearest ' +\n 'instance_furthest instance_place instance_create_depth ' +\n 'instance_create_layer instance_copy instance_change instance_destroy ' +\n 'position_destroy position_change instance_id_get ' +\n 'instance_deactivate_all instance_deactivate_object ' +\n 'instance_deactivate_region instance_activate_all ' +\n 'instance_activate_object instance_activate_region room_goto ' +\n 'room_goto_previous room_goto_next room_previous room_next ' +\n 'room_restart game_end game_restart game_load game_save ' +\n 'game_save_buffer game_load_buffer event_perform event_user ' +\n 'event_perform_object event_inherited show_debug_message ' +\n 'show_debug_overlay debug_event debug_get_callstack alarm_get ' +\n 'alarm_set font_texture_page_size keyboard_set_map keyboard_get_map ' +\n 'keyboard_unset_map keyboard_check keyboard_check_pressed ' +\n 'keyboard_check_released keyboard_check_direct keyboard_get_numlock ' +\n 'keyboard_set_numlock keyboard_key_press keyboard_key_release ' +\n 'keyboard_clear io_clear mouse_check_button ' +\n 'mouse_check_button_pressed mouse_check_button_released ' +\n 'mouse_wheel_up mouse_wheel_down mouse_clear draw_self draw_sprite ' +\n 'draw_sprite_pos draw_sprite_ext draw_sprite_stretched ' +\n 'draw_sprite_stretched_ext draw_sprite_tiled draw_sprite_tiled_ext ' +\n 'draw_sprite_part draw_sprite_part_ext draw_sprite_general draw_clear ' +\n 'draw_clear_alpha draw_point draw_line draw_line_width draw_rectangle ' +\n 'draw_roundrect draw_roundrect_ext draw_triangle draw_circle ' +\n 'draw_ellipse draw_set_circle_precision draw_arrow draw_button ' +\n 'draw_path draw_healthbar draw_getpixel draw_getpixel_ext ' +\n 'draw_set_colour draw_set_color draw_set_alpha draw_get_colour ' +\n 'draw_get_color draw_get_alpha merge_colour make_colour_rgb ' +\n 'make_colour_hsv colour_get_red colour_get_green colour_get_blue ' +\n 'colour_get_hue colour_get_saturation colour_get_value merge_color ' +\n 'make_color_rgb make_color_hsv color_get_red color_get_green ' +\n 'color_get_blue color_get_hue color_get_saturation color_get_value ' +\n 'merge_color screen_save screen_save_part draw_set_font ' +\n 'draw_set_halign draw_set_valign draw_text draw_text_ext string_width ' +\n 'string_height string_width_ext string_height_ext ' +\n 'draw_text_transformed draw_text_ext_transformed draw_text_colour ' +\n 'draw_text_ext_colour draw_text_transformed_colour ' +\n 'draw_text_ext_transformed_colour draw_text_color draw_text_ext_color ' +\n 'draw_text_transformed_color draw_text_ext_transformed_color ' +\n 'draw_point_colour draw_line_colour draw_line_width_colour ' +\n 'draw_rectangle_colour draw_roundrect_colour ' +\n 'draw_roundrect_colour_ext draw_triangle_colour draw_circle_colour ' +\n 'draw_ellipse_colour draw_point_color draw_line_color ' +\n 'draw_line_width_color draw_rectangle_color draw_roundrect_color ' +\n 'draw_roundrect_color_ext draw_triangle_color draw_circle_color ' +\n 'draw_ellipse_color draw_primitive_begin draw_vertex ' +\n 'draw_vertex_colour draw_vertex_color draw_primitive_end ' +\n 'sprite_get_uvs font_get_uvs sprite_get_texture font_get_texture ' +\n 'texture_get_width texture_get_height texture_get_uvs ' +\n 'draw_primitive_begin_texture draw_vertex_texture ' +\n 'draw_vertex_texture_colour draw_vertex_texture_color ' +\n 'texture_global_scale surface_create surface_create_ext ' +\n 'surface_resize surface_free surface_exists surface_get_width ' +\n 'surface_get_height surface_get_texture surface_set_target ' +\n 'surface_set_target_ext surface_reset_target surface_depth_disable ' +\n 'surface_get_depth_disable draw_surface draw_surface_stretched ' +\n 'draw_surface_tiled draw_surface_part draw_surface_ext ' +\n 'draw_surface_stretched_ext draw_surface_tiled_ext ' +\n 'draw_surface_part_ext draw_surface_general surface_getpixel ' +\n 'surface_getpixel_ext surface_save surface_save_part surface_copy ' +\n 'surface_copy_part application_surface_draw_enable ' +\n 'application_get_position application_surface_enable ' +\n 'application_surface_is_enabled display_get_width display_get_height ' +\n 'display_get_orientation display_get_gui_width display_get_gui_height ' +\n 'display_reset display_mouse_get_x display_mouse_get_y ' +\n 'display_mouse_set display_set_ui_visibility ' +\n 'window_set_fullscreen window_get_fullscreen ' +\n 'window_set_caption window_set_min_width window_set_max_width ' +\n 'window_set_min_height window_set_max_height window_get_visible_rects ' +\n 'window_get_caption window_set_cursor window_get_cursor ' +\n 'window_set_colour window_get_colour window_set_color ' +\n 'window_get_color window_set_position window_set_size ' +\n 'window_set_rectangle window_center window_get_x window_get_y ' +\n 'window_get_width window_get_height window_mouse_get_x ' +\n 'window_mouse_get_y window_mouse_set window_view_mouse_get_x ' +\n 'window_view_mouse_get_y window_views_mouse_get_x ' +\n 'window_views_mouse_get_y audio_listener_position ' +\n 'audio_listener_velocity audio_listener_orientation ' +\n 'audio_emitter_position audio_emitter_create audio_emitter_free ' +\n 'audio_emitter_exists audio_emitter_pitch audio_emitter_velocity ' +\n 'audio_emitter_falloff audio_emitter_gain audio_play_sound ' +\n 'audio_play_sound_on audio_play_sound_at audio_stop_sound ' +\n 'audio_resume_music audio_music_is_playing audio_resume_sound ' +\n 'audio_pause_sound audio_pause_music audio_channel_num ' +\n 'audio_sound_length audio_get_type audio_falloff_set_model ' +\n 'audio_play_music audio_stop_music audio_master_gain audio_music_gain ' +\n 'audio_sound_gain audio_sound_pitch audio_stop_all audio_resume_all ' +\n 'audio_pause_all audio_is_playing audio_is_paused audio_exists ' +\n 'audio_sound_set_track_position audio_sound_get_track_position ' +\n 'audio_emitter_get_gain audio_emitter_get_pitch audio_emitter_get_x ' +\n 'audio_emitter_get_y audio_emitter_get_z audio_emitter_get_vx ' +\n 'audio_emitter_get_vy audio_emitter_get_vz ' +\n 'audio_listener_set_position audio_listener_set_velocity ' +\n 'audio_listener_set_orientation audio_listener_get_data ' +\n 'audio_set_master_gain audio_get_master_gain audio_sound_get_gain ' +\n 'audio_sound_get_pitch audio_get_name audio_sound_set_track_position ' +\n 'audio_sound_get_track_position audio_create_stream ' +\n 'audio_destroy_stream audio_create_sync_group ' +\n 'audio_destroy_sync_group audio_play_in_sync_group ' +\n 'audio_start_sync_group audio_stop_sync_group audio_pause_sync_group ' +\n 'audio_resume_sync_group audio_sync_group_get_track_pos ' +\n 'audio_sync_group_debug audio_sync_group_is_playing audio_debug ' +\n 'audio_group_load audio_group_unload audio_group_is_loaded ' +\n 'audio_group_load_progress audio_group_name audio_group_stop_all ' +\n 'audio_group_set_gain audio_create_buffer_sound ' +\n 'audio_free_buffer_sound audio_create_play_queue ' +\n 'audio_free_play_queue audio_queue_sound audio_get_recorder_count ' +\n 'audio_get_recorder_info audio_start_recording audio_stop_recording ' +\n 'audio_sound_get_listener_mask audio_emitter_get_listener_mask ' +\n 'audio_get_listener_mask audio_sound_set_listener_mask ' +\n 'audio_emitter_set_listener_mask audio_set_listener_mask ' +\n 'audio_get_listener_count audio_get_listener_info audio_system ' +\n 'show_message show_message_async clickable_add clickable_add_ext ' +\n 'clickable_change clickable_change_ext clickable_delete ' +\n 'clickable_exists clickable_set_style show_question ' +\n 'show_question_async get_integer get_string get_integer_async ' +\n 'get_string_async get_login_async get_open_filename get_save_filename ' +\n 'get_open_filename_ext get_save_filename_ext show_error ' +\n 'highscore_clear highscore_add highscore_value highscore_name ' +\n 'draw_highscore sprite_exists sprite_get_name sprite_get_number ' +\n 'sprite_get_width sprite_get_height sprite_get_xoffset ' +\n 'sprite_get_yoffset sprite_get_bbox_left sprite_get_bbox_right ' +\n 'sprite_get_bbox_top sprite_get_bbox_bottom sprite_save ' +\n 'sprite_save_strip sprite_set_cache_size sprite_set_cache_size_ext ' +\n 'sprite_get_tpe sprite_prefetch sprite_prefetch_multi sprite_flush ' +\n 'sprite_flush_multi sprite_set_speed sprite_get_speed_type ' +\n 'sprite_get_speed font_exists font_get_name font_get_fontname ' +\n 'font_get_bold font_get_italic font_get_first font_get_last ' +\n 'font_get_size font_set_cache_size path_exists path_get_name ' +\n 'path_get_length path_get_time path_get_kind path_get_closed ' +\n 'path_get_precision path_get_number path_get_point_x path_get_point_y ' +\n 'path_get_point_speed path_get_x path_get_y path_get_speed ' +\n 'script_exists script_get_name timeline_add timeline_delete ' +\n 'timeline_clear timeline_exists timeline_get_name ' +\n 'timeline_moment_clear timeline_moment_add_script timeline_size ' +\n 'timeline_max_moment object_exists object_get_name object_get_sprite ' +\n 'object_get_solid object_get_visible object_get_persistent ' +\n 'object_get_mask object_get_parent object_get_physics ' +\n 'object_is_ancestor room_exists room_get_name sprite_set_offset ' +\n 'sprite_duplicate sprite_assign sprite_merge sprite_add ' +\n 'sprite_replace sprite_create_from_surface sprite_add_from_surface ' +\n 'sprite_delete sprite_set_alpha_from_sprite sprite_collision_mask ' +\n 'font_add_enable_aa font_add_get_enable_aa font_add font_add_sprite ' +\n 'font_add_sprite_ext font_replace font_replace_sprite ' +\n 'font_replace_sprite_ext font_delete path_set_kind path_set_closed ' +\n 'path_set_precision path_add path_assign path_duplicate path_append ' +\n 'path_delete path_add_point path_insert_point path_change_point ' +\n 'path_delete_point path_clear_points path_reverse path_mirror ' +\n 'path_flip path_rotate path_rescale path_shift script_execute ' +\n 'object_set_sprite object_set_solid object_set_visible ' +\n 'object_set_persistent object_set_mask room_set_width room_set_height ' +\n 'room_set_persistent room_set_background_colour ' +\n 'room_set_background_color room_set_view room_set_viewport ' +\n 'room_get_viewport room_set_view_enabled room_add room_duplicate ' +\n 'room_assign room_instance_add room_instance_clear room_get_camera ' +\n 'room_set_camera asset_get_index asset_get_type ' +\n 'file_text_open_from_string file_text_open_read file_text_open_write ' +\n 'file_text_open_append file_text_close file_text_write_string ' +\n 'file_text_write_real file_text_writeln file_text_read_string ' +\n 'file_text_read_real file_text_readln file_text_eof file_text_eoln ' +\n 'file_exists file_delete file_rename file_copy directory_exists ' +\n 'directory_create directory_destroy file_find_first file_find_next ' +\n 'file_find_close file_attributes filename_name filename_path ' +\n 'filename_dir filename_drive filename_ext filename_change_ext ' +\n 'file_bin_open file_bin_rewrite file_bin_close file_bin_position ' +\n 'file_bin_size file_bin_seek file_bin_write_byte file_bin_read_byte ' +\n 'parameter_count parameter_string environment_get_variable ' +\n 'ini_open_from_string ini_open ini_close ini_read_string ' +\n 'ini_read_real ini_write_string ini_write_real ini_key_exists ' +\n 'ini_section_exists ini_key_delete ini_section_delete ' +\n 'ds_set_precision ds_exists ds_stack_create ds_stack_destroy ' +\n 'ds_stack_clear ds_stack_copy ds_stack_size ds_stack_empty ' +\n 'ds_stack_push ds_stack_pop ds_stack_top ds_stack_write ds_stack_read ' +\n 'ds_queue_create ds_queue_destroy ds_queue_clear ds_queue_copy ' +\n 'ds_queue_size ds_queue_empty ds_queue_enqueue ds_queue_dequeue ' +\n 'ds_queue_head ds_queue_tail ds_queue_write ds_queue_read ' +\n 'ds_list_create ds_list_destroy ds_list_clear ds_list_copy ' +\n 'ds_list_size ds_list_empty ds_list_add ds_list_insert ' +\n 'ds_list_replace ds_list_delete ds_list_find_index ds_list_find_value ' +\n 'ds_list_mark_as_list ds_list_mark_as_map ds_list_sort ' +\n 'ds_list_shuffle ds_list_write ds_list_read ds_list_set ds_map_create ' +\n 'ds_map_destroy ds_map_clear ds_map_copy ds_map_size ds_map_empty ' +\n 'ds_map_add ds_map_add_list ds_map_add_map ds_map_replace ' +\n 'ds_map_replace_map ds_map_replace_list ds_map_delete ds_map_exists ' +\n 'ds_map_find_value ds_map_find_previous ds_map_find_next ' +\n 'ds_map_find_first ds_map_find_last ds_map_write ds_map_read ' +\n 'ds_map_secure_save ds_map_secure_load ds_map_secure_load_buffer ' +\n 'ds_map_secure_save_buffer ds_map_set ds_priority_create ' +\n 'ds_priority_destroy ds_priority_clear ds_priority_copy ' +\n 'ds_priority_size ds_priority_empty ds_priority_add ' +\n 'ds_priority_change_priority ds_priority_find_priority ' +\n 'ds_priority_delete_value ds_priority_delete_min ds_priority_find_min ' +\n 'ds_priority_delete_max ds_priority_find_max ds_priority_write ' +\n 'ds_priority_read ds_grid_create ds_grid_destroy ds_grid_copy ' +\n 'ds_grid_resize ds_grid_width ds_grid_height ds_grid_clear ' +\n 'ds_grid_set ds_grid_add ds_grid_multiply ds_grid_set_region ' +\n 'ds_grid_add_region ds_grid_multiply_region ds_grid_set_disk ' +\n 'ds_grid_add_disk ds_grid_multiply_disk ds_grid_set_grid_region ' +\n 'ds_grid_add_grid_region ds_grid_multiply_grid_region ds_grid_get ' +\n 'ds_grid_get_sum ds_grid_get_max ds_grid_get_min ds_grid_get_mean ' +\n 'ds_grid_get_disk_sum ds_grid_get_disk_min ds_grid_get_disk_max ' +\n 'ds_grid_get_disk_mean ds_grid_value_exists ds_grid_value_x ' +\n 'ds_grid_value_y ds_grid_value_disk_exists ds_grid_value_disk_x ' +\n 'ds_grid_value_disk_y ds_grid_shuffle ds_grid_write ds_grid_read ' +\n 'ds_grid_sort ds_grid_set ds_grid_get effect_create_below ' +\n 'effect_create_above effect_clear part_type_create part_type_destroy ' +\n 'part_type_exists part_type_clear part_type_shape part_type_sprite ' +\n 'part_type_size part_type_scale part_type_orientation part_type_life ' +\n 'part_type_step part_type_death part_type_speed part_type_direction ' +\n 'part_type_gravity part_type_colour1 part_type_colour2 ' +\n 'part_type_colour3 part_type_colour_mix part_type_colour_rgb ' +\n 'part_type_colour_hsv part_type_color1 part_type_color2 ' +\n 'part_type_color3 part_type_color_mix part_type_color_rgb ' +\n 'part_type_color_hsv part_type_alpha1 part_type_alpha2 ' +\n 'part_type_alpha3 part_type_blend part_system_create ' +\n 'part_system_create_layer part_system_destroy part_system_exists ' +\n 'part_system_clear part_system_draw_order part_system_depth ' +\n 'part_system_position part_system_automatic_update ' +\n 'part_system_automatic_draw part_system_update part_system_drawit ' +\n 'part_system_get_layer part_system_layer part_particles_create ' +\n 'part_particles_create_colour part_particles_create_color ' +\n 'part_particles_clear part_particles_count part_emitter_create ' +\n 'part_emitter_destroy part_emitter_destroy_all part_emitter_exists ' +\n 'part_emitter_clear part_emitter_region part_emitter_burst ' +\n 'part_emitter_stream external_call external_define external_free ' +\n 'window_handle window_device matrix_get matrix_set ' +\n 'matrix_build_identity matrix_build matrix_build_lookat ' +\n 'matrix_build_projection_ortho matrix_build_projection_perspective ' +\n 'matrix_build_projection_perspective_fov matrix_multiply ' +\n 'matrix_transform_vertex matrix_stack_push matrix_stack_pop ' +\n 'matrix_stack_multiply matrix_stack_set matrix_stack_clear ' +\n 'matrix_stack_top matrix_stack_is_empty browser_input_capture ' +\n 'os_get_config os_get_info os_get_language os_get_region ' +\n 'os_lock_orientation display_get_dpi_x display_get_dpi_y ' +\n 'display_set_gui_size display_set_gui_maximise ' +\n 'display_set_gui_maximize device_mouse_dbclick_enable ' +\n 'display_set_timing_method display_get_timing_method ' +\n 'display_set_sleep_margin display_get_sleep_margin virtual_key_add ' +\n 'virtual_key_hide virtual_key_delete virtual_key_show ' +\n 'draw_enable_drawevent draw_enable_swf_aa draw_set_swf_aa_level ' +\n 'draw_get_swf_aa_level draw_texture_flush draw_flush ' +\n 'gpu_set_blendenable gpu_set_ztestenable gpu_set_zfunc ' +\n 'gpu_set_zwriteenable gpu_set_lightingenable gpu_set_fog ' +\n 'gpu_set_cullmode gpu_set_blendmode gpu_set_blendmode_ext ' +\n 'gpu_set_blendmode_ext_sepalpha gpu_set_colorwriteenable ' +\n 'gpu_set_colourwriteenable gpu_set_alphatestenable ' +\n 'gpu_set_alphatestref gpu_set_alphatestfunc gpu_set_texfilter ' +\n 'gpu_set_texfilter_ext gpu_set_texrepeat gpu_set_texrepeat_ext ' +\n 'gpu_set_tex_filter gpu_set_tex_filter_ext gpu_set_tex_repeat ' +\n 'gpu_set_tex_repeat_ext gpu_set_tex_mip_filter ' +\n 'gpu_set_tex_mip_filter_ext gpu_set_tex_mip_bias ' +\n 'gpu_set_tex_mip_bias_ext gpu_set_tex_min_mip gpu_set_tex_min_mip_ext ' +\n 'gpu_set_tex_max_mip gpu_set_tex_max_mip_ext gpu_set_tex_max_aniso ' +\n 'gpu_set_tex_max_aniso_ext gpu_set_tex_mip_enable ' +\n 'gpu_set_tex_mip_enable_ext gpu_get_blendenable gpu_get_ztestenable ' +\n 'gpu_get_zfunc gpu_get_zwriteenable gpu_get_lightingenable ' +\n 'gpu_get_fog gpu_get_cullmode gpu_get_blendmode gpu_get_blendmode_ext ' +\n 'gpu_get_blendmode_ext_sepalpha gpu_get_blendmode_src ' +\n 'gpu_get_blendmode_dest gpu_get_blendmode_srcalpha ' +\n 'gpu_get_blendmode_destalpha gpu_get_colorwriteenable ' +\n 'gpu_get_colourwriteenable gpu_get_alphatestenable ' +\n 'gpu_get_alphatestref gpu_get_alphatestfunc gpu_get_texfilter ' +\n 'gpu_get_texfilter_ext gpu_get_texrepeat gpu_get_texrepeat_ext ' +\n 'gpu_get_tex_filter gpu_get_tex_filter_ext gpu_get_tex_repeat ' +\n 'gpu_get_tex_repeat_ext gpu_get_tex_mip_filter ' +\n 'gpu_get_tex_mip_filter_ext gpu_get_tex_mip_bias ' +\n 'gpu_get_tex_mip_bias_ext gpu_get_tex_min_mip gpu_get_tex_min_mip_ext ' +\n 'gpu_get_tex_max_mip gpu_get_tex_max_mip_ext gpu_get_tex_max_aniso ' +\n 'gpu_get_tex_max_aniso_ext gpu_get_tex_mip_enable ' +\n 'gpu_get_tex_mip_enable_ext gpu_push_state gpu_pop_state ' +\n 'gpu_get_state gpu_set_state draw_light_define_ambient ' +\n 'draw_light_define_direction draw_light_define_point ' +\n 'draw_light_enable draw_set_lighting draw_light_get_ambient ' +\n 'draw_light_get draw_get_lighting shop_leave_rating url_get_domain ' +\n 'url_open url_open_ext url_open_full get_timer achievement_login ' +\n 'achievement_logout achievement_post achievement_increment ' +\n 'achievement_post_score achievement_available ' +\n 'achievement_show_achievements achievement_show_leaderboards ' +\n 'achievement_load_friends achievement_load_leaderboard ' +\n 'achievement_send_challenge achievement_load_progress ' +\n 'achievement_reset achievement_login_status achievement_get_pic ' +\n 'achievement_show_challenge_notifications achievement_get_challenges ' +\n 'achievement_event achievement_show achievement_get_info ' +\n 'cloud_file_save cloud_string_save cloud_synchronise ads_enable ' +\n 'ads_disable ads_setup ads_engagement_launch ads_engagement_available ' +\n 'ads_engagement_active ads_event ads_event_preload ' +\n 'ads_set_reward_callback ads_get_display_height ads_get_display_width ' +\n 'ads_move ads_interstitial_available ads_interstitial_display ' +\n 'device_get_tilt_x device_get_tilt_y device_get_tilt_z ' +\n 'device_is_keypad_open device_mouse_check_button ' +\n 'device_mouse_check_button_pressed device_mouse_check_button_released ' +\n 'device_mouse_x device_mouse_y device_mouse_raw_x device_mouse_raw_y ' +\n 'device_mouse_x_to_gui device_mouse_y_to_gui iap_activate iap_status ' +\n 'iap_enumerate_products iap_restore_all iap_acquire iap_consume ' +\n 'iap_product_details iap_purchase_details facebook_init ' +\n 'facebook_login facebook_status facebook_graph_request ' +\n 'facebook_dialog facebook_logout facebook_launch_offerwall ' +\n 'facebook_post_message facebook_send_invite facebook_user_id ' +\n 'facebook_accesstoken facebook_check_permission ' +\n 'facebook_request_read_permissions ' +\n 'facebook_request_publish_permissions gamepad_is_supported ' +\n 'gamepad_get_device_count gamepad_is_connected ' +\n 'gamepad_get_description gamepad_get_button_threshold ' +\n 'gamepad_set_button_threshold gamepad_get_axis_deadzone ' +\n 'gamepad_set_axis_deadzone gamepad_button_count gamepad_button_check ' +\n 'gamepad_button_check_pressed gamepad_button_check_released ' +\n 'gamepad_button_value gamepad_axis_count gamepad_axis_value ' +\n 'gamepad_set_vibration gamepad_set_colour gamepad_set_color ' +\n 'os_is_paused window_has_focus code_is_compiled http_get ' +\n 'http_get_file http_post_string http_request json_encode json_decode ' +\n 'zip_unzip load_csv base64_encode base64_decode md5_string_unicode ' +\n 'md5_string_utf8 md5_file os_is_network_connected sha1_string_unicode ' +\n 'sha1_string_utf8 sha1_file os_powersave_enable analytics_event ' +\n 'analytics_event_ext win8_livetile_tile_notification ' +\n 'win8_livetile_tile_clear win8_livetile_badge_notification ' +\n 'win8_livetile_badge_clear win8_livetile_queue_enable ' +\n 'win8_secondarytile_pin win8_secondarytile_badge_notification ' +\n 'win8_secondarytile_delete win8_livetile_notification_begin ' +\n 'win8_livetile_notification_secondary_begin ' +\n 'win8_livetile_notification_expiry win8_livetile_notification_tag ' +\n 'win8_livetile_notification_text_add ' +\n 'win8_livetile_notification_image_add win8_livetile_notification_end ' +\n 'win8_appbar_enable win8_appbar_add_element ' +\n 'win8_appbar_remove_element win8_settingscharm_add_entry ' +\n 'win8_settingscharm_add_html_entry win8_settingscharm_add_xaml_entry ' +\n 'win8_settingscharm_set_xaml_property ' +\n 'win8_settingscharm_get_xaml_property win8_settingscharm_remove_entry ' +\n 'win8_share_image win8_share_screenshot win8_share_file ' +\n 'win8_share_url win8_share_text win8_search_enable ' +\n 'win8_search_disable win8_search_add_suggestions ' +\n 'win8_device_touchscreen_available win8_license_initialize_sandbox ' +\n 'win8_license_trial_version winphone_license_trial_version ' +\n 'winphone_tile_title winphone_tile_count winphone_tile_back_title ' +\n 'winphone_tile_back_content winphone_tile_back_content_wide ' +\n 'winphone_tile_front_image winphone_tile_front_image_small ' +\n 'winphone_tile_front_image_wide winphone_tile_back_image ' +\n 'winphone_tile_back_image_wide winphone_tile_background_colour ' +\n 'winphone_tile_background_color winphone_tile_icon_image ' +\n 'winphone_tile_small_icon_image winphone_tile_wide_content ' +\n 'winphone_tile_cycle_images winphone_tile_small_background_image ' +\n 'physics_world_create physics_world_gravity ' +\n 'physics_world_update_speed physics_world_update_iterations ' +\n 'physics_world_draw_debug physics_pause_enable physics_fixture_create ' +\n 'physics_fixture_set_kinematic physics_fixture_set_density ' +\n 'physics_fixture_set_awake physics_fixture_set_restitution ' +\n 'physics_fixture_set_friction physics_fixture_set_collision_group ' +\n 'physics_fixture_set_sensor physics_fixture_set_linear_damping ' +\n 'physics_fixture_set_angular_damping physics_fixture_set_circle_shape ' +\n 'physics_fixture_set_box_shape physics_fixture_set_edge_shape ' +\n 'physics_fixture_set_polygon_shape physics_fixture_set_chain_shape ' +\n 'physics_fixture_add_point physics_fixture_bind ' +\n 'physics_fixture_bind_ext physics_fixture_delete physics_apply_force ' +\n 'physics_apply_impulse physics_apply_angular_impulse ' +\n 'physics_apply_local_force physics_apply_local_impulse ' +\n 'physics_apply_torque physics_mass_properties physics_draw_debug ' +\n 'physics_test_overlap physics_remove_fixture physics_set_friction ' +\n 'physics_set_density physics_set_restitution physics_get_friction ' +\n 'physics_get_density physics_get_restitution ' +\n 'physics_joint_distance_create physics_joint_rope_create ' +\n 'physics_joint_revolute_create physics_joint_prismatic_create ' +\n 'physics_joint_pulley_create physics_joint_wheel_create ' +\n 'physics_joint_weld_create physics_joint_friction_create ' +\n 'physics_joint_gear_create physics_joint_enable_motor ' +\n 'physics_joint_get_value physics_joint_set_value physics_joint_delete ' +\n 'physics_particle_create physics_particle_delete ' +\n 'physics_particle_delete_region_circle ' +\n 'physics_particle_delete_region_box ' +\n 'physics_particle_delete_region_poly physics_particle_set_flags ' +\n 'physics_particle_set_category_flags physics_particle_draw ' +\n 'physics_particle_draw_ext physics_particle_count ' +\n 'physics_particle_get_data physics_particle_get_data_particle ' +\n 'physics_particle_group_begin physics_particle_group_circle ' +\n 'physics_particle_group_box physics_particle_group_polygon ' +\n 'physics_particle_group_add_point physics_particle_group_end ' +\n 'physics_particle_group_join physics_particle_group_delete ' +\n 'physics_particle_group_count physics_particle_group_get_data ' +\n 'physics_particle_group_get_mass physics_particle_group_get_inertia ' +\n 'physics_particle_group_get_centre_x ' +\n 'physics_particle_group_get_centre_y physics_particle_group_get_vel_x ' +\n 'physics_particle_group_get_vel_y physics_particle_group_get_ang_vel ' +\n 'physics_particle_group_get_x physics_particle_group_get_y ' +\n 'physics_particle_group_get_angle physics_particle_set_group_flags ' +\n 'physics_particle_get_group_flags physics_particle_get_max_count ' +\n 'physics_particle_get_radius physics_particle_get_density ' +\n 'physics_particle_get_damping physics_particle_get_gravity_scale ' +\n 'physics_particle_set_max_count physics_particle_set_radius ' +\n 'physics_particle_set_density physics_particle_set_damping ' +\n 'physics_particle_set_gravity_scale network_create_socket ' +\n 'network_create_socket_ext network_create_server ' +\n 'network_create_server_raw network_connect network_connect_raw ' +\n 'network_send_packet network_send_raw network_send_broadcast ' +\n 'network_send_udp network_send_udp_raw network_set_timeout ' +\n 'network_set_config network_resolve network_destroy buffer_create ' +\n 'buffer_write buffer_read buffer_seek buffer_get_surface ' +\n 'buffer_set_surface buffer_delete buffer_exists buffer_get_type ' +\n 'buffer_get_alignment buffer_poke buffer_peek buffer_save ' +\n 'buffer_save_ext buffer_load buffer_load_ext buffer_load_partial ' +\n 'buffer_copy buffer_fill buffer_get_size buffer_tell buffer_resize ' +\n 'buffer_md5 buffer_sha1 buffer_base64_encode buffer_base64_decode ' +\n 'buffer_base64_decode_ext buffer_sizeof buffer_get_address ' +\n 'buffer_create_from_vertex_buffer ' +\n 'buffer_create_from_vertex_buffer_ext buffer_copy_from_vertex_buffer ' +\n 'buffer_async_group_begin buffer_async_group_option ' +\n 'buffer_async_group_end buffer_load_async buffer_save_async ' +\n 'gml_release_mode gml_pragma steam_activate_overlay ' +\n 'steam_is_overlay_enabled steam_is_overlay_activated ' +\n 'steam_get_persona_name steam_initialised ' +\n 'steam_is_cloud_enabled_for_app steam_is_cloud_enabled_for_account ' +\n 'steam_file_persisted steam_get_quota_total steam_get_quota_free ' +\n 'steam_file_write steam_file_write_file steam_file_read ' +\n 'steam_file_delete steam_file_exists steam_file_size steam_file_share ' +\n 'steam_is_screenshot_requested steam_send_screenshot ' +\n 'steam_is_user_logged_on steam_get_user_steam_id steam_user_owns_dlc ' +\n 'steam_user_installed_dlc steam_set_achievement steam_get_achievement ' +\n 'steam_clear_achievement steam_set_stat_int steam_set_stat_float ' +\n 'steam_set_stat_avg_rate steam_get_stat_int steam_get_stat_float ' +\n 'steam_get_stat_avg_rate steam_reset_all_stats ' +\n 'steam_reset_all_stats_achievements steam_stats_ready ' +\n 'steam_create_leaderboard steam_upload_score steam_upload_score_ext ' +\n 'steam_download_scores_around_user steam_download_scores ' +\n 'steam_download_friends_scores steam_upload_score_buffer ' +\n 'steam_upload_score_buffer_ext steam_current_game_language ' +\n 'steam_available_languages steam_activate_overlay_browser ' +\n 'steam_activate_overlay_user steam_activate_overlay_store ' +\n 'steam_get_user_persona_name steam_get_app_id ' +\n 'steam_get_user_account_id steam_ugc_download steam_ugc_create_item ' +\n 'steam_ugc_start_item_update steam_ugc_set_item_title ' +\n 'steam_ugc_set_item_description steam_ugc_set_item_visibility ' +\n 'steam_ugc_set_item_tags steam_ugc_set_item_content ' +\n 'steam_ugc_set_item_preview steam_ugc_submit_item_update ' +\n 'steam_ugc_get_item_update_progress steam_ugc_subscribe_item ' +\n 'steam_ugc_unsubscribe_item steam_ugc_num_subscribed_items ' +\n 'steam_ugc_get_subscribed_items steam_ugc_get_item_install_info ' +\n 'steam_ugc_get_item_update_info steam_ugc_request_item_details ' +\n 'steam_ugc_create_query_user steam_ugc_create_query_user_ex ' +\n 'steam_ugc_create_query_all steam_ugc_create_query_all_ex ' +\n 'steam_ugc_query_set_cloud_filename_filter ' +\n 'steam_ugc_query_set_match_any_tag steam_ugc_query_set_search_text ' +\n 'steam_ugc_query_set_ranked_by_trend_days ' +\n 'steam_ugc_query_add_required_tag steam_ugc_query_add_excluded_tag ' +\n 'steam_ugc_query_set_return_long_description ' +\n 'steam_ugc_query_set_return_total_only ' +\n 'steam_ugc_query_set_allow_cached_response steam_ugc_send_query ' +\n 'shader_set shader_get_name shader_reset shader_current ' +\n 'shader_is_compiled shader_get_sampler_index shader_get_uniform ' +\n 'shader_set_uniform_i shader_set_uniform_i_array shader_set_uniform_f ' +\n 'shader_set_uniform_f_array shader_set_uniform_matrix ' +\n 'shader_set_uniform_matrix_array shader_enable_corner_id ' +\n 'texture_set_stage texture_get_texel_width texture_get_texel_height ' +\n 'shaders_are_supported vertex_format_begin vertex_format_end ' +\n 'vertex_format_delete vertex_format_add_position ' +\n 'vertex_format_add_position_3d vertex_format_add_colour ' +\n 'vertex_format_add_color vertex_format_add_normal ' +\n 'vertex_format_add_texcoord vertex_format_add_textcoord ' +\n 'vertex_format_add_custom vertex_create_buffer ' +\n 'vertex_create_buffer_ext vertex_delete_buffer vertex_begin ' +\n 'vertex_end vertex_position vertex_position_3d vertex_colour ' +\n 'vertex_color vertex_argb vertex_texcoord vertex_normal vertex_float1 ' +\n 'vertex_float2 vertex_float3 vertex_float4 vertex_ubyte4 ' +\n 'vertex_submit vertex_freeze vertex_get_number vertex_get_buffer_size ' +\n 'vertex_create_buffer_from_buffer ' +\n 'vertex_create_buffer_from_buffer_ext push_local_notification ' +\n 'push_get_first_local_notification push_get_next_local_notification ' +\n 'push_cancel_local_notification skeleton_animation_set ' +\n 'skeleton_animation_get skeleton_animation_mix ' +\n 'skeleton_animation_set_ext skeleton_animation_get_ext ' +\n 'skeleton_animation_get_duration skeleton_animation_get_frames ' +\n 'skeleton_animation_clear skeleton_skin_set skeleton_skin_get ' +\n 'skeleton_attachment_set skeleton_attachment_get ' +\n 'skeleton_attachment_create skeleton_collision_draw_set ' +\n 'skeleton_bone_data_get skeleton_bone_data_set ' +\n 'skeleton_bone_state_get skeleton_bone_state_set skeleton_get_minmax ' +\n 'skeleton_get_num_bounds skeleton_get_bounds ' +\n 'skeleton_animation_get_frame skeleton_animation_set_frame ' +\n 'draw_skeleton draw_skeleton_time draw_skeleton_instance ' +\n 'draw_skeleton_collision skeleton_animation_list skeleton_skin_list ' +\n 'skeleton_slot_data layer_get_id layer_get_id_at_depth ' +\n 'layer_get_depth layer_create layer_destroy layer_destroy_instances ' +\n 'layer_add_instance layer_has_instance layer_set_visible ' +\n 'layer_get_visible layer_exists layer_x layer_y layer_get_x ' +\n 'layer_get_y layer_hspeed layer_vspeed layer_get_hspeed ' +\n 'layer_get_vspeed layer_script_begin layer_script_end layer_shader ' +\n 'layer_get_script_begin layer_get_script_end layer_get_shader ' +\n 'layer_set_target_room layer_get_target_room layer_reset_target_room ' +\n 'layer_get_all layer_get_all_elements layer_get_name layer_depth ' +\n 'layer_get_element_layer layer_get_element_type layer_element_move ' +\n 'layer_force_draw_depth layer_is_draw_depth_forced ' +\n 'layer_get_forced_depth layer_background_get_id ' +\n 'layer_background_exists layer_background_create ' +\n 'layer_background_destroy layer_background_visible ' +\n 'layer_background_change layer_background_sprite ' +\n 'layer_background_htiled layer_background_vtiled ' +\n 'layer_background_stretch layer_background_yscale ' +\n 'layer_background_xscale layer_background_blend ' +\n 'layer_background_alpha layer_background_index layer_background_speed ' +\n 'layer_background_get_visible layer_background_get_sprite ' +\n 'layer_background_get_htiled layer_background_get_vtiled ' +\n 'layer_background_get_stretch layer_background_get_yscale ' +\n 'layer_background_get_xscale layer_background_get_blend ' +\n 'layer_background_get_alpha layer_background_get_index ' +\n 'layer_background_get_speed layer_sprite_get_id layer_sprite_exists ' +\n 'layer_sprite_create layer_sprite_destroy layer_sprite_change ' +\n 'layer_sprite_index layer_sprite_speed layer_sprite_xscale ' +\n 'layer_sprite_yscale layer_sprite_angle layer_sprite_blend ' +\n 'layer_sprite_alpha layer_sprite_x layer_sprite_y ' +\n 'layer_sprite_get_sprite layer_sprite_get_index ' +\n 'layer_sprite_get_speed layer_sprite_get_xscale ' +\n 'layer_sprite_get_yscale layer_sprite_get_angle ' +\n 'layer_sprite_get_blend layer_sprite_get_alpha layer_sprite_get_x ' +\n 'layer_sprite_get_y layer_tilemap_get_id layer_tilemap_exists ' +\n 'layer_tilemap_create layer_tilemap_destroy tilemap_tileset tilemap_x ' +\n 'tilemap_y tilemap_set tilemap_set_at_pixel tilemap_get_tileset ' +\n 'tilemap_get_tile_width tilemap_get_tile_height tilemap_get_width ' +\n 'tilemap_get_height tilemap_get_x tilemap_get_y tilemap_get ' +\n 'tilemap_get_at_pixel tilemap_get_cell_x_at_pixel ' +\n 'tilemap_get_cell_y_at_pixel tilemap_clear draw_tilemap draw_tile ' +\n 'tilemap_set_global_mask tilemap_get_global_mask tilemap_set_mask ' +\n 'tilemap_get_mask tilemap_get_frame tile_set_empty tile_set_index ' +\n 'tile_set_flip tile_set_mirror tile_set_rotate tile_get_empty ' +\n 'tile_get_index tile_get_flip tile_get_mirror tile_get_rotate ' +\n 'layer_tile_exists layer_tile_create layer_tile_destroy ' +\n 'layer_tile_change layer_tile_xscale layer_tile_yscale ' +\n 'layer_tile_blend layer_tile_alpha layer_tile_x layer_tile_y ' +\n 'layer_tile_region layer_tile_visible layer_tile_get_sprite ' +\n 'layer_tile_get_xscale layer_tile_get_yscale layer_tile_get_blend ' +\n 'layer_tile_get_alpha layer_tile_get_x layer_tile_get_y ' +\n 'layer_tile_get_region layer_tile_get_visible ' +\n 'layer_instance_get_instance instance_activate_layer ' +\n 'instance_deactivate_layer camera_create camera_create_view ' +\n 'camera_destroy camera_apply camera_get_active camera_get_default ' +\n 'camera_set_default camera_set_view_mat camera_set_proj_mat ' +\n 'camera_set_update_script camera_set_begin_script ' +\n 'camera_set_end_script camera_set_view_pos camera_set_view_size ' +\n 'camera_set_view_speed camera_set_view_border camera_set_view_angle ' +\n 'camera_set_view_target camera_get_view_mat camera_get_proj_mat ' +\n 'camera_get_update_script camera_get_begin_script ' +\n 'camera_get_end_script camera_get_view_x camera_get_view_y ' +\n 'camera_get_view_width camera_get_view_height camera_get_view_speed_x ' +\n 'camera_get_view_speed_y camera_get_view_border_x ' +\n 'camera_get_view_border_y camera_get_view_angle ' +\n 'camera_get_view_target view_get_camera view_get_visible ' +\n 'view_get_xport view_get_yport view_get_wport view_get_hport ' +\n 'view_get_surface_id view_set_camera view_set_visible view_set_xport ' +\n 'view_set_yport view_set_wport view_set_hport view_set_surface_id ' +\n 'gesture_drag_time gesture_drag_distance gesture_flick_speed ' +\n 'gesture_double_tap_time gesture_double_tap_distance ' +\n 'gesture_pinch_distance gesture_pinch_angle_towards ' +\n 'gesture_pinch_angle_away gesture_rotate_time gesture_rotate_angle ' +\n 'gesture_tap_count gesture_get_drag_time gesture_get_drag_distance ' +\n 'gesture_get_flick_speed gesture_get_double_tap_time ' +\n 'gesture_get_double_tap_distance gesture_get_pinch_distance ' +\n 'gesture_get_pinch_angle_towards gesture_get_pinch_angle_away ' +\n 'gesture_get_rotate_time gesture_get_rotate_angle ' +\n 'gesture_get_tap_count keyboard_virtual_show keyboard_virtual_hide ' +\n 'keyboard_virtual_status keyboard_virtual_height',\n literal: 'self other all noone global local undefined pointer_invalid ' +\n 'pointer_null path_action_stop path_action_restart ' +\n 'path_action_continue path_action_reverse true false pi GM_build_date ' +\n 'GM_version GM_runtime_version timezone_local timezone_utc ' +\n 'gamespeed_fps gamespeed_microseconds ev_create ev_destroy ev_step ' +\n 'ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw ' +\n 'ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ' +\n 'ev_keyrelease ev_trigger ev_left_button ev_right_button ' +\n 'ev_middle_button ev_no_button ev_left_press ev_right_press ' +\n 'ev_middle_press ev_left_release ev_right_release ev_middle_release ' +\n 'ev_mouse_enter ev_mouse_leave ev_mouse_wheel_up ev_mouse_wheel_down ' +\n 'ev_global_left_button ev_global_right_button ev_global_middle_button ' +\n 'ev_global_left_press ev_global_right_press ev_global_middle_press ' +\n 'ev_global_left_release ev_global_right_release ' +\n 'ev_global_middle_release ev_joystick1_left ev_joystick1_right ' +\n 'ev_joystick1_up ev_joystick1_down ev_joystick1_button1 ' +\n 'ev_joystick1_button2 ev_joystick1_button3 ev_joystick1_button4 ' +\n 'ev_joystick1_button5 ev_joystick1_button6 ev_joystick1_button7 ' +\n 'ev_joystick1_button8 ev_joystick2_left ev_joystick2_right ' +\n 'ev_joystick2_up ev_joystick2_down ev_joystick2_button1 ' +\n 'ev_joystick2_button2 ev_joystick2_button3 ev_joystick2_button4 ' +\n 'ev_joystick2_button5 ev_joystick2_button6 ev_joystick2_button7 ' +\n 'ev_joystick2_button8 ev_outside ev_boundary ev_game_start ' +\n 'ev_game_end ev_room_start ev_room_end ev_no_more_lives ' +\n 'ev_animation_end ev_end_of_path ev_no_more_health ev_close_button ' +\n 'ev_user0 ev_user1 ev_user2 ev_user3 ev_user4 ev_user5 ev_user6 ' +\n 'ev_user7 ev_user8 ev_user9 ev_user10 ev_user11 ev_user12 ev_user13 ' +\n 'ev_user14 ev_user15 ev_step_normal ev_step_begin ev_step_end ev_gui ' +\n 'ev_gui_begin ev_gui_end ev_cleanup ev_gesture ev_gesture_tap ' +\n 'ev_gesture_double_tap ev_gesture_drag_start ev_gesture_dragging ' +\n 'ev_gesture_drag_end ev_gesture_flick ev_gesture_pinch_start ' +\n 'ev_gesture_pinch_in ev_gesture_pinch_out ev_gesture_pinch_end ' +\n 'ev_gesture_rotate_start ev_gesture_rotating ev_gesture_rotate_end ' +\n 'ev_global_gesture_tap ev_global_gesture_double_tap ' +\n 'ev_global_gesture_drag_start ev_global_gesture_dragging ' +\n 'ev_global_gesture_drag_end ev_global_gesture_flick ' +\n 'ev_global_gesture_pinch_start ev_global_gesture_pinch_in ' +\n 'ev_global_gesture_pinch_out ev_global_gesture_pinch_end ' +\n 'ev_global_gesture_rotate_start ev_global_gesture_rotating ' +\n 'ev_global_gesture_rotate_end vk_nokey vk_anykey vk_enter vk_return ' +\n 'vk_shift vk_control vk_alt vk_escape vk_space vk_backspace vk_tab ' +\n 'vk_pause vk_printscreen vk_left vk_right vk_up vk_down vk_home ' +\n 'vk_end vk_delete vk_insert vk_pageup vk_pagedown vk_f1 vk_f2 vk_f3 ' +\n 'vk_f4 vk_f5 vk_f6 vk_f7 vk_f8 vk_f9 vk_f10 vk_f11 vk_f12 vk_numpad0 ' +\n 'vk_numpad1 vk_numpad2 vk_numpad3 vk_numpad4 vk_numpad5 vk_numpad6 ' +\n 'vk_numpad7 vk_numpad8 vk_numpad9 vk_divide vk_multiply vk_subtract ' +\n 'vk_add vk_decimal vk_lshift vk_lcontrol vk_lalt vk_rshift ' +\n 'vk_rcontrol vk_ralt mb_any mb_none mb_left mb_right mb_middle ' +\n 'c_aqua c_black c_blue c_dkgray c_fuchsia c_gray c_green c_lime ' +\n 'c_ltgray c_maroon c_navy c_olive c_purple c_red c_silver c_teal ' +\n 'c_white c_yellow c_orange fa_left fa_center fa_right fa_top ' +\n 'fa_middle fa_bottom pr_pointlist pr_linelist pr_linestrip ' +\n 'pr_trianglelist pr_trianglestrip pr_trianglefan bm_complex bm_normal ' +\n 'bm_add bm_max bm_subtract bm_zero bm_one bm_src_colour ' +\n 'bm_inv_src_colour bm_src_color bm_inv_src_color bm_src_alpha ' +\n 'bm_inv_src_alpha bm_dest_alpha bm_inv_dest_alpha bm_dest_colour ' +\n 'bm_inv_dest_colour bm_dest_color bm_inv_dest_color bm_src_alpha_sat ' +\n 'tf_point tf_linear tf_anisotropic mip_off mip_on mip_markedonly ' +\n 'audio_falloff_none audio_falloff_inverse_distance ' +\n 'audio_falloff_inverse_distance_clamped audio_falloff_linear_distance ' +\n 'audio_falloff_linear_distance_clamped ' +\n 'audio_falloff_exponent_distance ' +\n 'audio_falloff_exponent_distance_clamped audio_old_system ' +\n 'audio_new_system audio_mono audio_stereo audio_3d cr_default cr_none ' +\n 'cr_arrow cr_cross cr_beam cr_size_nesw cr_size_ns cr_size_nwse ' +\n 'cr_size_we cr_uparrow cr_hourglass cr_drag cr_appstart cr_handpoint ' +\n 'cr_size_all spritespeed_framespersecond ' +\n 'spritespeed_framespergameframe asset_object asset_unknown ' +\n 'asset_sprite asset_sound asset_room asset_path asset_script ' +\n 'asset_font asset_timeline asset_tiles asset_shader fa_readonly ' +\n 'fa_hidden fa_sysfile fa_volumeid fa_directory fa_archive ' +\n 'ds_type_map ds_type_list ds_type_stack ds_type_queue ds_type_grid ' +\n 'ds_type_priority ef_explosion ef_ring ef_ellipse ef_firework ' +\n 'ef_smoke ef_smokeup ef_star ef_spark ef_flare ef_cloud ef_rain ' +\n 'ef_snow pt_shape_pixel pt_shape_disk pt_shape_square pt_shape_line ' +\n 'pt_shape_star pt_shape_circle pt_shape_ring pt_shape_sphere ' +\n 'pt_shape_flare pt_shape_spark pt_shape_explosion pt_shape_cloud ' +\n 'pt_shape_smoke pt_shape_snow ps_distr_linear ps_distr_gaussian ' +\n 'ps_distr_invgaussian ps_shape_rectangle ps_shape_ellipse ' +\n 'ps_shape_diamond ps_shape_line ty_real ty_string dll_cdecl ' +\n 'dll_stdcall matrix_view matrix_projection matrix_world os_win32 ' +\n 'os_windows os_macosx os_ios os_android os_symbian os_linux ' +\n 'os_unknown os_winphone os_tizen os_win8native ' +\n 'os_wiiu os_3ds os_psvita os_bb10 os_ps4 os_xboxone ' +\n 'os_ps3 os_xbox360 os_uwp os_tvos os_switch ' +\n 'browser_not_a_browser browser_unknown browser_ie browser_firefox ' +\n 'browser_chrome browser_safari browser_safari_mobile browser_opera ' +\n 'browser_tizen browser_edge browser_windows_store browser_ie_mobile ' +\n 'device_ios_unknown device_ios_iphone device_ios_iphone_retina ' +\n 'device_ios_ipad device_ios_ipad_retina device_ios_iphone5 ' +\n 'device_ios_iphone6 device_ios_iphone6plus device_emulator ' +\n 'device_tablet display_landscape display_landscape_flipped ' +\n 'display_portrait display_portrait_flipped tm_sleep tm_countvsyncs ' +\n 'of_challenge_win of_challen ge_lose of_challenge_tie ' +\n 'leaderboard_type_number leaderboard_type_time_mins_secs ' +\n 'cmpfunc_never cmpfunc_less cmpfunc_equal cmpfunc_lessequal ' +\n 'cmpfunc_greater cmpfunc_notequal cmpfunc_greaterequal cmpfunc_always ' +\n 'cull_noculling cull_clockwise cull_counterclockwise lighttype_dir ' +\n 'lighttype_point iap_ev_storeload iap_ev_product iap_ev_purchase ' +\n 'iap_ev_consume iap_ev_restore iap_storeload_ok iap_storeload_failed ' +\n 'iap_status_uninitialised iap_status_unavailable iap_status_loading ' +\n 'iap_status_available iap_status_processing iap_status_restoring ' +\n 'iap_failed iap_unavailable iap_available iap_purchased iap_canceled ' +\n 'iap_refunded fb_login_default fb_login_fallback_to_webview ' +\n 'fb_login_no_fallback_to_webview fb_login_forcing_webview ' +\n 'fb_login_use_system_account fb_login_forcing_safari ' +\n 'phy_joint_anchor_1_x phy_joint_anchor_1_y phy_joint_anchor_2_x ' +\n 'phy_joint_anchor_2_y phy_joint_reaction_force_x ' +\n 'phy_joint_reaction_force_y phy_joint_reaction_torque ' +\n 'phy_joint_motor_speed phy_joint_angle phy_joint_motor_torque ' +\n 'phy_joint_max_motor_torque phy_joint_translation phy_joint_speed ' +\n 'phy_joint_motor_force phy_joint_max_motor_force phy_joint_length_1 ' +\n 'phy_joint_length_2 phy_joint_damping_ratio phy_joint_frequency ' +\n 'phy_joint_lower_angle_limit phy_joint_upper_angle_limit ' +\n 'phy_joint_angle_limits phy_joint_max_length phy_joint_max_torque ' +\n 'phy_joint_max_force phy_debug_render_aabb ' +\n 'phy_debug_render_collision_pairs phy_debug_render_coms ' +\n 'phy_debug_render_core_shapes phy_debug_render_joints ' +\n 'phy_debug_render_obb phy_debug_render_shapes ' +\n 'phy_particle_flag_water phy_particle_flag_zombie ' +\n 'phy_particle_flag_wall phy_particle_flag_spring ' +\n 'phy_particle_flag_elastic phy_particle_flag_viscous ' +\n 'phy_particle_flag_powder phy_particle_flag_tensile ' +\n 'phy_particle_flag_colourmixing phy_particle_flag_colormixing ' +\n 'phy_particle_group_flag_solid phy_particle_group_flag_rigid ' +\n 'phy_particle_data_flag_typeflags phy_particle_data_flag_position ' +\n 'phy_particle_data_flag_velocity phy_particle_data_flag_colour ' +\n 'phy_particle_data_flag_color phy_particle_data_flag_category ' +\n 'achievement_our_info achievement_friends_info ' +\n 'achievement_leaderboard_info achievement_achievement_info ' +\n 'achievement_filter_all_players achievement_filter_friends_only ' +\n 'achievement_filter_favorites_only ' +\n 'achievement_type_achievement_challenge ' +\n 'achievement_type_score_challenge achievement_pic_loaded ' +\n 'achievement_show_ui achievement_show_profile ' +\n 'achievement_show_leaderboard achievement_show_achievement ' +\n 'achievement_show_bank achievement_show_friend_picker ' +\n 'achievement_show_purchase_prompt network_socket_tcp ' +\n 'network_socket_udp network_socket_bluetooth network_type_connect ' +\n 'network_type_disconnect network_type_data ' +\n 'network_type_non_blocking_connect network_config_connect_timeout ' +\n 'network_config_use_non_blocking_socket ' +\n 'network_config_enable_reliable_udp ' +\n 'network_config_disable_reliable_udp buffer_fixed buffer_grow ' +\n 'buffer_wrap buffer_fast buffer_vbuffer buffer_network buffer_u8 ' +\n 'buffer_s8 buffer_u16 buffer_s16 buffer_u32 buffer_s32 buffer_u64 ' +\n 'buffer_f16 buffer_f32 buffer_f64 buffer_bool buffer_text ' +\n 'buffer_string buffer_surface_copy buffer_seek_start ' +\n 'buffer_seek_relative buffer_seek_end ' +\n 'buffer_generalerror buffer_outofspace buffer_outofbounds ' +\n 'buffer_invalidtype text_type button_type input_type ANSI_CHARSET ' +\n 'DEFAULT_CHARSET EASTEUROPE_CHARSET RUSSIAN_CHARSET SYMBOL_CHARSET ' +\n 'SHIFTJIS_CHARSET HANGEUL_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET ' +\n 'JOHAB_CHARSET HEBREW_CHARSET ARABIC_CHARSET GREEK_CHARSET ' +\n 'TURKISH_CHARSET VIETNAMESE_CHARSET THAI_CHARSET MAC_CHARSET ' +\n 'BALTIC_CHARSET OEM_CHARSET gp_face1 gp_face2 gp_face3 gp_face4 ' +\n 'gp_shoulderl gp_shoulderr gp_shoulderlb gp_shoulderrb gp_select ' +\n 'gp_start gp_stickl gp_stickr gp_padu gp_padd gp_padl gp_padr ' +\n 'gp_axislh gp_axislv gp_axisrh gp_axisrv ov_friends ov_community ' +\n 'ov_players ov_settings ov_gamegroup ov_achievements lb_sort_none ' +\n 'lb_sort_ascending lb_sort_descending lb_disp_none lb_disp_numeric ' +\n 'lb_disp_time_sec lb_disp_time_ms ugc_result_success ' +\n 'ugc_filetype_community ugc_filetype_microtrans ugc_visibility_public ' +\n 'ugc_visibility_friends_only ugc_visibility_private ' +\n 'ugc_query_RankedByVote ugc_query_RankedByPublicationDate ' +\n 'ugc_query_AcceptedForGameRankedByAcceptanceDate ' +\n 'ugc_query_RankedByTrend ' +\n 'ugc_query_FavoritedByFriendsRankedByPublicationDate ' +\n 'ugc_query_CreatedByFriendsRankedByPublicationDate ' +\n 'ugc_query_RankedByNumTimesReported ' +\n 'ugc_query_CreatedByFollowedUsersRankedByPublicationDate ' +\n 'ugc_query_NotYetRated ugc_query_RankedByTotalVotesAsc ' +\n 'ugc_query_RankedByVotesUp ugc_query_RankedByTextSearch ' +\n 'ugc_sortorder_CreationOrderDesc ugc_sortorder_CreationOrderAsc ' +\n 'ugc_sortorder_TitleAsc ugc_sortorder_LastUpdatedDesc ' +\n 'ugc_sortorder_SubscriptionDateDesc ugc_sortorder_VoteScoreDesc ' +\n 'ugc_sortorder_ForModeration ugc_list_Published ugc_list_VotedOn ' +\n 'ugc_list_VotedUp ugc_list_VotedDown ugc_list_WillVoteLater ' +\n 'ugc_list_Favorited ugc_list_Subscribed ugc_list_UsedOrPlayed ' +\n 'ugc_list_Followed ugc_match_Items ugc_match_Items_Mtx ' +\n 'ugc_match_Items_ReadyToUse ugc_match_Collections ugc_match_Artwork ' +\n 'ugc_match_Videos ugc_match_Screenshots ugc_match_AllGuides ' +\n 'ugc_match_WebGuides ugc_match_IntegratedGuides ' +\n 'ugc_match_UsableInGame ugc_match_ControllerBindings ' +\n 'vertex_usage_position vertex_usage_colour vertex_usage_color ' +\n 'vertex_usage_normal vertex_usage_texcoord vertex_usage_textcoord ' +\n 'vertex_usage_blendweight vertex_usage_blendindices ' +\n 'vertex_usage_psize vertex_usage_tangent vertex_usage_binormal ' +\n 'vertex_usage_fog vertex_usage_depth vertex_usage_sample ' +\n 'vertex_type_float1 vertex_type_float2 vertex_type_float3 ' +\n 'vertex_type_float4 vertex_type_colour vertex_type_color ' +\n 'vertex_type_ubyte4 layerelementtype_undefined ' +\n 'layerelementtype_background layerelementtype_instance ' +\n 'layerelementtype_oldtilemap layerelementtype_sprite ' +\n 'layerelementtype_tilemap layerelementtype_particlesystem ' +\n 'layerelementtype_tile tile_rotate tile_flip tile_mirror ' +\n 'tile_index_mask kbv_type_default kbv_type_ascii kbv_type_url ' +\n 'kbv_type_email kbv_type_numbers kbv_type_phone kbv_type_phone_name ' +\n 'kbv_returnkey_default kbv_returnkey_go kbv_returnkey_google ' +\n 'kbv_returnkey_join kbv_returnkey_next kbv_returnkey_route ' +\n 'kbv_returnkey_search kbv_returnkey_send kbv_returnkey_yahoo ' +\n 'kbv_returnkey_done kbv_returnkey_continue kbv_returnkey_emergency ' +\n 'kbv_autocapitalize_none kbv_autocapitalize_words ' +\n 'kbv_autocapitalize_sentences kbv_autocapitalize_characters',\n symbol: 'argument_relative argument argument0 argument1 argument2 ' +\n 'argument3 argument4 argument5 argument6 argument7 argument8 ' +\n 'argument9 argument10 argument11 argument12 argument13 argument14 ' +\n 'argument15 argument_count x|0 y|0 xprevious yprevious xstart ystart ' +\n 'hspeed vspeed direction speed friction gravity gravity_direction ' +\n 'path_index path_position path_positionprevious path_speed ' +\n 'path_scale path_orientation path_endaction object_index id solid ' +\n 'persistent mask_index instance_count instance_id room_speed fps ' +\n 'fps_real current_time current_year current_month current_day ' +\n 'current_weekday current_hour current_minute current_second alarm ' +\n 'timeline_index timeline_position timeline_speed timeline_running ' +\n 'timeline_loop room room_first room_last room_width room_height ' +\n 'room_caption room_persistent score lives health show_score ' +\n 'show_lives show_health caption_score caption_lives caption_health ' +\n 'event_type event_number event_object event_action ' +\n 'application_surface gamemaker_pro gamemaker_registered ' +\n 'gamemaker_version error_occurred error_last debug_mode ' +\n 'keyboard_key keyboard_lastkey keyboard_lastchar keyboard_string ' +\n 'mouse_x mouse_y mouse_button mouse_lastbutton cursor_sprite ' +\n 'visible sprite_index sprite_width sprite_height sprite_xoffset ' +\n 'sprite_yoffset image_number image_index image_speed depth ' +\n 'image_xscale image_yscale image_angle image_alpha image_blend ' +\n 'bbox_left bbox_right bbox_top bbox_bottom layer background_colour ' +\n 'background_showcolour background_color background_showcolor ' +\n 'view_enabled view_current view_visible view_xview view_yview ' +\n 'view_wview view_hview view_xport view_yport view_wport view_hport ' +\n 'view_angle view_hborder view_vborder view_hspeed view_vspeed ' +\n 'view_object view_surface_id view_camera game_id game_display_name ' +\n 'game_project_name game_save_id working_directory temp_directory ' +\n 'program_directory browser_width browser_height os_type os_device ' +\n 'os_browser os_version display_aa async_load delta_time ' +\n 'webgl_enabled event_data iap_data phy_rotation phy_position_x ' +\n 'phy_position_y phy_angular_velocity phy_linear_velocity_x ' +\n 'phy_linear_velocity_y phy_speed_x phy_speed_y phy_speed ' +\n 'phy_angular_damping phy_linear_damping phy_bullet ' +\n 'phy_fixed_rotation phy_active phy_mass phy_inertia phy_com_x ' +\n 'phy_com_y phy_dynamic phy_kinematic phy_sleeping ' +\n 'phy_collision_points phy_collision_x phy_collision_y ' +\n 'phy_col_normal_x phy_col_normal_y phy_position_xprevious ' +\n 'phy_position_yprevious'\n };\n\n return {\n name: 'GML',\n case_insensitive: false, // language is case-insensitive\n keywords: GML_KEYWORDS,\n\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = gml;\n","/*\nLanguage: Go\nAuthor: Stephan Kountso aka StepLg <steplg@gmail.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>\nDescription: Google go language (golang). For info about language\nWebsite: http://golang.org/\nCategory: common, system\n*/\n\nfunction go(hljs) {\n const GO_KEYWORDS = {\n keyword:\n 'break default func interface select case map struct chan else goto package switch ' +\n 'const fallthrough if range type continue for import return var go defer ' +\n 'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +\n 'uint16 uint32 uint64 int uint uintptr rune',\n literal:\n 'true false iota nil',\n built_in:\n 'append cap close complex copy imag len make new panic print println real recover delete'\n };\n return {\n name: 'Go',\n aliases: ['golang'],\n keywords: GO_KEYWORDS,\n illegal: '</',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'string',\n variants: [\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n {\n begin: '`',\n end: '`'\n }\n ]\n },\n {\n className: 'number',\n variants: [\n {\n begin: hljs.C_NUMBER_RE + '[i]',\n relevance: 1\n },\n hljs.C_NUMBER_MODE\n ]\n },\n {\n begin: /:=/ // relevance booster\n },\n {\n className: 'function',\n beginKeywords: 'func',\n end: '\\\\s*(\\\\{|$)',\n excludeEnd: true,\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: GO_KEYWORDS,\n illegal: /[\"']/\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = go;\n","/*\nLanguage: Golo\nAuthor: Philippe Charriere <ph.charriere@gmail.com>\nDescription: a lightweight dynamic language for the JVM\nWebsite: http://golo-lang.org/\n*/\n\nfunction golo(hljs) {\n return {\n name: 'Golo',\n keywords: {\n keyword:\n 'println readln print import module function local return let var ' +\n 'while for foreach times in case when match with break continue ' +\n 'augment augmentation each find filter reduce ' +\n 'if then else otherwise try catch finally raise throw orIfNull ' +\n 'DynamicObject|10 DynamicVariable struct Observable map set vector list array',\n literal:\n 'true false null'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '@[A-Za-z]+'\n }\n ]\n };\n}\n\nmodule.exports = golo;\n","/*\nLanguage: Gradle\nDescription: Gradle is an open-source build automation tool focused on flexibility and performance.\nWebsite: https://gradle.org\nAuthor: Damian Mee <mee.damian@gmail.com>\n*/\n\nfunction gradle(hljs) {\n return {\n name: 'Gradle',\n case_insensitive: true,\n keywords: {\n keyword:\n 'task project allprojects subprojects artifacts buildscript configurations ' +\n 'dependencies repositories sourceSets description delete from into include ' +\n 'exclude source classpath destinationDir includes options sourceCompatibility ' +\n 'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +\n 'def abstract break case catch continue default do else extends final finally ' +\n 'for if implements instanceof native new private protected public return static ' +\n 'switch synchronized throw throws transient try volatile while strictfp package ' +\n 'import false null super this true antlrtask checkstyle codenarc copy boolean ' +\n 'byte char class double float int interface long short void compile runTime ' +\n 'file fileTree abs any append asList asWritable call collect compareTo count ' +\n 'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +\n 'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +\n 'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +\n 'newReader newWriter next plus pop power previous print println push putAt read ' +\n 'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +\n 'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +\n 'withStream withWriter withWriterAppend write writeLine'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.REGEXP_MODE\n\n ]\n };\n}\n\nmodule.exports = gradle;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\n Language: Groovy\n Author: Guillaume Laforge <glaforge@gmail.com>\n Description: Groovy programming language implementation inspired from Vsevolod's Java mode\n Website: https://groovy-lang.org\n */\n\nfunction variants(variants, obj = {}) {\n obj.variants = variants;\n return obj;\n}\n\nfunction groovy(hljs) {\n const IDENT_RE = '[A-Za-z0-9_$]+';\n const COMMENT = variants([\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/,\n relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n )\n ]);\n const REGEXP = {\n className: 'regexp',\n begin: /~?\\/[^\\/\\n]+\\//,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n const NUMBER = variants([\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]);\n const STRING = variants([\n {\n begin: /\"\"\"/,\n end: /\"\"\"/\n },\n {\n begin: /'''/,\n end: /'''/\n },\n {\n begin: \"\\\\$/\",\n end: \"/\\\\$\",\n relevance: 10\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ],\n {\n className: \"string\"\n }\n );\n\n return {\n name: 'Groovy',\n keywords: {\n built_in: 'this super',\n literal: 'true false null',\n keyword:\n 'byte short char int long boolean float double void ' +\n // groovy specific keywords\n 'def as in assert trait ' +\n // common keywords with Java\n 'abstract static volatile transient public private protected synchronized final ' +\n 'class interface enum if else for while switch case break default continue ' +\n 'throw throws try catch finally implements extends new import package return instanceof'\n },\n contains: [\n hljs.SHEBANG({\n binary: \"groovy\",\n relevance: 10\n }),\n COMMENT,\n STRING,\n REGEXP,\n NUMBER,\n {\n className: 'class',\n beginKeywords: 'class interface trait enum',\n end: /\\{/,\n illegal: ':',\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n className: 'meta',\n begin: '@[A-Za-z]+',\n relevance: 0\n },\n {\n // highlight map keys and named parameters as attrs\n className: 'attr',\n begin: IDENT_RE + '[ \\t]*:',\n relevance: 0\n },\n {\n // catch middle element of the ternary operator\n // to avoid highlight it as a label, named parameter, or map key\n begin: /\\?/,\n end: /:/,\n relevance: 0,\n contains: [\n COMMENT,\n STRING,\n REGEXP,\n NUMBER,\n 'self'\n ]\n },\n {\n // highlight labeled statements\n className: 'symbol',\n begin: '^[ \\t]*' + lookahead(IDENT_RE + ':'),\n excludeBegin: true,\n end: IDENT_RE + ':',\n relevance: 0\n }\n ],\n illegal: /#|<\\//\n };\n}\n\nmodule.exports = groovy;\n","/*\nLanguage: HAML\nRequires: ruby.js\nAuthor: Dan Allen <dan.j.allen@gmail.com>\nWebsite: http://haml.info\nCategory: template\n*/\n\n// TODO support filter tags like :javascript, support inline HTML\nfunction haml(hljs) {\n return {\n name: 'HAML',\n case_insensitive: true,\n contains: [\n {\n className: 'meta',\n begin: '^!!!( (5|1\\\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\\\b.*))?$',\n relevance: 10\n },\n // FIXME these comments should be allowed to span indented lines\n hljs.COMMENT(\n '^\\\\s*(!=#|=#|-#|/).*$',\n false,\n {\n relevance: 0\n }\n ),\n {\n begin: '^\\\\s*(-|=|!=)(?!#)',\n starts: {\n end: '\\\\n',\n subLanguage: 'ruby'\n }\n },\n {\n className: 'tag',\n begin: '^\\\\s*%',\n contains: [\n {\n className: 'selector-tag',\n begin: '\\\\w+'\n },\n {\n className: 'selector-id',\n begin: '#[\\\\w-]+'\n },\n {\n className: 'selector-class',\n begin: '\\\\.[\\\\w-]+'\n },\n {\n begin: /\\{\\s*/,\n end: /\\s*\\}/,\n contains: [\n {\n begin: ':\\\\w+\\\\s*=>',\n end: ',\\\\s+',\n returnBegin: true,\n endsWithParent: true,\n contains: [\n {\n className: 'attr',\n begin: ':\\\\w+'\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n begin: '\\\\w+',\n relevance: 0\n }\n ]\n }\n ]\n },\n {\n begin: '\\\\(\\\\s*',\n end: '\\\\s*\\\\)',\n excludeEnd: true,\n contains: [\n {\n begin: '\\\\w+\\\\s*=',\n end: '\\\\s+',\n returnBegin: true,\n endsWithParent: true,\n contains: [\n {\n className: 'attr',\n begin: '\\\\w+',\n relevance: 0\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n begin: '\\\\w+',\n relevance: 0\n }\n ]\n }\n ]\n }\n ]\n },\n {\n begin: '^\\\\s*[=~]\\\\s*'\n },\n {\n begin: /#\\{/,\n starts: {\n end: /\\}/,\n subLanguage: 'ruby'\n }\n }\n ]\n };\n}\n\nmodule.exports = haml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward <robin.ward@gmail.com>\nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n const BUILT_INS = {\n 'builtin-name': [\n 'action',\n 'bindattr',\n 'collection',\n 'component',\n 'concat',\n 'debugger',\n 'each',\n 'each-in',\n 'get',\n 'hash',\n 'if',\n 'in',\n 'input',\n 'link-to',\n 'loc',\n 'log',\n 'lookup',\n 'mut',\n 'outlet',\n 'partial',\n 'query-params',\n 'render',\n 'template',\n 'textarea',\n 'unbound',\n 'unless',\n 'view',\n 'with',\n 'yield'\n ]\n };\n\n const LITERALS = {\n literal: [\n 'true',\n 'false',\n 'undefined',\n 'null'\n ]\n };\n\n // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n // like a/b, ./abc/cde, and abc.bcd\n\n const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n const ANY_ID = either(\n DOUBLE_QUOTED_ID_REGEX,\n SINGLE_QUOTED_ID_REGEX,\n BRACKET_QUOTED_ID_REGEX,\n PLAIN_ID_REGEX\n );\n\n const IDENTIFIER_REGEX = concat(\n optional(/\\.|\\.\\/|\\//), // relative or absolute path\n ANY_ID,\n anyNumberOfTimes(concat(\n PATH_DELIMITER_REGEX,\n ANY_ID\n ))\n );\n\n // identifier followed by a equal-sign (without the equal sign)\n const HASH_PARAM_REGEX = concat(\n '(',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX,\n ')(?==)'\n );\n\n const HELPER_NAME_OR_PATH_EXPRESSION = {\n begin: IDENTIFIER_REGEX,\n lexemes: /[\\w.\\/]+/\n };\n\n const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: LITERALS\n });\n\n const SUB_EXPRESSION = {\n begin: /\\(/,\n end: /\\)/\n // the \"contains\" is added below when all necessary sub-modes are defined\n };\n\n const HASH = {\n // fka \"attribute-assignment\", parameters of the form 'key=value'\n className: 'attr',\n begin: HASH_PARAM_REGEX,\n relevance: 0,\n starts: {\n begin: /=/,\n end: /=/,\n starts: {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ]\n }\n }\n };\n\n const BLOCK_PARAMS = {\n // parameters of the form '{{#with x as | y |}}...{{/with}}'\n begin: /as\\s+\\|/,\n keywords: {\n keyword: 'as'\n },\n end: /\\|/,\n contains: [\n {\n // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n begin: /\\w+/\n }\n ]\n };\n\n const HELPER_PARAMETERS = {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BLOCK_PARAMS,\n HASH,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ],\n returnEnd: true\n // the property \"end\" is defined through inheritance when the mode is used. If depends\n // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n // end-token of the surrounding mode)\n };\n\n const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\)/\n })\n });\n\n SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];\n\n const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name',\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\}\\}/\n })\n });\n\n const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name'\n });\n\n const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\}\\}/\n })\n });\n\n const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\{\\{/,\n skip: true\n };\n const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\\\(?=\\{\\{)/,\n skip: true\n };\n\n return {\n name: 'Handlebars',\n aliases: [\n 'hbs',\n 'html.hbs',\n 'html.handlebars',\n 'htmlbars'\n ],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n {\n // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n className: 'template-tag',\n begin: /\\{\\{\\{\\{(?!\\/)/,\n end: /\\}\\}\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n starts: {\n end: /\\{\\{\\{\\{\\//,\n returnEnd: true,\n subLanguage: 'xml'\n }\n },\n {\n // close raw block\n className: 'template-tag',\n begin: /\\{\\{\\{\\{\\//,\n end: /\\}\\}\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n // open block statement\n className: 'template-tag',\n begin: /\\{\\{#/,\n end: /\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else\\}\\})/,\n end: /\\}\\}/,\n keywords: 'else'\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else if)/,\n end: /\\}\\}/,\n keywords: 'else if'\n },\n {\n // closing block statement\n className: 'template-tag',\n begin: /\\{\\{\\//,\n end: /\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n // template variable or helper-call that is NOT html-escaped\n className: 'template-variable',\n begin: /\\{\\{\\{/,\n end: /\\}\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n },\n {\n // template variable or helper-call that is html-escaped\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n }\n ]\n };\n}\n\nmodule.exports = handlebars;\n","/*\nLanguage: Haskell\nAuthor: Jeremy Hull <sourdrums@gmail.com>\nContributors: Zena Treep <zena.treep@gmail.com>\nWebsite: https://www.haskell.org\nCategory: functional\n*/\n\nfunction haskell(hljs) {\n const COMMENT = {\n variants: [\n hljs.COMMENT('--', '$'),\n hljs.COMMENT(\n /\\{-/,\n /-\\}/,\n {\n contains: ['self']\n }\n )\n ]\n };\n\n const PRAGMA = {\n className: 'meta',\n begin: /\\{-#/,\n end: /#-\\}/\n };\n\n const PREPROCESSOR = {\n className: 'meta',\n begin: '^#',\n end: '$'\n };\n\n const CONSTRUCTOR = {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*', // TODO: other constructors (build-in, infix).\n relevance: 0\n };\n\n const LIST = {\n begin: '\\\\(',\n end: '\\\\)',\n illegal: '\"',\n contains: [\n PRAGMA,\n PREPROCESSOR,\n {\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?'\n },\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '[_a-z][\\\\w\\']*'\n }),\n COMMENT\n ]\n };\n\n const RECORD = {\n begin: /\\{/,\n end: /\\}/,\n contains: LIST.contains\n };\n\n return {\n name: 'Haskell',\n aliases: ['hs'],\n keywords:\n 'let in if then else case of where do module import hiding ' +\n 'qualified type data newtype deriving class instance as default ' +\n 'infix infixl infixr foreign export ccall stdcall cplusplus ' +\n 'jvm dotnet safe unsafe family forall mdo proc rec',\n contains: [\n // Top-level constructions.\n {\n beginKeywords: 'module',\n end: 'where',\n keywords: 'module where',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n begin: '\\\\bimport\\\\b',\n end: '$',\n keywords: 'import qualified as hiding',\n contains: [\n LIST,\n COMMENT\n ],\n illegal: '\\\\W\\\\.|;'\n },\n {\n className: 'class',\n begin: '^(\\\\s*)?(class|instance)\\\\b',\n end: 'where',\n keywords: 'class family instance where',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n className: 'class',\n begin: '\\\\b(data|(new)?type)\\\\b',\n end: '$',\n keywords: 'data family type newtype deriving',\n contains: [\n PRAGMA,\n CONSTRUCTOR,\n LIST,\n RECORD,\n COMMENT\n ]\n },\n {\n beginKeywords: 'default',\n end: '$',\n contains: [\n CONSTRUCTOR,\n LIST,\n COMMENT\n ]\n },\n {\n beginKeywords: 'infix infixl infixr',\n end: '$',\n contains: [\n hljs.C_NUMBER_MODE,\n COMMENT\n ]\n },\n {\n begin: '\\\\bforeign\\\\b',\n end: '$',\n keywords: 'foreign import export ccall stdcall cplusplus jvm ' +\n 'dotnet safe unsafe',\n contains: [\n CONSTRUCTOR,\n hljs.QUOTE_STRING_MODE,\n COMMENT\n ]\n },\n {\n className: 'meta',\n begin: '#!\\\\/usr\\\\/bin\\\\/env\\ runhaskell',\n end: '$'\n },\n // \"Whitespaces\".\n PRAGMA,\n PREPROCESSOR,\n\n // Literals and names.\n\n // TODO: characters.\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n CONSTRUCTOR,\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '^[_a-z][\\\\w\\']*'\n }),\n COMMENT,\n { // No markup, relevance booster\n begin: '->|<-'\n }\n ]\n };\n}\n\nmodule.exports = haskell;\n","/*\nLanguage: Haxe\nDescription: Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.\nAuthor: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)\nContributors: Kenton Hamaluik <kentonh@gmail.com>\nWebsite: https://haxe.org\n*/\n\nfunction haxe(hljs) {\n\n const HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';\n\n return {\n name: 'Haxe',\n aliases: ['hx'],\n keywords: {\n keyword: 'break case cast catch continue default do dynamic else enum extern ' +\n 'for function here if import in inline never new override package private get set ' +\n 'public return static super switch this throw trace try typedef untyped using var while ' +\n HAXE_BASIC_TYPES,\n built_in:\n 'trace this',\n literal:\n 'true false null _'\n },\n contains: [\n {\n className: 'string', // interpolate-able strings\n begin: '\\'',\n end: '\\'',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n {\n className: 'subst', // interpolation\n begin: '\\\\$\\\\{',\n end: '\\\\}'\n },\n {\n className: 'subst', // interpolation\n begin: '\\\\$',\n end: /\\W\\}/\n }\n ]\n },\n hljs.QUOTE_STRING_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta', // compiler meta\n begin: '@:',\n end: '$'\n },\n {\n className: 'meta', // compiler conditionals\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': 'if else elseif end error'\n }\n },\n {\n className: 'type', // function types\n begin: ':[ \\t]*',\n end: '[^A-Za-z0-9_ \\t\\\\->]',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n {\n className: 'type', // types\n begin: ':[ \\t]*',\n end: '\\\\W',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'type', // instantiation\n begin: 'new *',\n end: '\\\\W',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'class', // enums\n beginKeywords: 'enum',\n end: '\\\\{',\n contains: [hljs.TITLE_MODE]\n },\n {\n className: 'class', // abstracts\n beginKeywords: 'abstract',\n end: '[\\\\{$]',\n contains: [\n {\n className: 'type',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'type',\n begin: 'from +',\n end: '\\\\W',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: 'type',\n begin: 'to +',\n end: '\\\\W',\n excludeBegin: true,\n excludeEnd: true\n },\n hljs.TITLE_MODE\n ],\n keywords: {\n keyword: 'abstract from to'\n }\n },\n {\n className: 'class', // classes\n begin: '\\\\b(class|interface) +',\n end: '[\\\\{$]',\n excludeEnd: true,\n keywords: 'class interface',\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(extends|implements) +',\n keywords: 'extends implements',\n contains: [\n {\n className: 'type',\n begin: hljs.IDENT_RE,\n relevance: 0\n }\n ]\n },\n hljs.TITLE_MODE\n ]\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\(',\n excludeEnd: true,\n illegal: '\\\\S',\n contains: [hljs.TITLE_MODE]\n }\n ],\n illegal: /<\\//\n };\n}\n\nmodule.exports = haxe;\n","/*\nLanguage: HSP\nAuthor: prince <MC.prince.0203@gmail.com>\nWebsite: https://en.wikipedia.org/wiki/Hot_Soup_Processor\nCategory: scripting\n*/\n\nfunction hsp(hljs) {\n return {\n name: 'HSP',\n case_insensitive: true,\n keywords: {\n $pattern: /[\\w._]+/,\n keyword: 'goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n\n {\n // multi-line string\n className: 'string',\n begin: /\\{\"/,\n end: /\"\\}/,\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n\n {\n // pre-processor\n className: 'meta',\n begin: '#',\n end: '$',\n keywords: {\n 'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'\n },\n contains: [\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'meta-string'\n }),\n hljs.NUMBER_MODE,\n hljs.C_NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n\n {\n // label\n className: 'symbol',\n begin: '^\\\\*(\\\\w+|@)'\n },\n\n hljs.NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = hsp;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward <robin.ward@gmail.com>\nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n const BUILT_INS = {\n 'builtin-name': [\n 'action',\n 'bindattr',\n 'collection',\n 'component',\n 'concat',\n 'debugger',\n 'each',\n 'each-in',\n 'get',\n 'hash',\n 'if',\n 'in',\n 'input',\n 'link-to',\n 'loc',\n 'log',\n 'lookup',\n 'mut',\n 'outlet',\n 'partial',\n 'query-params',\n 'render',\n 'template',\n 'textarea',\n 'unbound',\n 'unless',\n 'view',\n 'with',\n 'yield'\n ]\n };\n\n const LITERALS = {\n literal: [\n 'true',\n 'false',\n 'undefined',\n 'null'\n ]\n };\n\n // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n // like a/b, ./abc/cde, and abc.bcd\n\n const DOUBLE_QUOTED_ID_REGEX = /\"\"|\"[^\"]+\"/;\n const SINGLE_QUOTED_ID_REGEX = /''|'[^']+'/;\n const BRACKET_QUOTED_ID_REGEX = /\\[\\]|\\[[^\\]]+\\]/;\n const PLAIN_ID_REGEX = /[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n const PATH_DELIMITER_REGEX = /(\\.|\\/)/;\n const ANY_ID = either(\n DOUBLE_QUOTED_ID_REGEX,\n SINGLE_QUOTED_ID_REGEX,\n BRACKET_QUOTED_ID_REGEX,\n PLAIN_ID_REGEX\n );\n\n const IDENTIFIER_REGEX = concat(\n optional(/\\.|\\.\\/|\\//), // relative or absolute path\n ANY_ID,\n anyNumberOfTimes(concat(\n PATH_DELIMITER_REGEX,\n ANY_ID\n ))\n );\n\n // identifier followed by a equal-sign (without the equal sign)\n const HASH_PARAM_REGEX = concat(\n '(',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX,\n ')(?==)'\n );\n\n const HELPER_NAME_OR_PATH_EXPRESSION = {\n begin: IDENTIFIER_REGEX,\n lexemes: /[\\w.\\/]+/\n };\n\n const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: LITERALS\n });\n\n const SUB_EXPRESSION = {\n begin: /\\(/,\n end: /\\)/\n // the \"contains\" is added below when all necessary sub-modes are defined\n };\n\n const HASH = {\n // fka \"attribute-assignment\", parameters of the form 'key=value'\n className: 'attr',\n begin: HASH_PARAM_REGEX,\n relevance: 0,\n starts: {\n begin: /=/,\n end: /=/,\n starts: {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ]\n }\n }\n };\n\n const BLOCK_PARAMS = {\n // parameters of the form '{{#with x as | y |}}...{{/with}}'\n begin: /as\\s+\\|/,\n keywords: {\n keyword: 'as'\n },\n end: /\\|/,\n contains: [\n {\n // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n begin: /\\w+/\n }\n ]\n };\n\n const HELPER_PARAMETERS = {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BLOCK_PARAMS,\n HASH,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ],\n returnEnd: true\n // the property \"end\" is defined through inheritance when the mode is used. If depends\n // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n // end-token of the surrounding mode)\n };\n\n const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\)/\n })\n });\n\n SUB_EXPRESSION.contains = [SUB_EXPRESSION_CONTENTS];\n\n const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name',\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\}\\}/\n })\n });\n\n const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name'\n });\n\n const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\}\\}/\n })\n });\n\n const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\{\\{/,\n skip: true\n };\n const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {\n begin: /\\\\\\\\(?=\\{\\{)/,\n skip: true\n };\n\n return {\n name: 'Handlebars',\n aliases: [\n 'hbs',\n 'html.hbs',\n 'html.handlebars',\n 'htmlbars'\n ],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n {\n // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n className: 'template-tag',\n begin: /\\{\\{\\{\\{(?!\\/)/,\n end: /\\}\\}\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n starts: {\n end: /\\{\\{\\{\\{\\//,\n returnEnd: true,\n subLanguage: 'xml'\n }\n },\n {\n // close raw block\n className: 'template-tag',\n begin: /\\{\\{\\{\\{\\//,\n end: /\\}\\}\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n // open block statement\n className: 'template-tag',\n begin: /\\{\\{#/,\n end: /\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else\\}\\})/,\n end: /\\}\\}/,\n keywords: 'else'\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else if)/,\n end: /\\}\\}/,\n keywords: 'else if'\n },\n {\n // closing block statement\n className: 'template-tag',\n begin: /\\{\\{\\//,\n end: /\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n // template variable or helper-call that is NOT html-escaped\n className: 'template-variable',\n begin: /\\{\\{\\{/,\n end: /\\}\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n },\n {\n // template variable or helper-call that is html-escaped\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n }\n ]\n };\n}\n\n/*\n Language: HTMLBars (legacy)\n Requires: xml.js\n Description: Matcher for Handlebars as well as EmberJS additions.\n Website: https://github.com/tildeio/htmlbars\n Category: template\n */\n\nfunction htmlbars(hljs) {\n const definition = handlebars(hljs);\n\n definition.name = \"HTMLbars\";\n\n // HACK: This lets handlebars do the auto-detection if it's been loaded (by\n // default the build script will load in alphabetical order) and if not (perhaps\n // an install is only using `htmlbars`, not `handlebars`) then this will still\n // allow HTMLBars to participate in the auto-detection\n\n // worse case someone will have HTMLbars and handlebars competing for the same\n // content and will need to change their setup to only require handlebars, but\n // I don't consider this a breaking change\n if (hljs.getLanguage(\"handlebars\")) {\n definition.disableAutodetect = true;\n }\n\n return definition;\n}\n\nmodule.exports = htmlbars;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: HTTP\nDescription: HTTP request and response headers with automatic body highlighting\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nCategory: common, protocols\nWebsite: https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview\n*/\n\nfunction http(hljs) {\n const VERSION = 'HTTP/(2|1\\\\.[01])';\n const HEADER_NAME = /[A-Za-z][A-Za-z0-9-]*/;\n const HEADER = {\n className: 'attribute',\n begin: concat('^', HEADER_NAME, '(?=\\\\:\\\\s)'),\n starts: {\n contains: [\n {\n className: \"punctuation\",\n begin: /: /,\n relevance: 0,\n starts: {\n end: '$',\n relevance: 0\n }\n }\n ]\n }\n };\n const HEADERS_AND_BODY = [\n HEADER,\n {\n begin: '\\\\n\\\\n',\n starts: { subLanguage: [], endsWithParent: true }\n }\n ];\n\n return {\n name: 'HTTP',\n aliases: ['https'],\n illegal: /\\S/,\n contains: [\n // response\n {\n begin: '^(?=' + VERSION + \" \\\\d{3})\",\n end: /$/,\n contains: [\n {\n className: \"meta\",\n begin: VERSION\n },\n {\n className: 'number', begin: '\\\\b\\\\d{3}\\\\b'\n }\n ],\n starts: {\n end: /\\b\\B/,\n illegal: /\\S/,\n contains: HEADERS_AND_BODY\n }\n },\n // request\n {\n begin: '(?=^[A-Z]+ (.*?) ' + VERSION + '$)',\n end: /$/,\n contains: [\n {\n className: 'string',\n begin: ' ',\n end: ' ',\n excludeBegin: true,\n excludeEnd: true\n },\n {\n className: \"meta\",\n begin: VERSION\n },\n {\n className: 'keyword',\n begin: '[A-Z]+'\n }\n ],\n starts: {\n end: /\\b\\B/,\n illegal: /\\S/,\n contains: HEADERS_AND_BODY\n }\n },\n // to allow headers to work even without a preamble\n hljs.inherit(HEADER, {\n relevance: 0\n })\n ]\n };\n}\n\nmodule.exports = http;\n","/*\nLanguage: Hy\nDescription: Hy is a wonderful dialect of Lisp that’s embedded in Python.\nAuthor: Sergey Sobko <s.sobko@profitware.ru>\nWebsite: http://docs.hylang.org/en/stable/\nCategory: lisp\n*/\n\nfunction hy(hljs) {\n var SYMBOLSTART = 'a-zA-Z_\\\\-!.?+*=<>&#\\'';\n var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';\n var keywords = {\n $pattern: SYMBOL_RE,\n 'builtin-name':\n // keywords\n '!= % %= & &= * ** **= *= *map ' +\n '+ += , --build-class-- --import-- -= . / // //= ' +\n '/= < << <<= <= = > >= >> >>= ' +\n '@ @= ^ ^= abs accumulate all and any ap-compose ' +\n 'ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ' +\n 'ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast ' +\n 'callable calling-module-name car case cdr chain chr coll? combinations compile ' +\n 'compress cond cons cons? continue count curry cut cycle dec ' +\n 'def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn ' +\n 'defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir ' +\n 'disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? ' +\n 'end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first ' +\n 'flatten float? fn fnc fnr for for* format fraction genexpr ' +\n 'gensym get getattr global globals group-by hasattr hash hex id ' +\n 'identity if if* if-not if-python2 import in inc input instance? ' +\n 'integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even ' +\n 'is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none ' +\n 'is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass ' +\n 'iter iterable? iterate iterator? keyword keyword? lambda last len let ' +\n 'lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all ' +\n 'map max merge-with method-decorator min multi-decorator multicombinations name neg? next ' +\n 'none? nonlocal not not-in not? nth numeric? oct odd? open ' +\n 'or ord partition permutations pos? post-route postwalk pow prewalk print ' +\n 'product profile/calls profile/cpu put-route quasiquote quote raise range read read-str ' +\n 'recursive-replace reduce remove repeat repeatedly repr require rest round route ' +\n 'route-with-methods rwm second seq set-comp setattr setv some sorted string ' +\n 'string? sum switch symbol? take take-nth take-while tee try unless ' +\n 'unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms ' +\n 'xi xor yield yield-from zero? zip zip-longest | |= ~'\n };\n\n var SIMPLE_NUMBER_RE = '[-+]?\\\\d+(\\\\.\\\\d+)?';\n\n var SYMBOL = {\n begin: SYMBOL_RE,\n relevance: 0\n };\n var NUMBER = {\n className: 'number', begin: SIMPLE_NUMBER_RE,\n relevance: 0\n };\n var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});\n var COMMENT = hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n );\n var LITERAL = {\n className: 'literal',\n begin: /\\b([Tt]rue|[Ff]alse|nil|None)\\b/\n };\n var COLLECTION = {\n begin: '[\\\\[\\\\{]', end: '[\\\\]\\\\}]'\n };\n var HINT = {\n className: 'comment',\n begin: '\\\\^' + SYMBOL_RE\n };\n var HINT_COL = hljs.COMMENT('\\\\^\\\\{', '\\\\}');\n var KEY = {\n className: 'symbol',\n begin: '[:]{1,2}' + SYMBOL_RE\n };\n var LIST = {\n begin: '\\\\(', end: '\\\\)'\n };\n var BODY = {\n endsWithParent: true,\n relevance: 0\n };\n var NAME = {\n className: 'name',\n relevance: 0,\n keywords: keywords,\n begin: SYMBOL_RE,\n starts: BODY\n };\n var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];\n\n LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];\n BODY.contains = DEFAULT_CONTAINS;\n COLLECTION.contains = DEFAULT_CONTAINS;\n\n return {\n name: 'Hy',\n aliases: ['hylang'],\n illegal: /\\S/,\n contains: [hljs.SHEBANG(), LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]\n };\n}\n\nmodule.exports = hy;\n","/*\nLanguage: Inform 7\nAuthor: Bruno Dias <bruno.r.dias@gmail.com>\nDescription: Language definition for Inform 7, a DSL for writing parser interactive fiction.\nWebsite: http://inform7.com\n*/\n\nfunction inform7(hljs) {\n const START_BRACKET = '\\\\[';\n const END_BRACKET = '\\\\]';\n return {\n name: 'Inform 7',\n aliases: ['i7'],\n case_insensitive: true,\n keywords: {\n // Some keywords more or less unique to I7, for relevance.\n keyword:\n // kind:\n 'thing room person man woman animal container ' +\n 'supporter backdrop door ' +\n // characteristic:\n 'scenery open closed locked inside gender ' +\n // verb:\n 'is are say understand ' +\n // misc keyword:\n 'kind of rule'\n },\n contains: [\n {\n className: 'string',\n begin: '\"',\n end: '\"',\n relevance: 0,\n contains: [\n {\n className: 'subst',\n begin: START_BRACKET,\n end: END_BRACKET\n }\n ]\n },\n {\n className: 'section',\n begin: /^(Volume|Book|Part|Chapter|Section|Table)\\b/,\n end: '$'\n },\n {\n // Rule definition\n // This is here for relevance.\n begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\\b/,\n end: ':',\n contains: [\n {\n // Rule name\n begin: '\\\\(This',\n end: '\\\\)'\n }\n ]\n },\n {\n className: 'comment',\n begin: START_BRACKET,\n end: END_BRACKET,\n contains: ['self']\n }\n ]\n };\n}\n\nmodule.exports = inform7;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: TOML, also INI\nDescription: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.\nContributors: Guillaume Gomez <guillaume1.gomez@gmail.com>\nCategory: common, config\nWebsite: https://github.com/toml-lang/toml\n*/\n\nfunction ini(hljs) {\n const NUMBERS = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n begin: /([+-]+)?[\\d]+_[\\d_]+/\n },\n {\n begin: hljs.NUMBER_RE\n }\n ]\n };\n const COMMENTS = hljs.COMMENT();\n COMMENTS.variants = [\n {\n begin: /;/,\n end: /$/\n },\n {\n begin: /#/,\n end: /$/\n }\n ];\n const VARIABLES = {\n className: 'variable',\n variants: [\n {\n begin: /\\$[\\w\\d\"][\\w\\d_]*/\n },\n {\n begin: /\\$\\{(.*?)\\}/\n }\n ]\n };\n const LITERALS = {\n className: 'literal',\n begin: /\\bon|off|true|false|yes|no\\b/\n };\n const STRINGS = {\n className: \"string\",\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n {\n begin: \"'''\",\n end: \"'''\",\n relevance: 10\n },\n {\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: \"'\",\n end: \"'\"\n }\n ]\n };\n const ARRAY = {\n begin: /\\[/,\n end: /\\]/,\n contains: [\n COMMENTS,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n 'self'\n ],\n relevance: 0\n };\n\n const BARE_KEY = /[A-Za-z0-9_-]+/;\n const QUOTED_KEY_DOUBLE_QUOTE = /\"(\\\\\"|[^\"])*\"/;\n const QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;\n const ANY_KEY = either(\n BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE\n );\n const DOTTED_KEY = concat(\n ANY_KEY, '(\\\\s*\\\\.\\\\s*', ANY_KEY, ')*',\n lookahead(/\\s*=\\s*[^#\\s]/)\n );\n\n return {\n name: 'TOML, also INI',\n aliases: ['toml'],\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n COMMENTS,\n {\n className: 'section',\n begin: /\\[+/,\n end: /\\]+/\n },\n {\n begin: DOTTED_KEY,\n className: 'attr',\n starts: {\n end: /$/,\n contains: [\n COMMENTS,\n ARRAY,\n LITERALS,\n VARIABLES,\n STRINGS,\n NUMBERS\n ]\n }\n }\n ]\n };\n}\n\nmodule.exports = ini;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: IRPF90\nAuthor: Anthony Scemama <scemama@irsamc.ups-tlse.fr>\nDescription: IRPF90 is an open-source Fortran code generator\nWebsite: http://irpf90.ups-tlse.fr\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction irpf90(hljs) {\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)'\n };\n\n // regex in both fortran and irpf90 should match\n const OPTIONAL_NUMBER_SUFFIX = /(_[a-z_\\d]+)?/;\n const OPTIONAL_NUMBER_EXP = /([de][+-]?\\d+)?/;\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: concat(/\\b\\d+/, /\\.(\\d*)/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n },\n {\n begin: concat(/\\b\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n },\n {\n begin: concat(/\\.\\d+/, OPTIONAL_NUMBER_EXP, OPTIONAL_NUMBER_SUFFIX)\n }\n ],\n relevance: 0\n };\n\n const F_KEYWORDS = {\n literal: '.False. .True.',\n keyword: 'kind do while private call intrinsic where elsewhere ' +\n 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +\n 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +\n 'goto save else use module select case ' +\n 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +\n 'continue format pause cycle exit ' +\n 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +\n 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +\n 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +\n 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +\n 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +\n 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +\n 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +\n 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +\n 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +\n 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +\n 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +\n 'integer real character complex logical dimension allocatable|10 parameter ' +\n 'external implicit|10 none double precision assign intent optional pointer ' +\n 'target in out common equivalence data ' +\n // IRPF90 special keywords\n 'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +\n 'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',\n built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +\n 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +\n 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +\n 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +\n 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +\n 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +\n 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +\n 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +\n 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +\n 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +\n 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +\n 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +\n 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +\n 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of ' +\n 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +\n 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +\n 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +\n 'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +\n // IRPF90 special built_ins\n 'IRP_ALIGN irp_here'\n };\n return {\n name: 'IRPF90',\n case_insensitive: true,\n keywords: F_KEYWORDS,\n illegal: /\\/\\*/,\n contains: [\n hljs.inherit(hljs.APOS_STRING_MODE, {\n className: 'string',\n relevance: 0\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'string',\n relevance: 0\n }),\n {\n className: 'function',\n beginKeywords: 'subroutine function program',\n illegal: '[${=\\\\n]',\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS\n ]\n },\n hljs.COMMENT('!', '$', {\n relevance: 0\n }),\n hljs.COMMENT('begin_doc', 'end_doc', {\n relevance: 10\n }),\n NUMBER\n ]\n };\n}\n\nmodule.exports = irpf90;\n","/*\nLanguage: ISBL\nAuthor: Dmitriy Tarasov <dimatar@gmail.com>\nDescription: built-in language DIRECTUM\nCategory: enterprise\n*/\n\nfunction isbl(hljs) {\n // Определение идентификаторов\n const UNDERSCORE_IDENT_RE = \"[A-Za-zÐ-Яа-ÑÑ‘Ð_!][A-Za-zÐ-Яа-ÑÑ‘Ð_0-9]*\";\n\n // Определение имен функций\n const FUNCTION_NAME_IDENT_RE = \"[A-Za-zÐ-Яа-ÑÑ‘Ð_][A-Za-zÐ-Яа-ÑÑ‘Ð_0-9]*\";\n\n // keyword : ключевые Ñлова\n const KEYWORD =\n \"and и else иначе endexcept endfinally endforeach конецвÑе endif конецеÑли endwhile конецпока \" +\n \"except exitfor finally foreach вÑе if еÑли in в not не or или try while пока \";\n\n // SYSRES Constants\n const sysres_constants =\n \"SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT \" +\n \"SYSRES_CONST_ACCES_RIGHT_TYPE_FULL \" +\n \"SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW \" +\n \"SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_NO_ACCESS_VIEW \" +\n \"SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_VIEW \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE \" +\n \"SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE \" +\n \"SYSRES_CONST_ACCESS_TYPE_CHANGE \" +\n \"SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE \" +\n \"SYSRES_CONST_ACCESS_TYPE_EXISTS \" +\n \"SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE \" +\n \"SYSRES_CONST_ACCESS_TYPE_FULL \" +\n \"SYSRES_CONST_ACCESS_TYPE_FULL_CODE \" +\n \"SYSRES_CONST_ACCESS_TYPE_VIEW \" +\n \"SYSRES_CONST_ACCESS_TYPE_VIEW_CODE \" +\n \"SYSRES_CONST_ACTION_TYPE_ABORT \" +\n \"SYSRES_CONST_ACTION_TYPE_ACCEPT \" +\n \"SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS \" +\n \"SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT \" +\n \"SYSRES_CONST_ACTION_TYPE_CHANGE_CARD \" +\n \"SYSRES_CONST_ACTION_TYPE_CHANGE_KIND \" +\n \"SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE \" +\n \"SYSRES_CONST_ACTION_TYPE_CONTINUE \" +\n \"SYSRES_CONST_ACTION_TYPE_COPY \" +\n \"SYSRES_CONST_ACTION_TYPE_CREATE \" +\n \"SYSRES_CONST_ACTION_TYPE_CREATE_VERSION \" +\n \"SYSRES_CONST_ACTION_TYPE_DELETE \" +\n \"SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT \" +\n \"SYSRES_CONST_ACTION_TYPE_DELETE_VERSION \" +\n \"SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS \" +\n \"SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS \" +\n \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE \" +\n \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD \" +\n \"SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD \" +\n \"SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE \" +\n \"SYSRES_CONST_ACTION_TYPE_LOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER \" +\n \"SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY \" +\n \"SYSRES_CONST_ACTION_TYPE_MARK_AS_READED \" +\n \"SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED \" +\n \"SYSRES_CONST_ACTION_TYPE_MODIFY \" +\n \"SYSRES_CONST_ACTION_TYPE_MODIFY_CARD \" +\n \"SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE \" +\n \"SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION \" +\n \"SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE \" +\n \"SYSRES_CONST_ACTION_TYPE_PERFORM \" +\n \"SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY \" +\n \"SYSRES_CONST_ACTION_TYPE_RESTART \" +\n \"SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE \" +\n \"SYSRES_CONST_ACTION_TYPE_REVISION \" +\n \"SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL \" +\n \"SYSRES_CONST_ACTION_TYPE_SIGN \" +\n \"SYSRES_CONST_ACTION_TYPE_START \" +\n \"SYSRES_CONST_ACTION_TYPE_UNLOCK \" +\n \"SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER \" +\n \"SYSRES_CONST_ACTION_TYPE_VERSION_STATE \" +\n \"SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY \" +\n \"SYSRES_CONST_ACTION_TYPE_VIEW \" +\n \"SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY \" +\n \"SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY \" +\n \"SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY \" +\n \"SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE \" +\n \"SYSRES_CONST_ADD_REFERENCE_MODE_NAME \" +\n \"SYSRES_CONST_ADDITION_REQUISITE_CODE \" +\n \"SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE \" +\n \"SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME \" +\n \"SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME \" +\n \"SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME \" +\n \"SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE \" +\n \"SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION \" +\n \"SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS \" +\n \"SYSRES_CONST_ALL_USERS_GROUP \" +\n \"SYSRES_CONST_ALL_USERS_GROUP_NAME \" +\n \"SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME \" +\n \"SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE \" +\n \"SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME \" +\n \"SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_APPROVING_SIGNATURE_NAME \" +\n \"SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE \" +\n \"SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE \" +\n \"SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN \" +\n \"SYSRES_CONST_ATTACH_TYPE_DOC \" +\n \"SYSRES_CONST_ATTACH_TYPE_EDOC \" +\n \"SYSRES_CONST_ATTACH_TYPE_FOLDER \" +\n \"SYSRES_CONST_ATTACH_TYPE_JOB \" +\n \"SYSRES_CONST_ATTACH_TYPE_REFERENCE \" +\n \"SYSRES_CONST_ATTACH_TYPE_TASK \" +\n \"SYSRES_CONST_AUTH_ENCODED_PASSWORD \" +\n \"SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE \" +\n \"SYSRES_CONST_AUTH_NOVELL \" +\n \"SYSRES_CONST_AUTH_PASSWORD \" +\n \"SYSRES_CONST_AUTH_PASSWORD_CODE \" +\n \"SYSRES_CONST_AUTH_WINDOWS \" +\n \"SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME \" +\n \"SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE \" +\n \"SYSRES_CONST_AUTO_ENUM_METHOD_FLAG \" +\n \"SYSRES_CONST_AUTO_NUMERATION_CODE \" +\n \"SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG \" +\n \"SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_ALL \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_SIGN \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_WORK \" +\n \"SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE \" +\n \"SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE \" +\n \"SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_BTN_PART \" +\n \"SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE \" +\n \"SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE \" +\n \"SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE \" +\n \"SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT \" +\n \"SYSRES_CONST_CARD_PART \" +\n \"SYSRES_CONST_CARD_REFERENCE_MODE_NAME \" +\n \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE \" +\n \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE \" +\n \"SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE \" +\n \"SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE \" +\n \"SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE \" +\n \"SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE \" +\n \"SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE \" +\n \"SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE \" +\n \"SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE \" +\n \"SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT \" +\n \"SYSRES_CONST_CODE_COMPONENT_TYPE_URL \" +\n \"SYSRES_CONST_CODE_REQUISITE_ACCESS \" +\n \"SYSRES_CONST_CODE_REQUISITE_CODE \" +\n \"SYSRES_CONST_CODE_REQUISITE_COMPONENT \" +\n \"SYSRES_CONST_CODE_REQUISITE_DESCRIPTION \" +\n \"SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT \" +\n \"SYSRES_CONST_CODE_REQUISITE_RECORD \" +\n \"SYSRES_CONST_COMMENT_REQ_CODE \" +\n \"SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE \" +\n \"SYSRES_CONST_COMP_CODE_GRD \" +\n \"SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_DOCS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_EDOCS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE \" +\n \"SYSRES_CONST_COMPONENT_TYPE_OTHER \" +\n \"SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES \" +\n \"SYSRES_CONST_COMPONENT_TYPE_REFERENCES \" +\n \"SYSRES_CONST_COMPONENT_TYPE_REPORTS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_SCRIPTS \" +\n \"SYSRES_CONST_COMPONENT_TYPE_URL \" +\n \"SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE \" +\n \"SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_CONST_FIRM_STATUS_COMMON \" +\n \"SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL \" +\n \"SYSRES_CONST_CONST_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_CONST_POSITIVE_VALUE \" +\n \"SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE \" +\n \"SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE \" +\n \"SYSRES_CONST_CONTENTS_REQUISITE_CODE \" +\n \"SYSRES_CONST_DATA_TYPE_BOOLEAN \" +\n \"SYSRES_CONST_DATA_TYPE_DATE \" +\n \"SYSRES_CONST_DATA_TYPE_FLOAT \" +\n \"SYSRES_CONST_DATA_TYPE_INTEGER \" +\n \"SYSRES_CONST_DATA_TYPE_PICK \" +\n \"SYSRES_CONST_DATA_TYPE_REFERENCE \" +\n \"SYSRES_CONST_DATA_TYPE_STRING \" +\n \"SYSRES_CONST_DATA_TYPE_TEXT \" +\n \"SYSRES_CONST_DATA_TYPE_VARIANT \" +\n \"SYSRES_CONST_DATE_CLOSE_REQ_CODE \" +\n \"SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR \" +\n \"SYSRES_CONST_DATE_OPEN_REQ_CODE \" +\n \"SYSRES_CONST_DATE_REQUISITE \" +\n \"SYSRES_CONST_DATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_DATE_REQUISITE_NAME \" +\n \"SYSRES_CONST_DATE_REQUISITE_TYPE \" +\n \"SYSRES_CONST_DATE_TYPE_CHAR \" +\n \"SYSRES_CONST_DATETIME_FORMAT_VALUE \" +\n \"SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE \" +\n \"SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_DESCRIPTION_REQUISITE_CODE \" +\n \"SYSRES_CONST_DET1_PART \" +\n \"SYSRES_CONST_DET2_PART \" +\n \"SYSRES_CONST_DET3_PART \" +\n \"SYSRES_CONST_DET4_PART \" +\n \"SYSRES_CONST_DET5_PART \" +\n \"SYSRES_CONST_DET6_PART \" +\n \"SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE \" +\n \"SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE \" +\n \"SYSRES_CONST_DETAIL_REQ_CODE \" +\n \"SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE \" +\n \"SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME \" +\n \"SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE \" +\n \"SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME \" +\n \"SYSRES_CONST_DOCUMENT_STORAGES_CODE \" +\n \"SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME \" +\n \"SYSRES_CONST_DOUBLE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE \" +\n \"SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE \" +\n \"SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE \" +\n \"SYSRES_CONST_EDITORS_REFERENCE_CODE \" +\n \"SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE \" +\n \"SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE \" +\n \"SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE \" +\n \"SYSRES_CONST_EDOC_DATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_KIND_REFERENCE_CODE \" +\n \"SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE \" +\n \"SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE \" +\n \"SYSRES_CONST_EDOC_NONE_ENCODE_CODE \" +\n \"SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE \" +\n \"SYSRES_CONST_EDOC_READONLY_ACCESS_CODE \" +\n \"SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE \" +\n \"SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE \" +\n \"SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE \" +\n \"SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE \" +\n \"SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE \" +\n \"SYSRES_CONST_EDOC_WRITE_ACCES_CODE \" +\n \"SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE \" +\n \"SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE \" +\n \"SYSRES_CONST_END_DATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE \" +\n \"SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE \" +\n \"SYSRES_CONST_EXIST_CONST \" +\n \"SYSRES_CONST_EXIST_VALUE \" +\n \"SYSRES_CONST_EXPORT_LOCK_TYPE_ASK \" +\n \"SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK \" +\n \"SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK \" +\n \"SYSRES_CONST_EXPORT_VERSION_TYPE_ASK \" +\n \"SYSRES_CONST_EXPORT_VERSION_TYPE_LAST \" +\n \"SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE \" +\n \"SYSRES_CONST_EXTENSION_REQUISITE_CODE \" +\n \"SYSRES_CONST_FILTER_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_FILTER_REQUISITE_CODE \" +\n \"SYSRES_CONST_FILTER_TYPE_COMMON_CODE \" +\n \"SYSRES_CONST_FILTER_TYPE_COMMON_NAME \" +\n \"SYSRES_CONST_FILTER_TYPE_USER_CODE \" +\n \"SYSRES_CONST_FILTER_TYPE_USER_NAME \" +\n \"SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME \" +\n \"SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR \" +\n \"SYSRES_CONST_FLOAT_REQUISITE_TYPE \" +\n \"SYSRES_CONST_FOLDER_AUTHOR_VALUE \" +\n \"SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS \" +\n \"SYSRES_CONST_FOLDER_KIND_COMPONENTS \" +\n \"SYSRES_CONST_FOLDER_KIND_EDOCS \" +\n \"SYSRES_CONST_FOLDER_KIND_JOBS \" +\n \"SYSRES_CONST_FOLDER_KIND_TASKS \" +\n \"SYSRES_CONST_FOLDER_TYPE_COMMON \" +\n \"SYSRES_CONST_FOLDER_TYPE_COMPONENT \" +\n \"SYSRES_CONST_FOLDER_TYPE_FAVORITES \" +\n \"SYSRES_CONST_FOLDER_TYPE_INBOX \" +\n \"SYSRES_CONST_FOLDER_TYPE_OUTBOX \" +\n \"SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH \" +\n \"SYSRES_CONST_FOLDER_TYPE_SEARCH \" +\n \"SYSRES_CONST_FOLDER_TYPE_SHORTCUTS \" +\n \"SYSRES_CONST_FOLDER_TYPE_USER \" +\n \"SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG \" +\n \"SYSRES_CONST_FULL_SUBSTITUTE_TYPE \" +\n \"SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE \" +\n \"SYSRES_CONST_FUNCTION_CANCEL_RESULT \" +\n \"SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM \" +\n \"SYSRES_CONST_FUNCTION_CATEGORY_USER \" +\n \"SYSRES_CONST_FUNCTION_FAILURE_RESULT \" +\n \"SYSRES_CONST_FUNCTION_SAVE_RESULT \" +\n \"SYSRES_CONST_GENERATED_REQUISITE \" +\n \"SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE \" +\n \"SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE \" +\n \"SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME \" +\n \"SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE \" +\n \"SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME \" +\n \"SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE \" +\n \"SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUP_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE \" +\n \"SYSRES_CONST_GROUP_USER_REQUISITE_CODE \" +\n \"SYSRES_CONST_GROUPS_REFERENCE_CODE \" +\n \"SYSRES_CONST_GROUPS_REQUISITE_CODE \" +\n \"SYSRES_CONST_HIDDEN_MODE_NAME \" +\n \"SYSRES_CONST_HIGH_LVL_REQUISITE_CODE \" +\n \"SYSRES_CONST_HISTORY_ACTION_CREATE_CODE \" +\n \"SYSRES_CONST_HISTORY_ACTION_DELETE_CODE \" +\n \"SYSRES_CONST_HISTORY_ACTION_EDIT_CODE \" +\n \"SYSRES_CONST_HOUR_CHAR \" +\n \"SYSRES_CONST_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_IDSPS_REQUISITE_CODE \" +\n \"SYSRES_CONST_IMAGE_MODE_COLOR \" +\n \"SYSRES_CONST_IMAGE_MODE_GREYSCALE \" +\n \"SYSRES_CONST_IMAGE_MODE_MONOCHROME \" +\n \"SYSRES_CONST_IMPORTANCE_HIGH \" +\n \"SYSRES_CONST_IMPORTANCE_LOW \" +\n \"SYSRES_CONST_IMPORTANCE_NORMAL \" +\n \"SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE \" +\n \"SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE \" +\n \"SYSRES_CONST_INT_REQUISITE \" +\n \"SYSRES_CONST_INT_REQUISITE_TYPE \" +\n \"SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR \" +\n \"SYSRES_CONST_INTEGER_TYPE_CHAR \" +\n \"SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE \" +\n \"SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE \" +\n \"SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE \" +\n \"SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n \"SYSRES_CONST_JOB_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_JOB_KIND_CONTROL_JOB \" +\n \"SYSRES_CONST_JOB_KIND_JOB \" +\n \"SYSRES_CONST_JOB_KIND_NOTICE \" +\n \"SYSRES_CONST_JOB_STATE_ABORTED \" +\n \"SYSRES_CONST_JOB_STATE_COMPLETE \" +\n \"SYSRES_CONST_JOB_STATE_WORKING \" +\n \"SYSRES_CONST_KIND_REQUISITE_CODE \" +\n \"SYSRES_CONST_KIND_REQUISITE_NAME \" +\n \"SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE \" +\n \"SYSRES_CONST_KOD_INPUT_TYPE \" +\n \"SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE \" +\n \"SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_EDOC \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_FOLDER \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_JOB \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE \" +\n \"SYSRES_CONST_LINK_OBJECT_KIND_TASK \" +\n \"SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_LIST_REFERENCE_MODE_NAME \" +\n \"SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE \" +\n \"SYSRES_CONST_MAIN_VIEW_CODE \" +\n \"SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG \" +\n \"SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_MAXIMIZED_MODE_NAME \" +\n \"SYSRES_CONST_ME_VALUE \" +\n \"SYSRES_CONST_MESSAGE_ATTENTION_CAPTION \" +\n \"SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION \" +\n \"SYSRES_CONST_MESSAGE_ERROR_CAPTION \" +\n \"SYSRES_CONST_MESSAGE_INFORMATION_CAPTION \" +\n \"SYSRES_CONST_MINIMIZED_MODE_NAME \" +\n \"SYSRES_CONST_MINUTE_CHAR \" +\n \"SYSRES_CONST_MODULE_REQUISITE_CODE \" +\n \"SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_MONTH_FORMAT_VALUE \" +\n \"SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE \" +\n \"SYSRES_CONST_NAMEAN_INPUT_TYPE \" +\n \"SYSRES_CONST_NEGATIVE_PICK_VALUE \" +\n \"SYSRES_CONST_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_NO \" +\n \"SYSRES_CONST_NO_PICK_VALUE \" +\n \"SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE \" +\n \"SYSRES_CONST_NO_VALUE \" +\n \"SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE \" +\n \"SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE \" +\n \"SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE \" +\n \"SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE \" +\n \"SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n \"SYSRES_CONST_NORMAL_MODE_NAME \" +\n \"SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE \" +\n \"SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME \" +\n \"SYSRES_CONST_NOTE_REQUISITE_CODE \" +\n \"SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_NUM_REQUISITE \" +\n \"SYSRES_CONST_NUM_STR_REQUISITE_CODE \" +\n \"SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG \" +\n \"SYSRES_CONST_NUMERATION_AUTO_STRONG \" +\n \"SYSRES_CONST_NUMERATION_FROM_DICTONARY \" +\n \"SYSRES_CONST_NUMERATION_MANUAL \" +\n \"SYSRES_CONST_NUMERIC_TYPE_CHAR \" +\n \"SYSRES_CONST_NUMREQ_REQUISITE_CODE \" +\n \"SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE \" +\n \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE \" +\n \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE \" +\n \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE \" +\n \"SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE \" +\n \"SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX \" +\n \"SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_ORIGINALREF_REQUISITE_CODE \" +\n \"SYSRES_CONST_OURFIRM_REF_CODE \" +\n \"SYSRES_CONST_OURFIRM_REQUISITE_CODE \" +\n \"SYSRES_CONST_OURFIRM_VAR \" +\n \"SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE \" +\n \"SYSRES_CONST_PICK_NEGATIVE_RESULT \" +\n \"SYSRES_CONST_PICK_POSITIVE_RESULT \" +\n \"SYSRES_CONST_PICK_REQUISITE \" +\n \"SYSRES_CONST_PICK_REQUISITE_TYPE \" +\n \"SYSRES_CONST_PICK_TYPE_CHAR \" +\n \"SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE \" +\n \"SYSRES_CONST_PLATFORM_VERSION_COMMENT \" +\n \"SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE \" +\n \"SYSRES_CONST_POSITIVE_PICK_VALUE \" +\n \"SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE \" +\n \"SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE \" +\n \"SYSRES_CONST_PRIORITY_REQUISITE_CODE \" +\n \"SYSRES_CONST_QUALIFIED_TASK_TYPE \" +\n \"SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE \" +\n \"SYSRES_CONST_RECSTAT_REQUISITE_CODE \" +\n \"SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_REF_REQUISITE \" +\n \"SYSRES_CONST_REF_REQUISITE_TYPE \" +\n \"SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE \" +\n \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE \" +\n \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE \" +\n \"SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE \" +\n \"SYSRES_CONST_REFERENCE_TYPE_CHAR \" +\n \"SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME \" +\n \"SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE \" +\n \"SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE \" +\n \"SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING \" +\n \"SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN \" +\n \"SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY \" +\n \"SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE \" +\n \"SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL \" +\n \"SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE \" +\n \"SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE \" +\n \"SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE \" +\n \"SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE \" +\n \"SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE \" +\n \"SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE \" +\n \"SYSRES_CONST_REQ_MODE_AVAILABLE_CODE \" +\n \"SYSRES_CONST_REQ_MODE_EDIT_CODE \" +\n \"SYSRES_CONST_REQ_MODE_HIDDEN_CODE \" +\n \"SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE \" +\n \"SYSRES_CONST_REQ_MODE_VIEW_CODE \" +\n \"SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE \" +\n \"SYSRES_CONST_REQ_SECTION_VALUE \" +\n \"SYSRES_CONST_REQ_TYPE_VALUE \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_LEFT \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_RIGHT \" +\n \"SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT \" +\n \"SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE \" +\n \"SYSRES_CONST_REQUISITE_SECTION_ACTIONS \" +\n \"SYSRES_CONST_REQUISITE_SECTION_BUTTON \" +\n \"SYSRES_CONST_REQUISITE_SECTION_BUTTONS \" +\n \"SYSRES_CONST_REQUISITE_SECTION_CARD \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE10 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE11 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE12 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE13 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE14 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE15 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE16 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE17 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE18 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE19 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE2 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE20 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE21 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE22 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE23 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE24 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE3 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE4 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE5 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE6 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE7 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE8 \" +\n \"SYSRES_CONST_REQUISITE_SECTION_TABLE9 \" +\n \"SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE \" +\n \"SYSRES_CONST_RIGHT_ALIGNMENT_CODE \" +\n \"SYSRES_CONST_ROLES_REFERENCE_CODE \" +\n \"SYSRES_CONST_ROUTE_STEP_AFTER_RUS \" +\n \"SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS \" +\n \"SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS \" +\n \"SYSRES_CONST_ROUTE_TYPE_COMPLEX \" +\n \"SYSRES_CONST_ROUTE_TYPE_PARALLEL \" +\n \"SYSRES_CONST_ROUTE_TYPE_SERIAL \" +\n \"SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE \" +\n \"SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE \" +\n \"SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE \" +\n \"SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE \" +\n \"SYSRES_CONST_SEARCHES_COMPONENT_CONTENT \" +\n \"SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME \" +\n \"SYSRES_CONST_SEARCHES_EDOC_CONTENT \" +\n \"SYSRES_CONST_SEARCHES_FOLDER_CONTENT \" +\n \"SYSRES_CONST_SEARCHES_JOB_CONTENT \" +\n \"SYSRES_CONST_SEARCHES_REFERENCE_CODE \" +\n \"SYSRES_CONST_SEARCHES_TASK_CONTENT \" +\n \"SYSRES_CONST_SECOND_CHAR \" +\n \"SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_CODE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE \" +\n \"SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE \" +\n \"SYSRES_CONST_SELECT_REFERENCE_MODE_NAME \" +\n \"SYSRES_CONST_SELECT_TYPE_SELECTABLE \" +\n \"SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD \" +\n \"SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD \" +\n \"SYSRES_CONST_SELECT_TYPE_UNSLECTABLE \" +\n \"SYSRES_CONST_SERVER_TYPE_MAIN \" +\n \"SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE \" +\n \"SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE \" +\n \"SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE \" +\n \"SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE \" +\n \"SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE \" +\n \"SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE \" +\n \"SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE \" +\n \"SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE \" +\n \"SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE \" +\n \"SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE \" +\n \"SYSRES_CONST_STATE_REQ_NAME \" +\n \"SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE \" +\n \"SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE \" +\n \"SYSRES_CONST_STATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_STATIC_ROLE_TYPE_CODE \" +\n \"SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE \" +\n \"SYSRES_CONST_STATUS_VALUE_AUTOCLEANING \" +\n \"SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE \" +\n \"SYSRES_CONST_STATUS_VALUE_COMPLETE \" +\n \"SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE \" +\n \"SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE \" +\n \"SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE \" +\n \"SYSRES_CONST_STATUS_VALUE_RED_SQUARE \" +\n \"SYSRES_CONST_STATUS_VALUE_SUSPEND \" +\n \"SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE \" +\n \"SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE \" +\n \"SYSRES_CONST_STORAGE_TYPE_FILE \" +\n \"SYSRES_CONST_STORAGE_TYPE_SQL_SERVER \" +\n \"SYSRES_CONST_STR_REQUISITE \" +\n \"SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE \" +\n \"SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR \" +\n \"SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR \" +\n \"SYSRES_CONST_STRING_REQUISITE_CODE \" +\n \"SYSRES_CONST_STRING_REQUISITE_TYPE \" +\n \"SYSRES_CONST_STRING_TYPE_CHAR \" +\n \"SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE \" +\n \"SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE \" +\n \"SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE \" +\n \"SYSRES_CONST_SYSTEM_VERSION_COMMENT \" +\n \"SYSRES_CONST_TASK_ACCESS_TYPE_ALL \" +\n \"SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS \" +\n \"SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL \" +\n \"SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION \" +\n \"SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD \" +\n \"SYSRES_CONST_TASK_ENCODE_TYPE_NONE \" +\n \"SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD \" +\n \"SYSRES_CONST_TASK_ROUTE_ALL_CONDITION \" +\n \"SYSRES_CONST_TASK_ROUTE_AND_CONDITION \" +\n \"SYSRES_CONST_TASK_ROUTE_OR_CONDITION \" +\n \"SYSRES_CONST_TASK_STATE_ABORTED \" +\n \"SYSRES_CONST_TASK_STATE_COMPLETE \" +\n \"SYSRES_CONST_TASK_STATE_CONTINUED \" +\n \"SYSRES_CONST_TASK_STATE_CONTROL \" +\n \"SYSRES_CONST_TASK_STATE_INIT \" +\n \"SYSRES_CONST_TASK_STATE_WORKING \" +\n \"SYSRES_CONST_TASK_TITLE \" +\n \"SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE \" +\n \"SYSRES_CONST_TASK_TYPES_REFERENCE_CODE \" +\n \"SYSRES_CONST_TEMPLATES_REFERENCE_CODE \" +\n \"SYSRES_CONST_TEST_DATE_REQUISITE_NAME \" +\n \"SYSRES_CONST_TEST_DEV_DATABASE_NAME \" +\n \"SYSRES_CONST_TEST_DEV_SYSTEM_CODE \" +\n \"SYSRES_CONST_TEST_EDMS_DATABASE_NAME \" +\n \"SYSRES_CONST_TEST_EDMS_MAIN_CODE \" +\n \"SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME \" +\n \"SYSRES_CONST_TEST_EDMS_SECOND_CODE \" +\n \"SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME \" +\n \"SYSRES_CONST_TEST_EDMS_SYSTEM_CODE \" +\n \"SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME \" +\n \"SYSRES_CONST_TEXT_REQUISITE \" +\n \"SYSRES_CONST_TEXT_REQUISITE_CODE \" +\n \"SYSRES_CONST_TEXT_REQUISITE_TYPE \" +\n \"SYSRES_CONST_TEXT_TYPE_CHAR \" +\n \"SYSRES_CONST_TYPE_CODE_REQUISITE_CODE \" +\n \"SYSRES_CONST_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR \" +\n \"SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE \" +\n \"SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE \" +\n \"SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE \" +\n \"SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE \" +\n \"SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME \" +\n \"SYSRES_CONST_USE_ACCESS_TYPE_CODE \" +\n \"SYSRES_CONST_USE_ACCESS_TYPE_NAME \" +\n \"SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE \" +\n \"SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_CATEGORY_NORMAL \" +\n \"SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_COMMON_CATEGORY \" +\n \"SYSRES_CONST_USER_COMMON_CATEGORY_CODE \" +\n \"SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_LOGIN_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE \" +\n \"SYSRES_CONST_USER_SERVICE_CATEGORY \" +\n \"SYSRES_CONST_USER_SERVICE_CATEGORY_CODE \" +\n \"SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE \" +\n \"SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME \" +\n \"SYSRES_CONST_USER_STATUS_DEVELOPER_CODE \" +\n \"SYSRES_CONST_USER_STATUS_DEVELOPER_NAME \" +\n \"SYSRES_CONST_USER_STATUS_DISABLED_CODE \" +\n \"SYSRES_CONST_USER_STATUS_DISABLED_NAME \" +\n \"SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE \" +\n \"SYSRES_CONST_USER_STATUS_USER_CODE \" +\n \"SYSRES_CONST_USER_STATUS_USER_NAME \" +\n \"SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED \" +\n \"SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER \" +\n \"SYSRES_CONST_USER_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_REFERENCE_CODE \" +\n \"SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME \" +\n \"SYSRES_CONST_USERS_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE \" +\n \"SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME \" +\n \"SYSRES_CONST_VIEW_DEFAULT_CODE \" +\n \"SYSRES_CONST_VIEW_DEFAULT_NAME \" +\n \"SYSRES_CONST_VIEWER_REQUISITE_CODE \" +\n \"SYSRES_CONST_WAITING_BLOCK_DESCRIPTION \" +\n \"SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING \" +\n \"SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING \" +\n \"SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE \" +\n \"SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE \" +\n \"SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE \" +\n \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE \" +\n \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE \" +\n \"SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS \" +\n \"SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS \" +\n \"SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD \" +\n \"SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT \" +\n \"SYSRES_CONST_XML_ENCODING \" +\n \"SYSRES_CONST_XREC_STAT_REQUISITE_CODE \" +\n \"SYSRES_CONST_XRECID_FIELD_NAME \" +\n \"SYSRES_CONST_YES \" +\n \"SYSRES_CONST_YES_NO_2_REQUISITE_CODE \" +\n \"SYSRES_CONST_YES_NO_REQUISITE_CODE \" +\n \"SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE \" +\n \"SYSRES_CONST_YES_PICK_VALUE \" +\n \"SYSRES_CONST_YES_VALUE \";\n\n // Base constant\n const base_constants = \"CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE \";\n\n // Base group name\n const base_group_name_constants =\n \"ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME \";\n\n // Decision block properties\n const decision_block_properties_constants =\n \"DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY \" +\n \"DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY \";\n\n // File extension\n const file_extension_constants =\n \"ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION \" +\n \"SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION \";\n\n // Job block properties\n const job_block_properties_constants =\n \"JOB_BLOCK_ABORT_DEADLINE_PROPERTY \" +\n \"JOB_BLOCK_AFTER_FINISH_EVENT \" +\n \"JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT \" +\n \"JOB_BLOCK_ATTACHMENT_PROPERTY \" +\n \"JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n \"JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n \"JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT \" +\n \"JOB_BLOCK_BEFORE_START_EVENT \" +\n \"JOB_BLOCK_CREATED_JOBS_PROPERTY \" +\n \"JOB_BLOCK_DEADLINE_PROPERTY \" +\n \"JOB_BLOCK_EXECUTION_RESULTS_PROPERTY \" +\n \"JOB_BLOCK_IS_PARALLEL_PROPERTY \" +\n \"JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY \" +\n \"JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n \"JOB_BLOCK_JOB_TEXT_PROPERTY \" +\n \"JOB_BLOCK_NAME_PROPERTY \" +\n \"JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY \" +\n \"JOB_BLOCK_PERFORMER_PROPERTY \" +\n \"JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY \" +\n \"JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n \"JOB_BLOCK_SUBJECT_PROPERTY \";\n\n // Language code\n const language_code_constants = \"ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE \";\n\n // Launching external applications\n const launching_external_applications_constants =\n \"smHidden smMaximized smMinimized smNormal wmNo wmYes \";\n\n // Link kind\n const link_kind_constants =\n \"COMPONENT_TOKEN_LINK_KIND \" +\n \"DOCUMENT_LINK_KIND \" +\n \"EDOCUMENT_LINK_KIND \" +\n \"FOLDER_LINK_KIND \" +\n \"JOB_LINK_KIND \" +\n \"REFERENCE_LINK_KIND \" +\n \"TASK_LINK_KIND \";\n\n // Lock type\n const lock_type_constants =\n \"COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE \";\n\n // Monitor block properties\n const monitor_block_properties_constants =\n \"MONITOR_BLOCK_AFTER_FINISH_EVENT \" +\n \"MONITOR_BLOCK_BEFORE_START_EVENT \" +\n \"MONITOR_BLOCK_DEADLINE_PROPERTY \" +\n \"MONITOR_BLOCK_INTERVAL_PROPERTY \" +\n \"MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY \" +\n \"MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n \"MONITOR_BLOCK_NAME_PROPERTY \" +\n \"MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n \"MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY \";\n\n // Notice block properties\n const notice_block_properties_constants =\n \"NOTICE_BLOCK_AFTER_FINISH_EVENT \" +\n \"NOTICE_BLOCK_ATTACHMENT_PROPERTY \" +\n \"NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n \"NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n \"NOTICE_BLOCK_BEFORE_START_EVENT \" +\n \"NOTICE_BLOCK_CREATED_NOTICES_PROPERTY \" +\n \"NOTICE_BLOCK_DEADLINE_PROPERTY \" +\n \"NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n \"NOTICE_BLOCK_NAME_PROPERTY \" +\n \"NOTICE_BLOCK_NOTICE_TEXT_PROPERTY \" +\n \"NOTICE_BLOCK_PERFORMER_PROPERTY \" +\n \"NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n \"NOTICE_BLOCK_SUBJECT_PROPERTY \";\n\n // Object events\n const object_events_constants =\n \"dseAfterCancel \" +\n \"dseAfterClose \" +\n \"dseAfterDelete \" +\n \"dseAfterDeleteOutOfTransaction \" +\n \"dseAfterInsert \" +\n \"dseAfterOpen \" +\n \"dseAfterScroll \" +\n \"dseAfterUpdate \" +\n \"dseAfterUpdateOutOfTransaction \" +\n \"dseBeforeCancel \" +\n \"dseBeforeClose \" +\n \"dseBeforeDelete \" +\n \"dseBeforeDetailUpdate \" +\n \"dseBeforeInsert \" +\n \"dseBeforeOpen \" +\n \"dseBeforeUpdate \" +\n \"dseOnAnyRequisiteChange \" +\n \"dseOnCloseRecord \" +\n \"dseOnDeleteError \" +\n \"dseOnOpenRecord \" +\n \"dseOnPrepareUpdate \" +\n \"dseOnUpdateError \" +\n \"dseOnUpdateRatifiedRecord \" +\n \"dseOnValidDelete \" +\n \"dseOnValidUpdate \" +\n \"reOnChange \" +\n \"reOnChangeValues \" +\n \"SELECTION_BEGIN_ROUTE_EVENT \" +\n \"SELECTION_END_ROUTE_EVENT \";\n\n // Object params\n const object_params_constants =\n \"CURRENT_PERIOD_IS_REQUIRED \" +\n \"PREVIOUS_CARD_TYPE_NAME \" +\n \"SHOW_RECORD_PROPERTIES_FORM \";\n\n // Other\n const other_constants =\n \"ACCESS_RIGHTS_SETTING_DIALOG_CODE \" +\n \"ADMINISTRATOR_USER_CODE \" +\n \"ANALYTIC_REPORT_TYPE \" +\n \"asrtHideLocal \" +\n \"asrtHideRemote \" +\n \"CALCULATED_ROLE_TYPE_CODE \" +\n \"COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE \" +\n \"DCTS_TEST_PROTOCOLS_FOLDER_PATH \" +\n \"E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED \" +\n \"E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER \" +\n \"E_EDOC_VERSION_ALREDY_SIGNED \" +\n \"E_EDOC_VERSION_ALREDY_SIGNED_BY_USER \" +\n \"EDOC_TYPES_CODE_REQUISITE_FIELD_NAME \" +\n \"EDOCUMENTS_ALIAS_NAME \" +\n \"FILES_FOLDER_PATH \" +\n \"FILTER_OPERANDS_DELIMITER \" +\n \"FILTER_OPERATIONS_DELIMITER \" +\n \"FORMCARD_NAME \" +\n \"FORMLIST_NAME \" +\n \"GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE \" +\n \"GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE \" +\n \"INTEGRATED_REPORT_TYPE \" +\n \"IS_BUILDER_APPLICATION_ROLE \" +\n \"IS_BUILDER_APPLICATION_ROLE2 \" +\n \"IS_BUILDER_USERS \" +\n \"ISBSYSDEV \" +\n \"LOG_FOLDER_PATH \" +\n \"mbCancel \" +\n \"mbNo \" +\n \"mbNoToAll \" +\n \"mbOK \" +\n \"mbYes \" +\n \"mbYesToAll \" +\n \"MEMORY_DATASET_DESRIPTIONS_FILENAME \" +\n \"mrNo \" +\n \"mrNoToAll \" +\n \"mrYes \" +\n \"mrYesToAll \" +\n \"MULTIPLE_SELECT_DIALOG_CODE \" +\n \"NONOPERATING_RECORD_FLAG_FEMININE \" +\n \"NONOPERATING_RECORD_FLAG_MASCULINE \" +\n \"OPERATING_RECORD_FLAG_FEMININE \" +\n \"OPERATING_RECORD_FLAG_MASCULINE \" +\n \"PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE \" +\n \"PROGRAM_INITIATED_LOOKUP_ACTION \" +\n \"ratDelete \" +\n \"ratEdit \" +\n \"ratInsert \" +\n \"REPORT_TYPE \" +\n \"REQUIRED_PICK_VALUES_VARIABLE \" +\n \"rmCard \" +\n \"rmList \" +\n \"SBRTE_PROGID_DEV \" +\n \"SBRTE_PROGID_RELEASE \" +\n \"STATIC_ROLE_TYPE_CODE \" +\n \"SUPPRESS_EMPTY_TEMPLATE_CREATION \" +\n \"SYSTEM_USER_CODE \" +\n \"UPDATE_DIALOG_DATASET \" +\n \"USED_IN_OBJECT_HINT_PARAM \" +\n \"USER_INITIATED_LOOKUP_ACTION \" +\n \"USER_NAME_FORMAT \" +\n \"USER_SELECTION_RESTRICTIONS \" +\n \"WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH \" +\n \"ELS_SUBTYPE_CONTROL_NAME \" +\n \"ELS_FOLDER_KIND_CONTROL_NAME \" +\n \"REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME \";\n\n // Privileges\n const privileges_constants =\n \"PRIVILEGE_COMPONENT_FULL_ACCESS \" +\n \"PRIVILEGE_DEVELOPMENT_EXPORT \" +\n \"PRIVILEGE_DEVELOPMENT_IMPORT \" +\n \"PRIVILEGE_DOCUMENT_DELETE \" +\n \"PRIVILEGE_ESD \" +\n \"PRIVILEGE_FOLDER_DELETE \" +\n \"PRIVILEGE_MANAGE_ACCESS_RIGHTS \" +\n \"PRIVILEGE_MANAGE_REPLICATION \" +\n \"PRIVILEGE_MANAGE_SESSION_SERVER \" +\n \"PRIVILEGE_OBJECT_FULL_ACCESS \" +\n \"PRIVILEGE_OBJECT_VIEW \" +\n \"PRIVILEGE_RESERVE_LICENSE \" +\n \"PRIVILEGE_SYSTEM_CUSTOMIZE \" +\n \"PRIVILEGE_SYSTEM_DEVELOP \" +\n \"PRIVILEGE_SYSTEM_INSTALL \" +\n \"PRIVILEGE_TASK_DELETE \" +\n \"PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE \" +\n \"PRIVILEGES_PSEUDOREFERENCE_CODE \";\n\n // Pseudoreference code\n const pseudoreference_code_constants =\n \"ACCESS_TYPES_PSEUDOREFERENCE_CODE \" +\n \"ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n \"ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE \" +\n \"ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n \"AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE \" +\n \"COMPONENTS_PSEUDOREFERENCE_CODE \" +\n \"FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE \" +\n \"GROUPS_PSEUDOREFERENCE_CODE \" +\n \"RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE \" +\n \"REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE \" +\n \"REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE \" +\n \"REFTYPES_PSEUDOREFERENCE_CODE \" +\n \"REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE \" +\n \"SEND_PROTOCOL_PSEUDOREFERENCE_CODE \" +\n \"SUBSTITUTES_PSEUDOREFERENCE_CODE \" +\n \"SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE \" +\n \"UNITS_PSEUDOREFERENCE_CODE \" +\n \"USERS_PSEUDOREFERENCE_CODE \" +\n \"VIEWERS_PSEUDOREFERENCE_CODE \";\n\n // Requisite ISBCertificateType values\n const requisite_ISBCertificateType_values_constants =\n \"CERTIFICATE_TYPE_ENCRYPT \" +\n \"CERTIFICATE_TYPE_SIGN \" +\n \"CERTIFICATE_TYPE_SIGN_AND_ENCRYPT \";\n\n // Requisite ISBEDocStorageType values\n const requisite_ISBEDocStorageType_values_constants =\n \"STORAGE_TYPE_FILE \" +\n \"STORAGE_TYPE_NAS_CIFS \" +\n \"STORAGE_TYPE_SAPERION \" +\n \"STORAGE_TYPE_SQL_SERVER \";\n\n // Requisite CompType2 values\n const requisite_compType2_values_constants =\n \"COMPTYPE2_REQUISITE_DOCUMENTS_VALUE \" +\n \"COMPTYPE2_REQUISITE_TASKS_VALUE \" +\n \"COMPTYPE2_REQUISITE_FOLDERS_VALUE \" +\n \"COMPTYPE2_REQUISITE_REFERENCES_VALUE \";\n\n // Requisite name\n const requisite_name_constants =\n \"SYSREQ_CODE \" +\n \"SYSREQ_COMPTYPE2 \" +\n \"SYSREQ_CONST_AVAILABLE_FOR_WEB \" +\n \"SYSREQ_CONST_COMMON_CODE \" +\n \"SYSREQ_CONST_COMMON_VALUE \" +\n \"SYSREQ_CONST_FIRM_CODE \" +\n \"SYSREQ_CONST_FIRM_STATUS \" +\n \"SYSREQ_CONST_FIRM_VALUE \" +\n \"SYSREQ_CONST_SERVER_STATUS \" +\n \"SYSREQ_CONTENTS \" +\n \"SYSREQ_DATE_OPEN \" +\n \"SYSREQ_DATE_CLOSE \" +\n \"SYSREQ_DESCRIPTION \" +\n \"SYSREQ_DESCRIPTION_LOCALIZE_ID \" +\n \"SYSREQ_DOUBLE \" +\n \"SYSREQ_EDOC_ACCESS_TYPE \" +\n \"SYSREQ_EDOC_AUTHOR \" +\n \"SYSREQ_EDOC_CREATED \" +\n \"SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE \" +\n \"SYSREQ_EDOC_EDITOR \" +\n \"SYSREQ_EDOC_ENCODE_TYPE \" +\n \"SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME \" +\n \"SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION \" +\n \"SYSREQ_EDOC_EXPORT_DATE \" +\n \"SYSREQ_EDOC_EXPORTER \" +\n \"SYSREQ_EDOC_KIND \" +\n \"SYSREQ_EDOC_LIFE_STAGE_NAME \" +\n \"SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE \" +\n \"SYSREQ_EDOC_MODIFIED \" +\n \"SYSREQ_EDOC_NAME \" +\n \"SYSREQ_EDOC_NOTE \" +\n \"SYSREQ_EDOC_QUALIFIED_ID \" +\n \"SYSREQ_EDOC_SESSION_KEY \" +\n \"SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME \" +\n \"SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION \" +\n \"SYSREQ_EDOC_SIGNATURE_TYPE \" +\n \"SYSREQ_EDOC_SIGNED \" +\n \"SYSREQ_EDOC_STORAGE \" +\n \"SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE \" +\n \"SYSREQ_EDOC_STORAGES_CHECK_RIGHTS \" +\n \"SYSREQ_EDOC_STORAGES_COMPUTER_NAME \" +\n \"SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE \" +\n \"SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE \" +\n \"SYSREQ_EDOC_STORAGES_FUNCTION \" +\n \"SYSREQ_EDOC_STORAGES_INITIALIZED \" +\n \"SYSREQ_EDOC_STORAGES_LOCAL_PATH \" +\n \"SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME \" +\n \"SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT \" +\n \"SYSREQ_EDOC_STORAGES_SERVER_NAME \" +\n \"SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME \" +\n \"SYSREQ_EDOC_STORAGES_TYPE \" +\n \"SYSREQ_EDOC_TEXT_MODIFIED \" +\n \"SYSREQ_EDOC_TYPE_ACT_CODE \" +\n \"SYSREQ_EDOC_TYPE_ACT_DESCRIPTION \" +\n \"SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID \" +\n \"SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE \" +\n \"SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS \" +\n \"SYSREQ_EDOC_TYPE_ACT_SECTION \" +\n \"SYSREQ_EDOC_TYPE_ADD_PARAMS \" +\n \"SYSREQ_EDOC_TYPE_COMMENT \" +\n \"SYSREQ_EDOC_TYPE_EVENT_TEXT \" +\n \"SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR \" +\n \"SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID \" +\n \"SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID \" +\n \"SYSREQ_EDOC_TYPE_NUMERATION_METHOD \" +\n \"SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE \" +\n \"SYSREQ_EDOC_TYPE_REQ_CODE \" +\n \"SYSREQ_EDOC_TYPE_REQ_DESCRIPTION \" +\n \"SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID \" +\n \"SYSREQ_EDOC_TYPE_REQ_IS_LEADING \" +\n \"SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED \" +\n \"SYSREQ_EDOC_TYPE_REQ_NUMBER \" +\n \"SYSREQ_EDOC_TYPE_REQ_ON_CHANGE \" +\n \"SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS \" +\n \"SYSREQ_EDOC_TYPE_REQ_ON_SELECT \" +\n \"SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND \" +\n \"SYSREQ_EDOC_TYPE_REQ_SECTION \" +\n \"SYSREQ_EDOC_TYPE_VIEW_CARD \" +\n \"SYSREQ_EDOC_TYPE_VIEW_CODE \" +\n \"SYSREQ_EDOC_TYPE_VIEW_COMMENT \" +\n \"SYSREQ_EDOC_TYPE_VIEW_IS_MAIN \" +\n \"SYSREQ_EDOC_TYPE_VIEW_NAME \" +\n \"SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID \" +\n \"SYSREQ_EDOC_VERSION_AUTHOR \" +\n \"SYSREQ_EDOC_VERSION_CRC \" +\n \"SYSREQ_EDOC_VERSION_DATA \" +\n \"SYSREQ_EDOC_VERSION_EDITOR \" +\n \"SYSREQ_EDOC_VERSION_EXPORT_DATE \" +\n \"SYSREQ_EDOC_VERSION_EXPORTER \" +\n \"SYSREQ_EDOC_VERSION_HIDDEN \" +\n \"SYSREQ_EDOC_VERSION_LIFE_STAGE \" +\n \"SYSREQ_EDOC_VERSION_MODIFIED \" +\n \"SYSREQ_EDOC_VERSION_NOTE \" +\n \"SYSREQ_EDOC_VERSION_SIGNATURE_TYPE \" +\n \"SYSREQ_EDOC_VERSION_SIGNED \" +\n \"SYSREQ_EDOC_VERSION_SIZE \" +\n \"SYSREQ_EDOC_VERSION_SOURCE \" +\n \"SYSREQ_EDOC_VERSION_TEXT_MODIFIED \" +\n \"SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE \" +\n \"SYSREQ_FOLDER_KIND \" +\n \"SYSREQ_FUNC_CATEGORY \" +\n \"SYSREQ_FUNC_COMMENT \" +\n \"SYSREQ_FUNC_GROUP \" +\n \"SYSREQ_FUNC_GROUP_COMMENT \" +\n \"SYSREQ_FUNC_GROUP_NUMBER \" +\n \"SYSREQ_FUNC_HELP \" +\n \"SYSREQ_FUNC_PARAM_DEF_VALUE \" +\n \"SYSREQ_FUNC_PARAM_IDENT \" +\n \"SYSREQ_FUNC_PARAM_NUMBER \" +\n \"SYSREQ_FUNC_PARAM_TYPE \" +\n \"SYSREQ_FUNC_TEXT \" +\n \"SYSREQ_GROUP_CATEGORY \" +\n \"SYSREQ_ID \" +\n \"SYSREQ_LAST_UPDATE \" +\n \"SYSREQ_LEADER_REFERENCE \" +\n \"SYSREQ_LINE_NUMBER \" +\n \"SYSREQ_MAIN_RECORD_ID \" +\n \"SYSREQ_NAME \" +\n \"SYSREQ_NAME_LOCALIZE_ID \" +\n \"SYSREQ_NOTE \" +\n \"SYSREQ_ORIGINAL_RECORD \" +\n \"SYSREQ_OUR_FIRM \" +\n \"SYSREQ_PROFILING_SETTINGS_BATCH_LOGING \" +\n \"SYSREQ_PROFILING_SETTINGS_BATCH_SIZE \" +\n \"SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED \" +\n \"SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED \" +\n \"SYSREQ_PROFILING_SETTINGS_START_LOGGED \" +\n \"SYSREQ_RECORD_STATUS \" +\n \"SYSREQ_REF_REQ_FIELD_NAME \" +\n \"SYSREQ_REF_REQ_FORMAT \" +\n \"SYSREQ_REF_REQ_GENERATED \" +\n \"SYSREQ_REF_REQ_LENGTH \" +\n \"SYSREQ_REF_REQ_PRECISION \" +\n \"SYSREQ_REF_REQ_REFERENCE \" +\n \"SYSREQ_REF_REQ_SECTION \" +\n \"SYSREQ_REF_REQ_STORED \" +\n \"SYSREQ_REF_REQ_TOKENS \" +\n \"SYSREQ_REF_REQ_TYPE \" +\n \"SYSREQ_REF_REQ_VIEW \" +\n \"SYSREQ_REF_TYPE_ACT_CODE \" +\n \"SYSREQ_REF_TYPE_ACT_DESCRIPTION \" +\n \"SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID \" +\n \"SYSREQ_REF_TYPE_ACT_ON_EXECUTE \" +\n \"SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS \" +\n \"SYSREQ_REF_TYPE_ACT_SECTION \" +\n \"SYSREQ_REF_TYPE_ADD_PARAMS \" +\n \"SYSREQ_REF_TYPE_COMMENT \" +\n \"SYSREQ_REF_TYPE_COMMON_SETTINGS \" +\n \"SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME \" +\n \"SYSREQ_REF_TYPE_EVENT_TEXT \" +\n \"SYSREQ_REF_TYPE_MAIN_LEADING_REF \" +\n \"SYSREQ_REF_TYPE_NAME_IN_SINGULAR \" +\n \"SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID \" +\n \"SYSREQ_REF_TYPE_NAME_LOCALIZE_ID \" +\n \"SYSREQ_REF_TYPE_NUMERATION_METHOD \" +\n \"SYSREQ_REF_TYPE_REQ_CODE \" +\n \"SYSREQ_REF_TYPE_REQ_DESCRIPTION \" +\n \"SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID \" +\n \"SYSREQ_REF_TYPE_REQ_IS_CONTROL \" +\n \"SYSREQ_REF_TYPE_REQ_IS_FILTER \" +\n \"SYSREQ_REF_TYPE_REQ_IS_LEADING \" +\n \"SYSREQ_REF_TYPE_REQ_IS_REQUIRED \" +\n \"SYSREQ_REF_TYPE_REQ_NUMBER \" +\n \"SYSREQ_REF_TYPE_REQ_ON_CHANGE \" +\n \"SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS \" +\n \"SYSREQ_REF_TYPE_REQ_ON_SELECT \" +\n \"SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND \" +\n \"SYSREQ_REF_TYPE_REQ_SECTION \" +\n \"SYSREQ_REF_TYPE_VIEW_CARD \" +\n \"SYSREQ_REF_TYPE_VIEW_CODE \" +\n \"SYSREQ_REF_TYPE_VIEW_COMMENT \" +\n \"SYSREQ_REF_TYPE_VIEW_IS_MAIN \" +\n \"SYSREQ_REF_TYPE_VIEW_NAME \" +\n \"SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID \" +\n \"SYSREQ_REFERENCE_TYPE_ID \" +\n \"SYSREQ_STATE \" +\n \"SYSREQ_STATЕ \" +\n \"SYSREQ_SYSTEM_SETTINGS_VALUE \" +\n \"SYSREQ_TYPE \" +\n \"SYSREQ_UNIT \" +\n \"SYSREQ_UNIT_ID \" +\n \"SYSREQ_USER_GROUPS_GROUP_FULL_NAME \" +\n \"SYSREQ_USER_GROUPS_GROUP_NAME \" +\n \"SYSREQ_USER_GROUPS_GROUP_SERVER_NAME \" +\n \"SYSREQ_USERS_ACCESS_RIGHTS \" +\n \"SYSREQ_USERS_AUTHENTICATION \" +\n \"SYSREQ_USERS_CATEGORY \" +\n \"SYSREQ_USERS_COMPONENT \" +\n \"SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC \" +\n \"SYSREQ_USERS_DOMAIN \" +\n \"SYSREQ_USERS_FULL_USER_NAME \" +\n \"SYSREQ_USERS_GROUP \" +\n \"SYSREQ_USERS_IS_MAIN_SERVER \" +\n \"SYSREQ_USERS_LOGIN \" +\n \"SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC \" +\n \"SYSREQ_USERS_STATUS \" +\n \"SYSREQ_USERS_USER_CERTIFICATE \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_INFO \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_STATE \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME \" +\n \"SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT \" +\n \"SYSREQ_USERS_USER_DEFAULT_CERTIFICATE \" +\n \"SYSREQ_USERS_USER_DESCRIPTION \" +\n \"SYSREQ_USERS_USER_GLOBAL_NAME \" +\n \"SYSREQ_USERS_USER_LOGIN \" +\n \"SYSREQ_USERS_USER_MAIN_SERVER \" +\n \"SYSREQ_USERS_USER_TYPE \" +\n \"SYSREQ_WORK_RULES_FOLDER_ID \";\n\n // Result\n const result_constants = \"RESULT_VAR_NAME RESULT_VAR_NAME_ENG \";\n\n // Rule identification\n const rule_identification_constants =\n \"AUTO_NUMERATION_RULE_ID \" +\n \"CANT_CHANGE_ID_REQUISITE_RULE_ID \" +\n \"CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID \" +\n \"CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID \" +\n \"CHECK_CODE_REQUISITE_RULE_ID \" +\n \"CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID \" +\n \"CHECK_FILTRATER_CHANGES_RULE_ID \" +\n \"CHECK_RECORD_INTERVAL_RULE_ID \" +\n \"CHECK_REFERENCE_INTERVAL_RULE_ID \" +\n \"CHECK_REQUIRED_DATA_FULLNESS_RULE_ID \" +\n \"CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID \" +\n \"MAKE_RECORD_UNRATIFIED_RULE_ID \" +\n \"RESTORE_AUTO_NUMERATION_RULE_ID \" +\n \"SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID \" +\n \"SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID \" +\n \"SET_IDSPS_VALUE_RULE_ID \" +\n \"SET_NEXT_CODE_VALUE_RULE_ID \" +\n \"SET_OURFIRM_BOUNDS_RULE_ID \" +\n \"SET_OURFIRM_REQUISITE_RULE_ID \";\n\n // Script block properties\n const script_block_properties_constants =\n \"SCRIPT_BLOCK_AFTER_FINISH_EVENT \" +\n \"SCRIPT_BLOCK_BEFORE_START_EVENT \" +\n \"SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY \" +\n \"SCRIPT_BLOCK_NAME_PROPERTY \" +\n \"SCRIPT_BLOCK_SCRIPT_PROPERTY \";\n\n // Subtask block properties\n const subtask_block_properties_constants =\n \"SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY \" +\n \"SUBTASK_BLOCK_AFTER_FINISH_EVENT \" +\n \"SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT \" +\n \"SUBTASK_BLOCK_ATTACHMENTS_PROPERTY \" +\n \"SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY \" +\n \"SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY \" +\n \"SUBTASK_BLOCK_BEFORE_START_EVENT \" +\n \"SUBTASK_BLOCK_CREATED_TASK_PROPERTY \" +\n \"SUBTASK_BLOCK_CREATION_EVENT \" +\n \"SUBTASK_BLOCK_DEADLINE_PROPERTY \" +\n \"SUBTASK_BLOCK_IMPORTANCE_PROPERTY \" +\n \"SUBTASK_BLOCK_INITIATOR_PROPERTY \" +\n \"SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY \" +\n \"SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n \"SUBTASK_BLOCK_JOBS_TYPE_PROPERTY \" +\n \"SUBTASK_BLOCK_NAME_PROPERTY \" +\n \"SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY \" +\n \"SUBTASK_BLOCK_PERFORMERS_PROPERTY \" +\n \"SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY \" +\n \"SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \" +\n \"SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY \" +\n \"SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY \" +\n \"SUBTASK_BLOCK_START_EVENT \" +\n \"SUBTASK_BLOCK_STEP_CONTROL_PROPERTY \" +\n \"SUBTASK_BLOCK_SUBJECT_PROPERTY \" +\n \"SUBTASK_BLOCK_TASK_CONTROL_PROPERTY \" +\n \"SUBTASK_BLOCK_TEXT_PROPERTY \" +\n \"SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY \" +\n \"SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY \" +\n \"SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY \";\n\n // System component\n const system_component_constants =\n \"SYSCOMP_CONTROL_JOBS \" +\n \"SYSCOMP_FOLDERS \" +\n \"SYSCOMP_JOBS \" +\n \"SYSCOMP_NOTICES \" +\n \"SYSCOMP_TASKS \";\n\n // System dialogs\n const system_dialogs_constants =\n \"SYSDLG_CREATE_EDOCUMENT \" +\n \"SYSDLG_CREATE_EDOCUMENT_VERSION \" +\n \"SYSDLG_CURRENT_PERIOD \" +\n \"SYSDLG_EDIT_FUNCTION_HELP \" +\n \"SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE \" +\n \"SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS \" +\n \"SYSDLG_EXPORT_SINGLE_EDOCUMENT \" +\n \"SYSDLG_IMPORT_EDOCUMENT \" +\n \"SYSDLG_MULTIPLE_SELECT \" +\n \"SYSDLG_SETUP_ACCESS_RIGHTS \" +\n \"SYSDLG_SETUP_DEFAULT_RIGHTS \" +\n \"SYSDLG_SETUP_FILTER_CONDITION \" +\n \"SYSDLG_SETUP_SIGN_RIGHTS \" +\n \"SYSDLG_SETUP_TASK_OBSERVERS \" +\n \"SYSDLG_SETUP_TASK_ROUTE \" +\n \"SYSDLG_SETUP_USERS_LIST \" +\n \"SYSDLG_SIGN_EDOCUMENT \" +\n \"SYSDLG_SIGN_MULTIPLE_EDOCUMENTS \";\n\n // System reference names\n const system_reference_names_constants =\n \"SYSREF_ACCESS_RIGHTS_TYPES \" +\n \"SYSREF_ADMINISTRATION_HISTORY \" +\n \"SYSREF_ALL_AVAILABLE_COMPONENTS \" +\n \"SYSREF_ALL_AVAILABLE_PRIVILEGES \" +\n \"SYSREF_ALL_REPLICATING_COMPONENTS \" +\n \"SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS \" +\n \"SYSREF_CALENDAR_EVENTS \" +\n \"SYSREF_COMPONENT_TOKEN_HISTORY \" +\n \"SYSREF_COMPONENT_TOKENS \" +\n \"SYSREF_COMPONENTS \" +\n \"SYSREF_CONSTANTS \" +\n \"SYSREF_DATA_RECEIVE_PROTOCOL \" +\n \"SYSREF_DATA_SEND_PROTOCOL \" +\n \"SYSREF_DIALOGS \" +\n \"SYSREF_DIALOGS_REQUISITES \" +\n \"SYSREF_EDITORS \" +\n \"SYSREF_EDOC_CARDS \" +\n \"SYSREF_EDOC_TYPES \" +\n \"SYSREF_EDOCUMENT_CARD_REQUISITES \" +\n \"SYSREF_EDOCUMENT_CARD_TYPES \" +\n \"SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE \" +\n \"SYSREF_EDOCUMENT_CARDS \" +\n \"SYSREF_EDOCUMENT_HISTORY \" +\n \"SYSREF_EDOCUMENT_KINDS \" +\n \"SYSREF_EDOCUMENT_REQUISITES \" +\n \"SYSREF_EDOCUMENT_SIGNATURES \" +\n \"SYSREF_EDOCUMENT_TEMPLATES \" +\n \"SYSREF_EDOCUMENT_TEXT_STORAGES \" +\n \"SYSREF_EDOCUMENT_VIEWS \" +\n \"SYSREF_FILTERER_SETUP_CONFLICTS \" +\n \"SYSREF_FILTRATER_SETTING_CONFLICTS \" +\n \"SYSREF_FOLDER_HISTORY \" +\n \"SYSREF_FOLDERS \" +\n \"SYSREF_FUNCTION_GROUPS \" +\n \"SYSREF_FUNCTION_PARAMS \" +\n \"SYSREF_FUNCTIONS \" +\n \"SYSREF_JOB_HISTORY \" +\n \"SYSREF_LINKS \" +\n \"SYSREF_LOCALIZATION_DICTIONARY \" +\n \"SYSREF_LOCALIZATION_LANGUAGES \" +\n \"SYSREF_MODULES \" +\n \"SYSREF_PRIVILEGES \" +\n \"SYSREF_RECORD_HISTORY \" +\n \"SYSREF_REFERENCE_REQUISITES \" +\n \"SYSREF_REFERENCE_TYPE_VIEWS \" +\n \"SYSREF_REFERENCE_TYPES \" +\n \"SYSREF_REFERENCES \" +\n \"SYSREF_REFERENCES_REQUISITES \" +\n \"SYSREF_REMOTE_SERVERS \" +\n \"SYSREF_REPLICATION_SESSIONS_LOG \" +\n \"SYSREF_REPLICATION_SESSIONS_PROTOCOL \" +\n \"SYSREF_REPORTS \" +\n \"SYSREF_ROLES \" +\n \"SYSREF_ROUTE_BLOCK_GROUPS \" +\n \"SYSREF_ROUTE_BLOCKS \" +\n \"SYSREF_SCRIPTS \" +\n \"SYSREF_SEARCHES \" +\n \"SYSREF_SERVER_EVENTS \" +\n \"SYSREF_SERVER_EVENTS_HISTORY \" +\n \"SYSREF_STANDARD_ROUTE_GROUPS \" +\n \"SYSREF_STANDARD_ROUTES \" +\n \"SYSREF_STATUSES \" +\n \"SYSREF_SYSTEM_SETTINGS \" +\n \"SYSREF_TASK_HISTORY \" +\n \"SYSREF_TASK_KIND_GROUPS \" +\n \"SYSREF_TASK_KINDS \" +\n \"SYSREF_TASK_RIGHTS \" +\n \"SYSREF_TASK_SIGNATURES \" +\n \"SYSREF_TASKS \" +\n \"SYSREF_UNITS \" +\n \"SYSREF_USER_GROUPS \" +\n \"SYSREF_USER_GROUPS_REFERENCE \" +\n \"SYSREF_USER_SUBSTITUTION \" +\n \"SYSREF_USERS \" +\n \"SYSREF_USERS_REFERENCE \" +\n \"SYSREF_VIEWERS \" +\n \"SYSREF_WORKING_TIME_CALENDARS \";\n\n // Table name\n const table_name_constants =\n \"ACCESS_RIGHTS_TABLE_NAME \" +\n \"EDMS_ACCESS_TABLE_NAME \" +\n \"EDOC_TYPES_TABLE_NAME \";\n\n // Test\n const test_constants =\n \"TEST_DEV_DB_NAME \" +\n \"TEST_DEV_SYSTEM_CODE \" +\n \"TEST_EDMS_DB_NAME \" +\n \"TEST_EDMS_MAIN_CODE \" +\n \"TEST_EDMS_MAIN_DB_NAME \" +\n \"TEST_EDMS_SECOND_CODE \" +\n \"TEST_EDMS_SECOND_DB_NAME \" +\n \"TEST_EDMS_SYSTEM_CODE \" +\n \"TEST_ISB5_MAIN_CODE \" +\n \"TEST_ISB5_SECOND_CODE \" +\n \"TEST_SQL_SERVER_2005_NAME \" +\n \"TEST_SQL_SERVER_NAME \";\n\n // Using the dialog windows\n const using_the_dialog_windows_constants =\n \"ATTENTION_CAPTION \" +\n \"cbsCommandLinks \" +\n \"cbsDefault \" +\n \"CONFIRMATION_CAPTION \" +\n \"ERROR_CAPTION \" +\n \"INFORMATION_CAPTION \" +\n \"mrCancel \" +\n \"mrOk \";\n\n // Using the document\n const using_the_document_constants =\n \"EDOC_VERSION_ACTIVE_STAGE_CODE \" +\n \"EDOC_VERSION_DESIGN_STAGE_CODE \" +\n \"EDOC_VERSION_OBSOLETE_STAGE_CODE \";\n\n // Using the EA and encryption\n const using_the_EA_and_encryption_constants =\n \"cpDataEnciphermentEnabled \" +\n \"cpDigitalSignatureEnabled \" +\n \"cpID \" +\n \"cpIssuer \" +\n \"cpPluginVersion \" +\n \"cpSerial \" +\n \"cpSubjectName \" +\n \"cpSubjSimpleName \" +\n \"cpValidFromDate \" +\n \"cpValidToDate \";\n\n // Using the ISBL-editor\n const using_the_ISBL_editor_constants =\n \"ISBL_SYNTAX \" + \"NO_SYNTAX \" + \"XML_SYNTAX \";\n\n // Wait block properties\n const wait_block_properties_constants =\n \"WAIT_BLOCK_AFTER_FINISH_EVENT \" +\n \"WAIT_BLOCK_BEFORE_START_EVENT \" +\n \"WAIT_BLOCK_DEADLINE_PROPERTY \" +\n \"WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY \" +\n \"WAIT_BLOCK_NAME_PROPERTY \" +\n \"WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY \";\n\n // SYSRES Common\n const sysres_common_constants =\n \"SYSRES_COMMON \" +\n \"SYSRES_CONST \" +\n \"SYSRES_MBFUNC \" +\n \"SYSRES_SBDATA \" +\n \"SYSRES_SBGUI \" +\n \"SYSRES_SBINTF \" +\n \"SYSRES_SBREFDSC \" +\n \"SYSRES_SQLERRORS \" +\n \"SYSRES_SYSCOMP \";\n\n // КонÑтанты ==> built_in\n const CONSTANTS =\n sysres_constants +\n base_constants +\n base_group_name_constants +\n decision_block_properties_constants +\n file_extension_constants +\n job_block_properties_constants +\n language_code_constants +\n launching_external_applications_constants +\n link_kind_constants +\n lock_type_constants +\n monitor_block_properties_constants +\n notice_block_properties_constants +\n object_events_constants +\n object_params_constants +\n other_constants +\n privileges_constants +\n pseudoreference_code_constants +\n requisite_ISBCertificateType_values_constants +\n requisite_ISBEDocStorageType_values_constants +\n requisite_compType2_values_constants +\n requisite_name_constants +\n result_constants +\n rule_identification_constants +\n script_block_properties_constants +\n subtask_block_properties_constants +\n system_component_constants +\n system_dialogs_constants +\n system_reference_names_constants +\n table_name_constants +\n test_constants +\n using_the_dialog_windows_constants +\n using_the_document_constants +\n using_the_EA_and_encryption_constants +\n using_the_ISBL_editor_constants +\n wait_block_properties_constants +\n sysres_common_constants;\n\n // enum TAccountType\n const TAccountType = \"atUser atGroup atRole \";\n\n // enum TActionEnabledMode\n const TActionEnabledMode =\n \"aemEnabledAlways \" +\n \"aemDisabledAlways \" +\n \"aemEnabledOnBrowse \" +\n \"aemEnabledOnEdit \" +\n \"aemDisabledOnBrowseEmpty \";\n\n // enum TAddPosition\n const TAddPosition = \"apBegin apEnd \";\n\n // enum TAlignment\n const TAlignment = \"alLeft alRight \";\n\n // enum TAreaShowMode\n const TAreaShowMode =\n \"asmNever \" +\n \"asmNoButCustomize \" +\n \"asmAsLastTime \" +\n \"asmYesButCustomize \" +\n \"asmAlways \";\n\n // enum TCertificateInvalidationReason\n const TCertificateInvalidationReason = \"cirCommon cirRevoked \";\n\n // enum TCertificateType\n const TCertificateType = \"ctSignature ctEncode ctSignatureEncode \";\n\n // enum TCheckListBoxItemState\n const TCheckListBoxItemState = \"clbUnchecked clbChecked clbGrayed \";\n\n // enum TCloseOnEsc\n const TCloseOnEsc = \"ceISB ceAlways ceNever \";\n\n // enum TCompType\n const TCompType =\n \"ctDocument \" +\n \"ctReference \" +\n \"ctScript \" +\n \"ctUnknown \" +\n \"ctReport \" +\n \"ctDialog \" +\n \"ctFunction \" +\n \"ctFolder \" +\n \"ctEDocument \" +\n \"ctTask \" +\n \"ctJob \" +\n \"ctNotice \" +\n \"ctControlJob \";\n\n // enum TConditionFormat\n const TConditionFormat = \"cfInternal cfDisplay \";\n\n // enum TConnectionIntent\n const TConnectionIntent = \"ciUnspecified ciWrite ciRead \";\n\n // enum TContentKind\n const TContentKind =\n \"ckFolder \" +\n \"ckEDocument \" +\n \"ckTask \" +\n \"ckJob \" +\n \"ckComponentToken \" +\n \"ckAny \" +\n \"ckReference \" +\n \"ckScript \" +\n \"ckReport \" +\n \"ckDialog \";\n\n // enum TControlType\n const TControlType =\n \"ctISBLEditor \" +\n \"ctBevel \" +\n \"ctButton \" +\n \"ctCheckListBox \" +\n \"ctComboBox \" +\n \"ctComboEdit \" +\n \"ctGrid \" +\n \"ctDBCheckBox \" +\n \"ctDBComboBox \" +\n \"ctDBEdit \" +\n \"ctDBEllipsis \" +\n \"ctDBMemo \" +\n \"ctDBNavigator \" +\n \"ctDBRadioGroup \" +\n \"ctDBStatusLabel \" +\n \"ctEdit \" +\n \"ctGroupBox \" +\n \"ctInplaceHint \" +\n \"ctMemo \" +\n \"ctPanel \" +\n \"ctListBox \" +\n \"ctRadioButton \" +\n \"ctRichEdit \" +\n \"ctTabSheet \" +\n \"ctWebBrowser \" +\n \"ctImage \" +\n \"ctHyperLink \" +\n \"ctLabel \" +\n \"ctDBMultiEllipsis \" +\n \"ctRibbon \" +\n \"ctRichView \" +\n \"ctInnerPanel \" +\n \"ctPanelGroup \" +\n \"ctBitButton \";\n\n // enum TCriterionContentType\n const TCriterionContentType =\n \"cctDate \" +\n \"cctInteger \" +\n \"cctNumeric \" +\n \"cctPick \" +\n \"cctReference \" +\n \"cctString \" +\n \"cctText \";\n\n // enum TCultureType\n const TCultureType = \"cltInternal cltPrimary cltGUI \";\n\n // enum TDataSetEventType\n const TDataSetEventType =\n \"dseBeforeOpen \" +\n \"dseAfterOpen \" +\n \"dseBeforeClose \" +\n \"dseAfterClose \" +\n \"dseOnValidDelete \" +\n \"dseBeforeDelete \" +\n \"dseAfterDelete \" +\n \"dseAfterDeleteOutOfTransaction \" +\n \"dseOnDeleteError \" +\n \"dseBeforeInsert \" +\n \"dseAfterInsert \" +\n \"dseOnValidUpdate \" +\n \"dseBeforeUpdate \" +\n \"dseOnUpdateRatifiedRecord \" +\n \"dseAfterUpdate \" +\n \"dseAfterUpdateOutOfTransaction \" +\n \"dseOnUpdateError \" +\n \"dseAfterScroll \" +\n \"dseOnOpenRecord \" +\n \"dseOnCloseRecord \" +\n \"dseBeforeCancel \" +\n \"dseAfterCancel \" +\n \"dseOnUpdateDeadlockError \" +\n \"dseBeforeDetailUpdate \" +\n \"dseOnPrepareUpdate \" +\n \"dseOnAnyRequisiteChange \";\n\n // enum TDataSetState\n const TDataSetState = \"dssEdit dssInsert dssBrowse dssInActive \";\n\n // enum TDateFormatType\n const TDateFormatType = \"dftDate dftShortDate dftDateTime dftTimeStamp \";\n\n // enum TDateOffsetType\n const TDateOffsetType = \"dotDays dotHours dotMinutes dotSeconds \";\n\n // enum TDateTimeKind\n const TDateTimeKind = \"dtkndLocal dtkndUTC \";\n\n // enum TDeaAccessRights\n const TDeaAccessRights = \"arNone arView arEdit arFull \";\n\n // enum TDocumentDefaultAction\n const TDocumentDefaultAction = \"ddaView ddaEdit \";\n\n // enum TEditMode\n const TEditMode =\n \"emLock \" +\n \"emEdit \" +\n \"emSign \" +\n \"emExportWithLock \" +\n \"emImportWithUnlock \" +\n \"emChangeVersionNote \" +\n \"emOpenForModify \" +\n \"emChangeLifeStage \" +\n \"emDelete \" +\n \"emCreateVersion \" +\n \"emImport \" +\n \"emUnlockExportedWithLock \" +\n \"emStart \" +\n \"emAbort \" +\n \"emReInit \" +\n \"emMarkAsReaded \" +\n \"emMarkAsUnreaded \" +\n \"emPerform \" +\n \"emAccept \" +\n \"emResume \" +\n \"emChangeRights \" +\n \"emEditRoute \" +\n \"emEditObserver \" +\n \"emRecoveryFromLocalCopy \" +\n \"emChangeWorkAccessType \" +\n \"emChangeEncodeTypeToCertificate \" +\n \"emChangeEncodeTypeToPassword \" +\n \"emChangeEncodeTypeToNone \" +\n \"emChangeEncodeTypeToCertificatePassword \" +\n \"emChangeStandardRoute \" +\n \"emGetText \" +\n \"emOpenForView \" +\n \"emMoveToStorage \" +\n \"emCreateObject \" +\n \"emChangeVersionHidden \" +\n \"emDeleteVersion \" +\n \"emChangeLifeCycleStage \" +\n \"emApprovingSign \" +\n \"emExport \" +\n \"emContinue \" +\n \"emLockFromEdit \" +\n \"emUnLockForEdit \" +\n \"emLockForServer \" +\n \"emUnlockFromServer \" +\n \"emDelegateAccessRights \" +\n \"emReEncode \";\n\n // enum TEditorCloseObservType\n const TEditorCloseObservType = \"ecotFile ecotProcess \";\n\n // enum TEdmsApplicationAction\n const TEdmsApplicationAction = \"eaGet eaCopy eaCreate eaCreateStandardRoute \";\n\n // enum TEDocumentLockType\n const TEDocumentLockType = \"edltAll edltNothing edltQuery \";\n\n // enum TEDocumentStepShowMode\n const TEDocumentStepShowMode = \"essmText essmCard \";\n\n // enum TEDocumentStepVersionType\n const TEDocumentStepVersionType = \"esvtLast esvtLastActive esvtSpecified \";\n\n // enum TEDocumentStorageFunction\n const TEDocumentStorageFunction = \"edsfExecutive edsfArchive \";\n\n // enum TEDocumentStorageType\n const TEDocumentStorageType = \"edstSQLServer edstFile \";\n\n // enum TEDocumentVersionSourceType\n const TEDocumentVersionSourceType =\n \"edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile \";\n\n // enum TEDocumentVersionState\n const TEDocumentVersionState = \"vsDefault vsDesign vsActive vsObsolete \";\n\n // enum TEncodeType\n const TEncodeType = \"etNone etCertificate etPassword etCertificatePassword \";\n\n // enum TExceptionCategory\n const TExceptionCategory = \"ecException ecWarning ecInformation \";\n\n // enum TExportedSignaturesType\n const TExportedSignaturesType = \"estAll estApprovingOnly \";\n\n // enum TExportedVersionType\n const TExportedVersionType = \"evtLast evtLastActive evtQuery \";\n\n // enum TFieldDataType\n const TFieldDataType =\n \"fdtString \" +\n \"fdtNumeric \" +\n \"fdtInteger \" +\n \"fdtDate \" +\n \"fdtText \" +\n \"fdtUnknown \" +\n \"fdtWideString \" +\n \"fdtLargeInteger \";\n\n // enum TFolderType\n const TFolderType =\n \"ftInbox \" +\n \"ftOutbox \" +\n \"ftFavorites \" +\n \"ftCommonFolder \" +\n \"ftUserFolder \" +\n \"ftComponents \" +\n \"ftQuickLaunch \" +\n \"ftShortcuts \" +\n \"ftSearch \";\n\n // enum TGridRowHeight\n const TGridRowHeight = \"grhAuto \" + \"grhX1 \" + \"grhX2 \" + \"grhX3 \";\n\n // enum THyperlinkType\n const THyperlinkType = \"hltText \" + \"hltRTF \" + \"hltHTML \";\n\n // enum TImageFileFormat\n const TImageFileFormat =\n \"iffBMP \" +\n \"iffJPEG \" +\n \"iffMultiPageTIFF \" +\n \"iffSinglePageTIFF \" +\n \"iffTIFF \" +\n \"iffPNG \";\n\n // enum TImageMode\n const TImageMode = \"im8bGrayscale \" + \"im24bRGB \" + \"im1bMonochrome \";\n\n // enum TImageType\n const TImageType = \"itBMP \" + \"itJPEG \" + \"itWMF \" + \"itPNG \";\n\n // enum TInplaceHintKind\n const TInplaceHintKind =\n \"ikhInformation \" + \"ikhWarning \" + \"ikhError \" + \"ikhNoIcon \";\n\n // enum TISBLContext\n const TISBLContext =\n \"icUnknown \" +\n \"icScript \" +\n \"icFunction \" +\n \"icIntegratedReport \" +\n \"icAnalyticReport \" +\n \"icDataSetEventHandler \" +\n \"icActionHandler \" +\n \"icFormEventHandler \" +\n \"icLookUpEventHandler \" +\n \"icRequisiteChangeEventHandler \" +\n \"icBeforeSearchEventHandler \" +\n \"icRoleCalculation \" +\n \"icSelectRouteEventHandler \" +\n \"icBlockPropertyCalculation \" +\n \"icBlockQueryParamsEventHandler \" +\n \"icChangeSearchResultEventHandler \" +\n \"icBlockEventHandler \" +\n \"icSubTaskInitEventHandler \" +\n \"icEDocDataSetEventHandler \" +\n \"icEDocLookUpEventHandler \" +\n \"icEDocActionHandler \" +\n \"icEDocFormEventHandler \" +\n \"icEDocRequisiteChangeEventHandler \" +\n \"icStructuredConversionRule \" +\n \"icStructuredConversionEventBefore \" +\n \"icStructuredConversionEventAfter \" +\n \"icWizardEventHandler \" +\n \"icWizardFinishEventHandler \" +\n \"icWizardStepEventHandler \" +\n \"icWizardStepFinishEventHandler \" +\n \"icWizardActionEnableEventHandler \" +\n \"icWizardActionExecuteEventHandler \" +\n \"icCreateJobsHandler \" +\n \"icCreateNoticesHandler \" +\n \"icBeforeLookUpEventHandler \" +\n \"icAfterLookUpEventHandler \" +\n \"icTaskAbortEventHandler \" +\n \"icWorkflowBlockActionHandler \" +\n \"icDialogDataSetEventHandler \" +\n \"icDialogActionHandler \" +\n \"icDialogLookUpEventHandler \" +\n \"icDialogRequisiteChangeEventHandler \" +\n \"icDialogFormEventHandler \" +\n \"icDialogValidCloseEventHandler \" +\n \"icBlockFormEventHandler \" +\n \"icTaskFormEventHandler \" +\n \"icReferenceMethod \" +\n \"icEDocMethod \" +\n \"icDialogMethod \" +\n \"icProcessMessageHandler \";\n\n // enum TItemShow\n const TItemShow = \"isShow \" + \"isHide \" + \"isByUserSettings \";\n\n // enum TJobKind\n const TJobKind = \"jkJob \" + \"jkNotice \" + \"jkControlJob \";\n\n // enum TJoinType\n const TJoinType = \"jtInner \" + \"jtLeft \" + \"jtRight \" + \"jtFull \" + \"jtCross \";\n\n // enum TLabelPos\n const TLabelPos = \"lbpAbove \" + \"lbpBelow \" + \"lbpLeft \" + \"lbpRight \";\n\n // enum TLicensingType\n const TLicensingType = \"eltPerConnection \" + \"eltPerUser \";\n\n // enum TLifeCycleStageFontColor\n const TLifeCycleStageFontColor =\n \"sfcUndefined \" +\n \"sfcBlack \" +\n \"sfcGreen \" +\n \"sfcRed \" +\n \"sfcBlue \" +\n \"sfcOrange \" +\n \"sfcLilac \";\n\n // enum TLifeCycleStageFontStyle\n const TLifeCycleStageFontStyle = \"sfsItalic \" + \"sfsStrikeout \" + \"sfsNormal \";\n\n // enum TLockableDevelopmentComponentType\n const TLockableDevelopmentComponentType =\n \"ldctStandardRoute \" +\n \"ldctWizard \" +\n \"ldctScript \" +\n \"ldctFunction \" +\n \"ldctRouteBlock \" +\n \"ldctIntegratedReport \" +\n \"ldctAnalyticReport \" +\n \"ldctReferenceType \" +\n \"ldctEDocumentType \" +\n \"ldctDialog \" +\n \"ldctServerEvents \";\n\n // enum TMaxRecordCountRestrictionType\n const TMaxRecordCountRestrictionType =\n \"mrcrtNone \" + \"mrcrtUser \" + \"mrcrtMaximal \" + \"mrcrtCustom \";\n\n // enum TRangeValueType\n const TRangeValueType =\n \"vtEqual \" + \"vtGreaterOrEqual \" + \"vtLessOrEqual \" + \"vtRange \";\n\n // enum TRelativeDate\n const TRelativeDate =\n \"rdYesterday \" +\n \"rdToday \" +\n \"rdTomorrow \" +\n \"rdThisWeek \" +\n \"rdThisMonth \" +\n \"rdThisYear \" +\n \"rdNextMonth \" +\n \"rdNextWeek \" +\n \"rdLastWeek \" +\n \"rdLastMonth \";\n\n // enum TReportDestination\n const TReportDestination = \"rdWindow \" + \"rdFile \" + \"rdPrinter \";\n\n // enum TReqDataType\n const TReqDataType =\n \"rdtString \" +\n \"rdtNumeric \" +\n \"rdtInteger \" +\n \"rdtDate \" +\n \"rdtReference \" +\n \"rdtAccount \" +\n \"rdtText \" +\n \"rdtPick \" +\n \"rdtUnknown \" +\n \"rdtLargeInteger \" +\n \"rdtDocument \";\n\n // enum TRequisiteEventType\n const TRequisiteEventType = \"reOnChange \" + \"reOnChangeValues \";\n\n // enum TSBTimeType\n const TSBTimeType = \"ttGlobal \" + \"ttLocal \" + \"ttUser \" + \"ttSystem \";\n\n // enum TSearchShowMode\n const TSearchShowMode =\n \"ssmBrowse \" + \"ssmSelect \" + \"ssmMultiSelect \" + \"ssmBrowseModal \";\n\n // enum TSelectMode\n const TSelectMode = \"smSelect \" + \"smLike \" + \"smCard \";\n\n // enum TSignatureType\n const TSignatureType = \"stNone \" + \"stAuthenticating \" + \"stApproving \";\n\n // enum TSignerContentType\n const TSignerContentType = \"sctString \" + \"sctStream \";\n\n // enum TStringsSortType\n const TStringsSortType = \"sstAnsiSort \" + \"sstNaturalSort \";\n\n // enum TStringValueType\n const TStringValueType = \"svtEqual \" + \"svtContain \";\n\n // enum TStructuredObjectAttributeType\n const TStructuredObjectAttributeType =\n \"soatString \" +\n \"soatNumeric \" +\n \"soatInteger \" +\n \"soatDatetime \" +\n \"soatReferenceRecord \" +\n \"soatText \" +\n \"soatPick \" +\n \"soatBoolean \" +\n \"soatEDocument \" +\n \"soatAccount \" +\n \"soatIntegerCollection \" +\n \"soatNumericCollection \" +\n \"soatStringCollection \" +\n \"soatPickCollection \" +\n \"soatDatetimeCollection \" +\n \"soatBooleanCollection \" +\n \"soatReferenceRecordCollection \" +\n \"soatEDocumentCollection \" +\n \"soatAccountCollection \" +\n \"soatContents \" +\n \"soatUnknown \";\n\n // enum TTaskAbortReason\n const TTaskAbortReason = \"tarAbortByUser \" + \"tarAbortByWorkflowException \";\n\n // enum TTextValueType\n const TTextValueType = \"tvtAllWords \" + \"tvtExactPhrase \" + \"tvtAnyWord \";\n\n // enum TUserObjectStatus\n const TUserObjectStatus =\n \"usNone \" +\n \"usCompleted \" +\n \"usRedSquare \" +\n \"usBlueSquare \" +\n \"usYellowSquare \" +\n \"usGreenSquare \" +\n \"usOrangeSquare \" +\n \"usPurpleSquare \" +\n \"usFollowUp \";\n\n // enum TUserType\n const TUserType =\n \"utUnknown \" +\n \"utUser \" +\n \"utDeveloper \" +\n \"utAdministrator \" +\n \"utSystemDeveloper \" +\n \"utDisconnected \";\n\n // enum TValuesBuildType\n const TValuesBuildType =\n \"btAnd \" + \"btDetailAnd \" + \"btOr \" + \"btNotOr \" + \"btOnly \";\n\n // enum TViewMode\n const TViewMode = \"vmView \" + \"vmSelect \" + \"vmNavigation \";\n\n // enum TViewSelectionMode\n const TViewSelectionMode =\n \"vsmSingle \" + \"vsmMultiple \" + \"vsmMultipleCheck \" + \"vsmNoSelection \";\n\n // enum TWizardActionType\n const TWizardActionType =\n \"wfatPrevious \" + \"wfatNext \" + \"wfatCancel \" + \"wfatFinish \";\n\n // enum TWizardFormElementProperty\n const TWizardFormElementProperty =\n \"wfepUndefined \" +\n \"wfepText3 \" +\n \"wfepText6 \" +\n \"wfepText9 \" +\n \"wfepSpinEdit \" +\n \"wfepDropDown \" +\n \"wfepRadioGroup \" +\n \"wfepFlag \" +\n \"wfepText12 \" +\n \"wfepText15 \" +\n \"wfepText18 \" +\n \"wfepText21 \" +\n \"wfepText24 \" +\n \"wfepText27 \" +\n \"wfepText30 \" +\n \"wfepRadioGroupColumn1 \" +\n \"wfepRadioGroupColumn2 \" +\n \"wfepRadioGroupColumn3 \";\n\n // enum TWizardFormElementType\n const TWizardFormElementType =\n \"wfetQueryParameter \" + \"wfetText \" + \"wfetDelimiter \" + \"wfetLabel \";\n\n // enum TWizardParamType\n const TWizardParamType =\n \"wptString \" +\n \"wptInteger \" +\n \"wptNumeric \" +\n \"wptBoolean \" +\n \"wptDateTime \" +\n \"wptPick \" +\n \"wptText \" +\n \"wptUser \" +\n \"wptUserList \" +\n \"wptEDocumentInfo \" +\n \"wptEDocumentInfoList \" +\n \"wptReferenceRecordInfo \" +\n \"wptReferenceRecordInfoList \" +\n \"wptFolderInfo \" +\n \"wptTaskInfo \" +\n \"wptContents \" +\n \"wptFileName \" +\n \"wptDate \";\n\n // enum TWizardStepResult\n const TWizardStepResult =\n \"wsrComplete \" +\n \"wsrGoNext \" +\n \"wsrGoPrevious \" +\n \"wsrCustom \" +\n \"wsrCancel \" +\n \"wsrGoFinal \";\n\n // enum TWizardStepType\n const TWizardStepType =\n \"wstForm \" +\n \"wstEDocument \" +\n \"wstTaskCard \" +\n \"wstReferenceRecordCard \" +\n \"wstFinal \";\n\n // enum TWorkAccessType\n const TWorkAccessType = \"waAll \" + \"waPerformers \" + \"waManual \";\n\n // enum TWorkflowBlockType\n const TWorkflowBlockType =\n \"wsbStart \" +\n \"wsbFinish \" +\n \"wsbNotice \" +\n \"wsbStep \" +\n \"wsbDecision \" +\n \"wsbWait \" +\n \"wsbMonitor \" +\n \"wsbScript \" +\n \"wsbConnector \" +\n \"wsbSubTask \" +\n \"wsbLifeCycleStage \" +\n \"wsbPause \";\n\n // enum TWorkflowDataType\n const TWorkflowDataType =\n \"wdtInteger \" +\n \"wdtFloat \" +\n \"wdtString \" +\n \"wdtPick \" +\n \"wdtDateTime \" +\n \"wdtBoolean \" +\n \"wdtTask \" +\n \"wdtJob \" +\n \"wdtFolder \" +\n \"wdtEDocument \" +\n \"wdtReferenceRecord \" +\n \"wdtUser \" +\n \"wdtGroup \" +\n \"wdtRole \" +\n \"wdtIntegerCollection \" +\n \"wdtFloatCollection \" +\n \"wdtStringCollection \" +\n \"wdtPickCollection \" +\n \"wdtDateTimeCollection \" +\n \"wdtBooleanCollection \" +\n \"wdtTaskCollection \" +\n \"wdtJobCollection \" +\n \"wdtFolderCollection \" +\n \"wdtEDocumentCollection \" +\n \"wdtReferenceRecordCollection \" +\n \"wdtUserCollection \" +\n \"wdtGroupCollection \" +\n \"wdtRoleCollection \" +\n \"wdtContents \" +\n \"wdtUserList \" +\n \"wdtSearchDescription \" +\n \"wdtDeadLine \" +\n \"wdtPickSet \" +\n \"wdtAccountCollection \";\n\n // enum TWorkImportance\n const TWorkImportance = \"wiLow \" + \"wiNormal \" + \"wiHigh \";\n\n // enum TWorkRouteType\n const TWorkRouteType = \"wrtSoft \" + \"wrtHard \";\n\n // enum TWorkState\n const TWorkState =\n \"wsInit \" +\n \"wsRunning \" +\n \"wsDone \" +\n \"wsControlled \" +\n \"wsAborted \" +\n \"wsContinued \";\n\n // enum TWorkTextBuildingMode\n const TWorkTextBuildingMode =\n \"wtmFull \" + \"wtmFromCurrent \" + \"wtmOnlyCurrent \";\n\n // ПеречиÑлениÑ\n const ENUMS =\n TAccountType +\n TActionEnabledMode +\n TAddPosition +\n TAlignment +\n TAreaShowMode +\n TCertificateInvalidationReason +\n TCertificateType +\n TCheckListBoxItemState +\n TCloseOnEsc +\n TCompType +\n TConditionFormat +\n TConnectionIntent +\n TContentKind +\n TControlType +\n TCriterionContentType +\n TCultureType +\n TDataSetEventType +\n TDataSetState +\n TDateFormatType +\n TDateOffsetType +\n TDateTimeKind +\n TDeaAccessRights +\n TDocumentDefaultAction +\n TEditMode +\n TEditorCloseObservType +\n TEdmsApplicationAction +\n TEDocumentLockType +\n TEDocumentStepShowMode +\n TEDocumentStepVersionType +\n TEDocumentStorageFunction +\n TEDocumentStorageType +\n TEDocumentVersionSourceType +\n TEDocumentVersionState +\n TEncodeType +\n TExceptionCategory +\n TExportedSignaturesType +\n TExportedVersionType +\n TFieldDataType +\n TFolderType +\n TGridRowHeight +\n THyperlinkType +\n TImageFileFormat +\n TImageMode +\n TImageType +\n TInplaceHintKind +\n TISBLContext +\n TItemShow +\n TJobKind +\n TJoinType +\n TLabelPos +\n TLicensingType +\n TLifeCycleStageFontColor +\n TLifeCycleStageFontStyle +\n TLockableDevelopmentComponentType +\n TMaxRecordCountRestrictionType +\n TRangeValueType +\n TRelativeDate +\n TReportDestination +\n TReqDataType +\n TRequisiteEventType +\n TSBTimeType +\n TSearchShowMode +\n TSelectMode +\n TSignatureType +\n TSignerContentType +\n TStringsSortType +\n TStringValueType +\n TStructuredObjectAttributeType +\n TTaskAbortReason +\n TTextValueType +\n TUserObjectStatus +\n TUserType +\n TValuesBuildType +\n TViewMode +\n TViewSelectionMode +\n TWizardActionType +\n TWizardFormElementProperty +\n TWizardFormElementType +\n TWizardParamType +\n TWizardStepResult +\n TWizardStepType +\n TWorkAccessType +\n TWorkflowBlockType +\n TWorkflowDataType +\n TWorkImportance +\n TWorkRouteType +\n TWorkState +\n TWorkTextBuildingMode;\n\n // СиÑтемные функции ==> SYSFUNCTIONS\n const system_functions =\n \"AddSubString \" +\n \"AdjustLineBreaks \" +\n \"AmountInWords \" +\n \"Analysis \" +\n \"ArrayDimCount \" +\n \"ArrayHighBound \" +\n \"ArrayLowBound \" +\n \"ArrayOf \" +\n \"ArrayReDim \" +\n \"Assert \" +\n \"Assigned \" +\n \"BeginOfMonth \" +\n \"BeginOfPeriod \" +\n \"BuildProfilingOperationAnalysis \" +\n \"CallProcedure \" +\n \"CanReadFile \" +\n \"CArrayElement \" +\n \"CDataSetRequisite \" +\n \"ChangeDate \" +\n \"ChangeReferenceDataset \" +\n \"Char \" +\n \"CharPos \" +\n \"CheckParam \" +\n \"CheckParamValue \" +\n \"CompareStrings \" +\n \"ConstantExists \" +\n \"ControlState \" +\n \"ConvertDateStr \" +\n \"Copy \" +\n \"CopyFile \" +\n \"CreateArray \" +\n \"CreateCachedReference \" +\n \"CreateConnection \" +\n \"CreateDialog \" +\n \"CreateDualListDialog \" +\n \"CreateEditor \" +\n \"CreateException \" +\n \"CreateFile \" +\n \"CreateFolderDialog \" +\n \"CreateInputDialog \" +\n \"CreateLinkFile \" +\n \"CreateList \" +\n \"CreateLock \" +\n \"CreateMemoryDataSet \" +\n \"CreateObject \" +\n \"CreateOpenDialog \" +\n \"CreateProgress \" +\n \"CreateQuery \" +\n \"CreateReference \" +\n \"CreateReport \" +\n \"CreateSaveDialog \" +\n \"CreateScript \" +\n \"CreateSQLPivotFunction \" +\n \"CreateStringList \" +\n \"CreateTreeListSelectDialog \" +\n \"CSelectSQL \" +\n \"CSQL \" +\n \"CSubString \" +\n \"CurrentUserID \" +\n \"CurrentUserName \" +\n \"CurrentVersion \" +\n \"DataSetLocateEx \" +\n \"DateDiff \" +\n \"DateTimeDiff \" +\n \"DateToStr \" +\n \"DayOfWeek \" +\n \"DeleteFile \" +\n \"DirectoryExists \" +\n \"DisableCheckAccessRights \" +\n \"DisableCheckFullShowingRestriction \" +\n \"DisableMassTaskSendingRestrictions \" +\n \"DropTable \" +\n \"DupeString \" +\n \"EditText \" +\n \"EnableCheckAccessRights \" +\n \"EnableCheckFullShowingRestriction \" +\n \"EnableMassTaskSendingRestrictions \" +\n \"EndOfMonth \" +\n \"EndOfPeriod \" +\n \"ExceptionExists \" +\n \"ExceptionsOff \" +\n \"ExceptionsOn \" +\n \"Execute \" +\n \"ExecuteProcess \" +\n \"Exit \" +\n \"ExpandEnvironmentVariables \" +\n \"ExtractFileDrive \" +\n \"ExtractFileExt \" +\n \"ExtractFileName \" +\n \"ExtractFilePath \" +\n \"ExtractParams \" +\n \"FileExists \" +\n \"FileSize \" +\n \"FindFile \" +\n \"FindSubString \" +\n \"FirmContext \" +\n \"ForceDirectories \" +\n \"Format \" +\n \"FormatDate \" +\n \"FormatNumeric \" +\n \"FormatSQLDate \" +\n \"FormatString \" +\n \"FreeException \" +\n \"GetComponent \" +\n \"GetComponentLaunchParam \" +\n \"GetConstant \" +\n \"GetLastException \" +\n \"GetReferenceRecord \" +\n \"GetRefTypeByRefID \" +\n \"GetTableID \" +\n \"GetTempFolder \" +\n \"IfThen \" +\n \"In \" +\n \"IndexOf \" +\n \"InputDialog \" +\n \"InputDialogEx \" +\n \"InteractiveMode \" +\n \"IsFileLocked \" +\n \"IsGraphicFile \" +\n \"IsNumeric \" +\n \"Length \" +\n \"LoadString \" +\n \"LoadStringFmt \" +\n \"LocalTimeToUTC \" +\n \"LowerCase \" +\n \"Max \" +\n \"MessageBox \" +\n \"MessageBoxEx \" +\n \"MimeDecodeBinary \" +\n \"MimeDecodeString \" +\n \"MimeEncodeBinary \" +\n \"MimeEncodeString \" +\n \"Min \" +\n \"MoneyInWords \" +\n \"MoveFile \" +\n \"NewID \" +\n \"Now \" +\n \"OpenFile \" +\n \"Ord \" +\n \"Precision \" +\n \"Raise \" +\n \"ReadCertificateFromFile \" +\n \"ReadFile \" +\n \"ReferenceCodeByID \" +\n \"ReferenceNumber \" +\n \"ReferenceRequisiteMode \" +\n \"ReferenceRequisiteValue \" +\n \"RegionDateSettings \" +\n \"RegionNumberSettings \" +\n \"RegionTimeSettings \" +\n \"RegRead \" +\n \"RegWrite \" +\n \"RenameFile \" +\n \"Replace \" +\n \"Round \" +\n \"SelectServerCode \" +\n \"SelectSQL \" +\n \"ServerDateTime \" +\n \"SetConstant \" +\n \"SetManagedFolderFieldsState \" +\n \"ShowConstantsInputDialog \" +\n \"ShowMessage \" +\n \"Sleep \" +\n \"Split \" +\n \"SQL \" +\n \"SQL2XLSTAB \" +\n \"SQLProfilingSendReport \" +\n \"StrToDate \" +\n \"SubString \" +\n \"SubStringCount \" +\n \"SystemSetting \" +\n \"Time \" +\n \"TimeDiff \" +\n \"Today \" +\n \"Transliterate \" +\n \"Trim \" +\n \"UpperCase \" +\n \"UserStatus \" +\n \"UTCToLocalTime \" +\n \"ValidateXML \" +\n \"VarIsClear \" +\n \"VarIsEmpty \" +\n \"VarIsNull \" +\n \"WorkTimeDiff \" +\n \"WriteFile \" +\n \"WriteFileEx \" +\n \"WriteObjectHistory \" +\n \"Ðнализ \" +\n \"БазаДанных \" +\n \"БлокЕÑть \" +\n \"БлокЕÑтьРаÑш \" +\n \"БлокИнфо \" +\n \"БлокСнÑть \" +\n \"БлокСнÑтьРаÑш \" +\n \"БлокУÑтановить \" +\n \"Ввод \" +\n \"ВводМеню \" +\n \"ВедС \" +\n \"ВедСпр \" +\n \"ВерхнÑÑГраницаМаÑÑива \" +\n \"ВнешПрогр \" +\n \"ВоÑÑÑ‚ \" +\n \"ВременнаÑПапка \" +\n \"Ð’Ñ€ÐµÐ¼Ñ \" +\n \"ВыборSQL \" +\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 \"ИзменитьРазмерМаÑÑива \" +\n \"ИзмеренийМаÑÑива \" +\n \"ИмÑОрг \" +\n \"ИмÑПолÑСпр \" +\n \"Ð˜Ð½Ð´ÐµÐºÑ \" +\n \"ИндикаторЗакрыть \" +\n \"ИндикаторОткрыть \" +\n \"ИндикаторШаг \" +\n \"ИнтерактивныйРежим \" +\n \"ИтогТблСпр \" +\n \"КодВидВедСпр \" +\n \"КодВидСпрПоИД \" +\n \"КодПоAnalit \" +\n \"КодСимвола \" +\n \"КодСпр \" +\n \"КолПодÑтр \" +\n \"КолПроп \" +\n \"ÐšÐ¾Ð½ÐœÐµÑ \" +\n \"КонÑÑ‚ \" +\n \"КонÑтЕÑть \" +\n \"КонÑтЗнач \" +\n \"КонТран \" +\n \"КопироватьФайл \" +\n \"КопиÑСтр \" +\n \"КПериод \" +\n \"КСтрТблСпр \" +\n \"ÐœÐ°ÐºÑ \" +\n \"МакÑСтрТблСпр \" +\n \"МаÑÑив \" +\n \"Меню \" +\n \"МенюРаÑш \" +\n \"Мин \" +\n \"ÐаборДанныхÐайтиРаÑш \" +\n \"ÐаимВидСпр \" +\n \"ÐаимПоAnalit \" +\n \"ÐаимСпр \" +\n \"ÐаÑтроитьПереводыСтрок \" +\n \"ÐÐ°Ñ‡ÐœÐµÑ \" +\n \"ÐачТран \" +\n \"ÐижнÑÑГраницаМаÑÑива \" +\n \"ÐомерСпр \" +\n \"ÐПериод \" +\n \"Окно \" +\n \"Окр \" +\n \"Окружение \" +\n \"ОтлИнфДобавить \" +\n \"ОтлИнфУдалить \" +\n \"Отчет \" +\n \"ОтчетÐнал \" +\n \"ОтчетИнт \" +\n \"ПапкаСущеÑтвует \" +\n \"Пауза \" +\n \"ПВыборSQL \" +\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 \"РееÑтрЗапиÑÑŒ \" +\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 \"СоздатьИÑключение \" +\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 \"СпрКод \" +\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 \"СпрТблСтрСозд \" +\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 \"ФайлВремÑУÑтановить \" +\n \"ФайлВыбрать \" +\n \"ФайлЗанÑÑ‚ \" +\n \"ФайлЗапиÑать \" +\n \"ФайлИÑкать \" +\n \"ФайлКопировать \" +\n \"ФайлМожноЧитать \" +\n \"ФайлОткрыть \" +\n \"ФайлПереименовать \" +\n \"ФайлПерекодировать \" +\n \"ФайлПеремеÑтить \" +\n \"ФайлПроÑмотреть \" +\n \"ФайлРазмер \" +\n \"ФайлСоздать \" +\n \"ФайлСÑылкаСоздать \" +\n \"ФайлСущеÑтвует \" +\n \"ФайлСчитать \" +\n \"ФайлУдалить \" +\n \"ФмтSQLДат \" +\n \"ФмтДат \" +\n \"ФмтСтр \" +\n \"ФмтЧÑл \" +\n \"Формат \" +\n \"ЦМаÑÑивÐлемент \" +\n \"ЦÐаборДанныхРеквизит \" +\n \"ЦПодÑтр \";\n\n // Предопределенные переменные ==> built_in\n const predefined_variables =\n \"AltState \" +\n \"Application \" +\n \"CallType \" +\n \"ComponentTokens \" +\n \"CreatedJobs \" +\n \"CreatedNotices \" +\n \"ControlState \" +\n \"DialogResult \" +\n \"Dialogs \" +\n \"EDocuments \" +\n \"EDocumentVersionSource \" +\n \"Folders \" +\n \"GlobalIDs \" +\n \"Job \" +\n \"Jobs \" +\n \"InputValue \" +\n \"LookUpReference \" +\n \"LookUpRequisiteNames \" +\n \"LookUpSearch \" +\n \"Object \" +\n \"ParentComponent \" +\n \"Processes \" +\n \"References \" +\n \"Requisite \" +\n \"ReportName \" +\n \"Reports \" +\n \"Result \" +\n \"Scripts \" +\n \"Searches \" +\n \"SelectedAttachments \" +\n \"SelectedItems \" +\n \"SelectMode \" +\n \"Sender \" +\n \"ServerEvents \" +\n \"ServiceFactory \" +\n \"ShiftState \" +\n \"SubTask \" +\n \"SystemDialogs \" +\n \"Tasks \" +\n \"Wizard \" +\n \"Wizards \" +\n \"Work \" +\n \"ВызовСпоÑоб \" +\n \"ИмÑОтчета \" +\n \"РеквЗнач \";\n\n // ИнтерфейÑÑ‹ ==> type\n const interfaces =\n \"IApplication \" +\n \"IAccessRights \" +\n \"IAccountRepository \" +\n \"IAccountSelectionRestrictions \" +\n \"IAction \" +\n \"IActionList \" +\n \"IAdministrationHistoryDescription \" +\n \"IAnchors \" +\n \"IApplication \" +\n \"IArchiveInfo \" +\n \"IAttachment \" +\n \"IAttachmentList \" +\n \"ICheckListBox \" +\n \"ICheckPointedList \" +\n \"IColumn \" +\n \"IComponent \" +\n \"IComponentDescription \" +\n \"IComponentToken \" +\n \"IComponentTokenFactory \" +\n \"IComponentTokenInfo \" +\n \"ICompRecordInfo \" +\n \"IConnection \" +\n \"IContents \" +\n \"IControl \" +\n \"IControlJob \" +\n \"IControlJobInfo \" +\n \"IControlList \" +\n \"ICrypto \" +\n \"ICrypto2 \" +\n \"ICustomJob \" +\n \"ICustomJobInfo \" +\n \"ICustomListBox \" +\n \"ICustomObjectWizardStep \" +\n \"ICustomWork \" +\n \"ICustomWorkInfo \" +\n \"IDataSet \" +\n \"IDataSetAccessInfo \" +\n \"IDataSigner \" +\n \"IDateCriterion \" +\n \"IDateRequisite \" +\n \"IDateRequisiteDescription \" +\n \"IDateValue \" +\n \"IDeaAccessRights \" +\n \"IDeaObjectInfo \" +\n \"IDevelopmentComponentLock \" +\n \"IDialog \" +\n \"IDialogFactory \" +\n \"IDialogPickRequisiteItems \" +\n \"IDialogsFactory \" +\n \"IDICSFactory \" +\n \"IDocRequisite \" +\n \"IDocumentInfo \" +\n \"IDualListDialog \" +\n \"IECertificate \" +\n \"IECertificateInfo \" +\n \"IECertificates \" +\n \"IEditControl \" +\n \"IEditorForm \" +\n \"IEdmsExplorer \" +\n \"IEdmsObject \" +\n \"IEdmsObjectDescription \" +\n \"IEdmsObjectFactory \" +\n \"IEdmsObjectInfo \" +\n \"IEDocument \" +\n \"IEDocumentAccessRights \" +\n \"IEDocumentDescription \" +\n \"IEDocumentEditor \" +\n \"IEDocumentFactory \" +\n \"IEDocumentInfo \" +\n \"IEDocumentStorage \" +\n \"IEDocumentVersion \" +\n \"IEDocumentVersionListDialog \" +\n \"IEDocumentVersionSource \" +\n \"IEDocumentWizardStep \" +\n \"IEDocVerSignature \" +\n \"IEDocVersionState \" +\n \"IEnabledMode \" +\n \"IEncodeProvider \" +\n \"IEncrypter \" +\n \"IEvent \" +\n \"IEventList \" +\n \"IException \" +\n \"IExternalEvents \" +\n \"IExternalHandler \" +\n \"IFactory \" +\n \"IField \" +\n \"IFileDialog \" +\n \"IFolder \" +\n \"IFolderDescription \" +\n \"IFolderDialog \" +\n \"IFolderFactory \" +\n \"IFolderInfo \" +\n \"IForEach \" +\n \"IForm \" +\n \"IFormTitle \" +\n \"IFormWizardStep \" +\n \"IGlobalIDFactory \" +\n \"IGlobalIDInfo \" +\n \"IGrid \" +\n \"IHasher \" +\n \"IHistoryDescription \" +\n \"IHyperLinkControl \" +\n \"IImageButton \" +\n \"IImageControl \" +\n \"IInnerPanel \" +\n \"IInplaceHint \" +\n \"IIntegerCriterion \" +\n \"IIntegerList \" +\n \"IIntegerRequisite \" +\n \"IIntegerValue \" +\n \"IISBLEditorForm \" +\n \"IJob \" +\n \"IJobDescription \" +\n \"IJobFactory \" +\n \"IJobForm \" +\n \"IJobInfo \" +\n \"ILabelControl \" +\n \"ILargeIntegerCriterion \" +\n \"ILargeIntegerRequisite \" +\n \"ILargeIntegerValue \" +\n \"ILicenseInfo \" +\n \"ILifeCycleStage \" +\n \"IList \" +\n \"IListBox \" +\n \"ILocalIDInfo \" +\n \"ILocalization \" +\n \"ILock \" +\n \"IMemoryDataSet \" +\n \"IMessagingFactory \" +\n \"IMetadataRepository \" +\n \"INotice \" +\n \"INoticeInfo \" +\n \"INumericCriterion \" +\n \"INumericRequisite \" +\n \"INumericValue \" +\n \"IObject \" +\n \"IObjectDescription \" +\n \"IObjectImporter \" +\n \"IObjectInfo \" +\n \"IObserver \" +\n \"IPanelGroup \" +\n \"IPickCriterion \" +\n \"IPickProperty \" +\n \"IPickRequisite \" +\n \"IPickRequisiteDescription \" +\n \"IPickRequisiteItem \" +\n \"IPickRequisiteItems \" +\n \"IPickValue \" +\n \"IPrivilege \" +\n \"IPrivilegeList \" +\n \"IProcess \" +\n \"IProcessFactory \" +\n \"IProcessMessage \" +\n \"IProgress \" +\n \"IProperty \" +\n \"IPropertyChangeEvent \" +\n \"IQuery \" +\n \"IReference \" +\n \"IReferenceCriterion \" +\n \"IReferenceEnabledMode \" +\n \"IReferenceFactory \" +\n \"IReferenceHistoryDescription \" +\n \"IReferenceInfo \" +\n \"IReferenceRecordCardWizardStep \" +\n \"IReferenceRequisiteDescription \" +\n \"IReferencesFactory \" +\n \"IReferenceValue \" +\n \"IRefRequisite \" +\n \"IReport \" +\n \"IReportFactory \" +\n \"IRequisite \" +\n \"IRequisiteDescription \" +\n \"IRequisiteDescriptionList \" +\n \"IRequisiteFactory \" +\n \"IRichEdit \" +\n \"IRouteStep \" +\n \"IRule \" +\n \"IRuleList \" +\n \"ISchemeBlock \" +\n \"IScript \" +\n \"IScriptFactory \" +\n \"ISearchCriteria \" +\n \"ISearchCriterion \" +\n \"ISearchDescription \" +\n \"ISearchFactory \" +\n \"ISearchFolderInfo \" +\n \"ISearchForObjectDescription \" +\n \"ISearchResultRestrictions \" +\n \"ISecuredContext \" +\n \"ISelectDialog \" +\n \"IServerEvent \" +\n \"IServerEventFactory \" +\n \"IServiceDialog \" +\n \"IServiceFactory \" +\n \"ISignature \" +\n \"ISignProvider \" +\n \"ISignProvider2 \" +\n \"ISignProvider3 \" +\n \"ISimpleCriterion \" +\n \"IStringCriterion \" +\n \"IStringList \" +\n \"IStringRequisite \" +\n \"IStringRequisiteDescription \" +\n \"IStringValue \" +\n \"ISystemDialogsFactory \" +\n \"ISystemInfo \" +\n \"ITabSheet \" +\n \"ITask \" +\n \"ITaskAbortReasonInfo \" +\n \"ITaskCardWizardStep \" +\n \"ITaskDescription \" +\n \"ITaskFactory \" +\n \"ITaskInfo \" +\n \"ITaskRoute \" +\n \"ITextCriterion \" +\n \"ITextRequisite \" +\n \"ITextValue \" +\n \"ITreeListSelectDialog \" +\n \"IUser \" +\n \"IUserList \" +\n \"IValue \" +\n \"IView \" +\n \"IWebBrowserControl \" +\n \"IWizard \" +\n \"IWizardAction \" +\n \"IWizardFactory \" +\n \"IWizardFormElement \" +\n \"IWizardParam \" +\n \"IWizardPickParam \" +\n \"IWizardReferenceParam \" +\n \"IWizardStep \" +\n \"IWorkAccessRights \" +\n \"IWorkDescription \" +\n \"IWorkflowAskableParam \" +\n \"IWorkflowAskableParams \" +\n \"IWorkflowBlock \" +\n \"IWorkflowBlockResult \" +\n \"IWorkflowEnabledMode \" +\n \"IWorkflowParam \" +\n \"IWorkflowPickParam \" +\n \"IWorkflowReferenceParam \" +\n \"IWorkState \" +\n \"IWorkTreeCustomNode \" +\n \"IWorkTreeJobNode \" +\n \"IWorkTreeTaskNode \" +\n \"IXMLEditorForm \" +\n \"SBCrypto \";\n\n // built_in : вÑтроенные или библиотечные объекты (конÑтанты, перечиÑлениÑ)\n const BUILTIN = CONSTANTS + ENUMS;\n\n // class: вÑтроенные наборы значений, ÑиÑтемные объекты, фабрики\n const CLASS = predefined_variables;\n\n // literal : примитивные типы\n const LITERAL = \"null true false nil \";\n\n // number : чиÑла\n const NUMBERS = {\n className: \"number\",\n begin: hljs.NUMBER_RE,\n relevance: 0\n };\n\n // string : Ñтроки\n const STRINGS = {\n className: \"string\",\n variants: [\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: \"'\",\n end: \"'\"\n }\n ]\n };\n\n // Токены\n const DOCTAGS = {\n className: \"doctag\",\n begin: \"\\\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\\\b\",\n relevance: 0\n };\n\n // ОдноÑтрочный комментарий\n const ISBL_LINE_COMMENT_MODE = {\n className: \"comment\",\n begin: \"//\",\n end: \"$\",\n relevance: 0,\n contains: [\n hljs.PHRASAL_WORDS_MODE,\n DOCTAGS\n ]\n };\n\n // МногоÑтрочный комментарий\n const ISBL_BLOCK_COMMENT_MODE = {\n className: \"comment\",\n begin: \"/\\\\*\",\n end: \"\\\\*/\",\n relevance: 0,\n contains: [\n hljs.PHRASAL_WORDS_MODE,\n DOCTAGS\n ]\n };\n\n // comment : комментарии\n const COMMENTS = {\n variants: [\n ISBL_LINE_COMMENT_MODE,\n ISBL_BLOCK_COMMENT_MODE\n ]\n };\n\n // keywords : ключевые Ñлова\n const KEYWORDS = {\n $pattern: UNDERSCORE_IDENT_RE,\n keyword: KEYWORD,\n built_in: BUILTIN,\n class: CLASS,\n literal: LITERAL\n };\n\n // methods : методы\n const METHODS = {\n begin: \"\\\\.\\\\s*\" + hljs.UNDERSCORE_IDENT_RE,\n keywords: KEYWORDS,\n relevance: 0\n };\n\n // type : вÑтроенные типы\n const TYPES = {\n className: \"type\",\n begin: \":[ \\\\t]*(\" + interfaces.trim().replace(/\\s/g, \"|\") + \")\",\n end: \"[ \\\\t]*=\",\n excludeEnd: true\n };\n\n // variables : переменные\n const VARIABLES = {\n className: \"variable\",\n keywords: KEYWORDS,\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0,\n contains: [\n TYPES,\n METHODS\n ]\n };\n\n // Имена функций\n const FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + \"\\\\(\";\n\n const TITLE_MODE = {\n className: \"title\",\n keywords: {\n $pattern: UNDERSCORE_IDENT_RE,\n built_in: system_functions\n },\n begin: FUNCTION_TITLE,\n end: \"\\\\(\",\n returnBegin: true,\n excludeEnd: true\n };\n\n // function : функции\n const FUNCTIONS = {\n className: \"function\",\n begin: FUNCTION_TITLE,\n end: \"\\\\)$\",\n returnBegin: true,\n keywords: KEYWORDS,\n illegal: \"[\\\\[\\\\]\\\\|\\\\$\\\\?%,~#@]\",\n contains: [\n TITLE_MODE,\n METHODS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n COMMENTS\n ]\n };\n\n return {\n name: 'ISBL',\n case_insensitive: true,\n keywords: KEYWORDS,\n illegal: \"\\\\$|\\\\?|%|,|;$|~|#|@|</\",\n contains: [\n FUNCTIONS,\n TYPES,\n METHODS,\n VARIABLES,\n STRINGS,\n NUMBERS,\n COMMENTS\n ]\n };\n}\n\nmodule.exports = isbl;\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\nLanguage: Java\nAuthor: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>\nCategory: common, enterprise\nWebsite: https://www.java.com/\n*/\n\nfunction java(hljs) {\n var JAVA_IDENT_RE = '[\\u00C0-\\u02B8a-zA-Z_$][\\u00C0-\\u02B8a-zA-Z_$0-9]*';\n var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\\\s*,\\\\s*' + JAVA_IDENT_RE + ')*>)?';\n var KEYWORDS = 'false synchronized int abstract float private char boolean var static null if const ' +\n 'for true while long strictfp finally protected import native final void ' +\n 'enum else break transient catch instanceof byte super volatile case assert short ' +\n 'package default double public try this switch continue throws protected public private ' +\n 'module requires exports do';\n\n var ANNOTATION = {\n className: 'meta',\n begin: '@' + JAVA_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\"self\"] // allow nested () inside our annotation\n },\n ]\n };\n const NUMBER = NUMERIC;\n\n return {\n name: 'Java',\n aliases: ['jsp'],\n keywords: KEYWORDS,\n illegal: /<\\/|#/,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n // eat up @'s in emails to prevent them to be recognized as doctags\n begin: /\\w+@/, relevance: 0\n },\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n // relevance boost\n {\n begin: /import java\\.[a-z]+\\./,\n keywords: \"import\",\n relevance: 2\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'class',\n beginKeywords: 'class interface enum', end: /[{;=]/, excludeEnd: true,\n // TODO: can this be removed somehow?\n // an extra boost because Java is more popular than other languages with\n // this same syntax feature (this is just to preserve our tests passing\n // for now)\n relevance: 1,\n keywords: 'class interface enum',\n illegal: /[:\"\\[\\]]/,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n // Expression keywords prevent 'keyword Name(...)' from being\n // recognized as a function definition\n beginKeywords: 'new throw return else',\n relevance: 0\n },\n {\n className: 'class',\n begin: 'record\\\\s+' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n excludeEnd: true,\n end: /[{;=]/,\n keywords: KEYWORDS,\n contains: [\n { beginKeywords: \"record\" },\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n {\n className: 'params',\n begin: /\\(/, end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'function',\n begin: '(' + GENERIC_IDENT_RE + '\\\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(', returnBegin: true, end: /[{;=]/,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(', returnBegin: true,\n relevance: 0,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n {\n className: 'params',\n begin: /\\(/, end: /\\)/,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n ANNOTATION,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n NUMBER,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n NUMBER,\n ANNOTATION\n ]\n };\n}\n\nmodule.exports = java;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\nconst TYPES = [\n \"Intl\",\n \"DataView\",\n \"Number\",\n \"Math\",\n \"Date\",\n \"String\",\n \"RegExp\",\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Error\",\n \"Symbol\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"Proxy\",\n \"Reflect\",\n \"JSON\",\n \"Promise\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"ArrayBuffer\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n BUILT_IN_VARIABLES,\n TYPES,\n ERROR_TYPES\n);\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n // nested type?\n // HTML should not include another raw `<` inside a tag\n // But a type might: `<Array<Array<number>>`, etc.\n if (nextChar === \"<\") {\n response.ignoreMatch();\n return;\n }\n // <something>\n // This is now either a tag or a type.\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+',\n contains: [\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n { // object attr container\n begin: concat(/[{,\\n]\\s*/,\n // we need to look ahead to make sure that we actually have an\n // attribute coming up so we don't steal a comma from a potential\n // \"value\" container\n //\n // NOTE: this might not work how you think. We don't actually always\n // enter this mode and stay. Instead it might merely match `,\n // <comments up next>` and then immediately end after the , because it\n // fails to find any actual attrs. But this still does the job because\n // it prevents the value contain rule from grabbing this instead and\n // prevening this rule from firing when we actually DO have keys.\n lookahead(concat(\n // we also need to allow for multiple possible comments inbetween\n // the first key:value pairing\n /(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,\n IDENT_RE$1 + '\\\\s*:'))),\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n relevance: 0\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/, relevance: 0\n },\n {\n className: '',\n begin: /\\s/,\n end: /\\s*/,\n skip: true\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: [\n 'self',\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n PARAMS\n ],\n illegal: /%/\n },\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n ]\n },\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n variants: [\n { begin: '\\\\.' + IDENT_RE$1 },\n { begin: '\\\\$' + IDENT_RE$1 }\n ],\n relevance: 0\n },\n { // ES6 class\n className: 'class',\n beginKeywords: 'class',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:\"[\\]]/,\n contains: [\n { beginKeywords: 'extends' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n begin: /\\b(?=constructor)/,\n end: /[{;]/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n 'self',\n PARAMS\n ]\n },\n {\n begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n end: /\\{/,\n keywords: \"get set\",\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n { begin: /\\(\\)/ }, // eat to avoid empty params\n PARAMS\n ]\n },\n {\n begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nmodule.exports = javascript;\n","/*\n Language: JBoss CLI\n Author: Raphaël Parrëe <rparree@edc4it.com>\n Description: language definition jboss cli\n Website: https://docs.jboss.org/author/display/WFLY/Command+Line+Interface\n Category: config\n */\n\nfunction jbossCli(hljs) {\n const PARAM = {\n begin: /[\\w-]+ *=/,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: /[\\w-]+/\n }\n ]\n };\n const PARAMSBLOCK = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [PARAM],\n relevance: 0\n };\n const OPERATION = {\n className: 'function',\n begin: /:[\\w\\-.]+/,\n relevance: 0\n };\n const PATH = {\n className: 'string',\n begin: /\\B([\\/.])[\\w\\-.\\/=]+/\n };\n const COMMAND_PARAMS = {\n className: 'params',\n begin: /--[\\w\\-=\\/]+/\n };\n return {\n name: 'JBoss CLI',\n aliases: ['wildfly-cli'],\n keywords: {\n $pattern: '[a-z\\-]+',\n keyword: 'alias batch cd clear command connect connection-factory connection-info data-source deploy ' +\n 'deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls ' +\n 'patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias ' +\n 'undeploy unset version xa-data-source', // module\n literal: 'true false'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n COMMAND_PARAMS,\n OPERATION,\n PATH,\n PARAMSBLOCK\n ]\n };\n}\n\nmodule.exports = jbossCli;\n","/*\nLanguage: JSON\nDescription: JSON (JavaScript Object Notation) is a lightweight data-interchange format.\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: http://www.json.org\nCategory: common, protocols\n*/\n\nfunction json(hljs) {\n const LITERALS = {\n literal: 'true false null'\n };\n const ALLOWED_COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ];\n const TYPES = [\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE\n ];\n const VALUE_CONTAINER = {\n end: ',',\n endsWithParent: true,\n excludeEnd: true,\n contains: TYPES,\n keywords: LITERALS\n };\n const OBJECT = {\n begin: /\\{/,\n end: /\\}/,\n contains: [\n {\n className: 'attr',\n begin: /\"/,\n end: /\"/,\n contains: [hljs.BACKSLASH_ESCAPE],\n illegal: '\\\\n'\n },\n hljs.inherit(VALUE_CONTAINER, {\n begin: /:/\n })\n ].concat(ALLOWED_COMMENTS),\n illegal: '\\\\S'\n };\n const ARRAY = {\n begin: '\\\\[',\n end: '\\\\]',\n contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents\n illegal: '\\\\S'\n };\n TYPES.push(OBJECT, ARRAY);\n ALLOWED_COMMENTS.forEach(function(rule) {\n TYPES.push(rule);\n });\n return {\n name: 'JSON',\n contains: TYPES,\n keywords: LITERALS,\n illegal: '\\\\S'\n };\n}\n\nmodule.exports = json;\n","/*\nLanguage: Julia\nDescription: Julia is a high-level, high-performance, dynamic programming language.\nAuthor: Kenta Sato <bicycle1885@gmail.com>\nContributors: Alex Arslan <ararslan@comcast.net>, Fredrik Ekre <ekrefredrik@gmail.com>\nWebsite: https://julialang.org\n*/\n\nfunction julia(hljs) {\n // Since there are numerous special names in Julia, it is too much trouble\n // to maintain them by hand. Hence these names (i.e. keywords, literals and\n // built-ins) are automatically generated from Julia 1.5.2 itself through\n // the following scripts for each.\n\n // ref: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names\n var VARIABLE_NAME_RE = '[A-Za-z_\\\\u00A1-\\\\uFFFF][A-Za-z_0-9\\\\u00A1-\\\\uFFFF]*';\n\n // # keyword generator, multi-word keywords handled manually below (Julia 1.5.2)\n // import REPL.REPLCompletions\n // res = String[\"in\", \"isa\", \"where\"]\n // for kw in collect(x.keyword for x in REPLCompletions.complete_keyword(\"\"))\n // if !(contains(kw, \" \") || kw == \"struct\")\n // push!(res, kw)\n // end\n // end\n // sort!(unique!(res))\n // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n var KEYWORD_LIST = [\n 'baremodule',\n 'begin',\n 'break',\n 'catch',\n 'ccall',\n 'const',\n 'continue',\n 'do',\n 'else',\n 'elseif',\n 'end',\n 'export',\n 'false',\n 'finally',\n 'for',\n 'function',\n 'global',\n 'if',\n 'import',\n 'in',\n 'isa',\n 'let',\n 'local',\n 'macro',\n 'module',\n 'quote',\n 'return',\n 'true',\n 'try',\n 'using',\n 'where',\n 'while',\n ];\n\n // # literal generator (Julia 1.5.2)\n // import REPL.REPLCompletions\n // res = String[\"true\", \"false\"]\n // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),\n // REPLCompletions.completions(\"\", 0)[1])\n // try\n // v = eval(Symbol(compl.mod))\n // if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)\n // push!(res, compl.mod)\n // end\n // catch e\n // end\n // end\n // sort!(unique!(res))\n // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n var LITERAL_LIST = [\n 'ARGS',\n 'C_NULL',\n 'DEPOT_PATH',\n 'ENDIAN_BOM',\n 'ENV',\n 'Inf',\n 'Inf16',\n 'Inf32',\n 'Inf64',\n 'InsertionSort',\n 'LOAD_PATH',\n 'MergeSort',\n 'NaN',\n 'NaN16',\n 'NaN32',\n 'NaN64',\n 'PROGRAM_FILE',\n 'QuickSort',\n 'RoundDown',\n 'RoundFromZero',\n 'RoundNearest',\n 'RoundNearestTiesAway',\n 'RoundNearestTiesUp',\n 'RoundToZero',\n 'RoundUp',\n 'VERSION|0',\n 'devnull',\n 'false',\n 'im',\n 'missing',\n 'nothing',\n 'pi',\n 'stderr',\n 'stdin',\n 'stdout',\n 'true',\n 'undef',\n 'Ï€',\n 'ℯ',\n ];\n\n // # built_in generator (Julia 1.5.2)\n // import REPL.REPLCompletions\n // res = String[]\n // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),\n // REPLCompletions.completions(\"\", 0)[1])\n // try\n // v = eval(Symbol(compl.mod))\n // if (v isa Type || v isa TypeVar) && (compl.mod != \"=>\")\n // push!(res, compl.mod)\n // end\n // catch e\n // end\n // end\n // sort!(unique!(res))\n // foreach(x -> println(\"\\'\", x, \"\\',\"), res)\n var BUILT_IN_LIST = [\n 'AbstractArray',\n 'AbstractChannel',\n 'AbstractChar',\n 'AbstractDict',\n 'AbstractDisplay',\n 'AbstractFloat',\n 'AbstractIrrational',\n 'AbstractMatrix',\n 'AbstractRange',\n 'AbstractSet',\n 'AbstractString',\n 'AbstractUnitRange',\n 'AbstractVecOrMat',\n 'AbstractVector',\n 'Any',\n 'ArgumentError',\n 'Array',\n 'AssertionError',\n 'BigFloat',\n 'BigInt',\n 'BitArray',\n 'BitMatrix',\n 'BitSet',\n 'BitVector',\n 'Bool',\n 'BoundsError',\n 'CapturedException',\n 'CartesianIndex',\n 'CartesianIndices',\n 'Cchar',\n 'Cdouble',\n 'Cfloat',\n 'Channel',\n 'Char',\n 'Cint',\n 'Cintmax_t',\n 'Clong',\n 'Clonglong',\n 'Cmd',\n 'Colon',\n 'Complex',\n 'ComplexF16',\n 'ComplexF32',\n 'ComplexF64',\n 'CompositeException',\n 'Condition',\n 'Cptrdiff_t',\n 'Cshort',\n 'Csize_t',\n 'Cssize_t',\n 'Cstring',\n 'Cuchar',\n 'Cuint',\n 'Cuintmax_t',\n 'Culong',\n 'Culonglong',\n 'Cushort',\n 'Cvoid',\n 'Cwchar_t',\n 'Cwstring',\n 'DataType',\n 'DenseArray',\n 'DenseMatrix',\n 'DenseVecOrMat',\n 'DenseVector',\n 'Dict',\n 'DimensionMismatch',\n 'Dims',\n 'DivideError',\n 'DomainError',\n 'EOFError',\n 'Enum',\n 'ErrorException',\n 'Exception',\n 'ExponentialBackOff',\n 'Expr',\n 'Float16',\n 'Float32',\n 'Float64',\n 'Function',\n 'GlobalRef',\n 'HTML',\n 'IO',\n 'IOBuffer',\n 'IOContext',\n 'IOStream',\n 'IdDict',\n 'IndexCartesian',\n 'IndexLinear',\n 'IndexStyle',\n 'InexactError',\n 'InitError',\n 'Int',\n 'Int128',\n 'Int16',\n 'Int32',\n 'Int64',\n 'Int8',\n 'Integer',\n 'InterruptException',\n 'InvalidStateException',\n 'Irrational',\n 'KeyError',\n 'LinRange',\n 'LineNumberNode',\n 'LinearIndices',\n 'LoadError',\n 'MIME',\n 'Matrix',\n 'Method',\n 'MethodError',\n 'Missing',\n 'MissingException',\n 'Module',\n 'NTuple',\n 'NamedTuple',\n 'Nothing',\n 'Number',\n 'OrdinalRange',\n 'OutOfMemoryError',\n 'OverflowError',\n 'Pair',\n 'PartialQuickSort',\n 'PermutedDimsArray',\n 'Pipe',\n 'ProcessFailedException',\n 'Ptr',\n 'QuoteNode',\n 'Rational',\n 'RawFD',\n 'ReadOnlyMemoryError',\n 'Real',\n 'ReentrantLock',\n 'Ref',\n 'Regex',\n 'RegexMatch',\n 'RoundingMode',\n 'SegmentationFault',\n 'Set',\n 'Signed',\n 'Some',\n 'StackOverflowError',\n 'StepRange',\n 'StepRangeLen',\n 'StridedArray',\n 'StridedMatrix',\n 'StridedVecOrMat',\n 'StridedVector',\n 'String',\n 'StringIndexError',\n 'SubArray',\n 'SubString',\n 'SubstitutionString',\n 'Symbol',\n 'SystemError',\n 'Task',\n 'TaskFailedException',\n 'Text',\n 'TextDisplay',\n 'Timer',\n 'Tuple',\n 'Type',\n 'TypeError',\n 'TypeVar',\n 'UInt',\n 'UInt128',\n 'UInt16',\n 'UInt32',\n 'UInt64',\n 'UInt8',\n 'UndefInitializer',\n 'UndefKeywordError',\n 'UndefRefError',\n 'UndefVarError',\n 'Union',\n 'UnionAll',\n 'UnitRange',\n 'Unsigned',\n 'Val',\n 'Vararg',\n 'VecElement',\n 'VecOrMat',\n 'Vector',\n 'VersionNumber',\n 'WeakKeyDict',\n 'WeakRef',\n ];\n\n var KEYWORDS = {\n $pattern: VARIABLE_NAME_RE,\n keyword: KEYWORD_LIST,\n literal: LITERAL_LIST,\n built_in: BUILT_IN_LIST,\n };\n\n // placeholder for recursive self-reference\n var DEFAULT = {\n keywords: KEYWORDS, illegal: /<\\//\n };\n\n // ref: https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/\n var NUMBER = {\n className: 'number',\n // supported numeric literals:\n // * binary literal (e.g. 0x10)\n // * octal literal (e.g. 0o76543210)\n // * hexadecimal literal (e.g. 0xfedcba876543210)\n // * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)\n // * decimal literal (e.g. 9876543210, 100_000_000)\n // * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)\n begin: /(\\b0x[\\d_]*(\\.[\\d_]*)?|0x\\.\\d[\\d_]*)p[-+]?\\d+|\\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\\b\\d[\\d_]*(\\.[\\d_]*)?|\\.\\d[\\d_]*)([eEfF][-+]?\\d+)?/,\n relevance: 0\n };\n\n var CHAR = {\n className: 'string',\n begin: /'(.|\\\\[xXuU][a-zA-Z0-9]+)'/\n };\n\n var INTERPOLATION = {\n className: 'subst',\n begin: /\\$\\(/, end: /\\)/,\n keywords: KEYWORDS\n };\n\n var INTERPOLATED_VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + VARIABLE_NAME_RE\n };\n\n // TODO: neatly escape normal code in string literal\n var STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],\n variants: [\n { begin: /\\w*\"\"\"/, end: /\"\"\"\\w*/, relevance: 10 },\n { begin: /\\w*\"/, end: /\"\\w*/ }\n ]\n };\n\n var COMMAND = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],\n begin: '`', end: '`'\n };\n\n var MACROCALL = {\n className: 'meta',\n begin: '@' + VARIABLE_NAME_RE\n };\n\n var COMMENT = {\n className: 'comment',\n variants: [\n { begin: '#=', end: '=#', relevance: 10 },\n { begin: '#', end: '$' }\n ]\n };\n\n DEFAULT.name = 'Julia';\n DEFAULT.contains = [\n NUMBER,\n CHAR,\n STRING,\n COMMAND,\n MACROCALL,\n COMMENT,\n hljs.HASH_COMMENT_MODE,\n {\n className: 'keyword',\n begin:\n '\\\\b(((abstract|primitive)\\\\s+)type|(mutable\\\\s+)?struct)\\\\b'\n },\n {begin: /<:/} // relevance booster\n ];\n INTERPOLATION.contains = DEFAULT.contains;\n\n return DEFAULT;\n}\n\nmodule.exports = julia;\n","/*\nLanguage: Julia REPL\nDescription: Julia REPL sessions\nAuthor: Morten Piibeleht <morten.piibeleht@gmail.com>\nWebsite: https://julialang.org\nRequires: julia.js\n\nThe Julia REPL code blocks look something like the following:\n\n julia> function foo(x)\n x + 1\n end\n foo (generic function with 1 method)\n\nThey start on a new line with \"julia>\". Usually there should also be a space after this, but\nwe also allow the code to start right after the > character. The code may run over multiple\nlines, but the additional lines must start with six spaces (i.e. be indented to match\n\"julia>\"). The rest of the code is assumed to be output from the executed code and will be\nleft un-highlighted.\n\nUsing simply spaces to identify line continuations may get a false-positive if the output\nalso prints out six spaces, but such cases should be rare.\n*/\n\nfunction juliaRepl(hljs) {\n return {\n name: 'Julia REPL',\n contains: [\n {\n className: 'meta',\n begin: /^julia>/,\n relevance: 10,\n starts: {\n // end the highlighting if we are on a new line and the line does not have at\n // least six spaces in the beginning\n end: /^(?![ ]{6})/,\n subLanguage: 'julia'\n },\n // jldoctest Markdown blocks are used in the Julia manual and package docs indicate\n // code snippets that should be verified when the documentation is built. They can be\n // either REPL-like or script-like, but are usually REPL-like and therefore we apply\n // julia-repl highlighting to them. More information can be found in Documenter's\n // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html\n aliases: ['jldoctest']\n }\n ]\n }\n}\n\nmodule.exports = juliaRepl;\n","// https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10\nvar decimalDigits = '[0-9](_*[0-9])*';\nvar frac = `\\\\.(${decimalDigits})`;\nvar hexDigits = '[0-9a-fA-F](_*[0-9a-fA-F])*';\nvar NUMERIC = {\n className: 'number',\n variants: [\n // DecimalFloatingPointLiteral\n // including ExponentPart\n { begin: `(\\\\b(${decimalDigits})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n // excluding ExponentPart\n { begin: `\\\\b(${decimalDigits})((${frac})[fFdD]?\\\\b|\\\\.([fFdD]\\\\b)?)` },\n { begin: `(${frac})[fFdD]?\\\\b` },\n { begin: `\\\\b(${decimalDigits})[fFdD]\\\\b` },\n\n // HexadecimalFloatingPointLiteral\n { begin: `\\\\b0[xX]((${hexDigits})\\\\.?|(${hexDigits})?\\\\.(${hexDigits}))` +\n `[pP][+-]?(${decimalDigits})[fFdD]?\\\\b` },\n\n // DecimalIntegerLiteral\n { begin: '\\\\b(0|[1-9](_*[0-9])*)[lL]?\\\\b' },\n\n // HexIntegerLiteral\n { begin: `\\\\b0[xX](${hexDigits})[lL]?\\\\b` },\n\n // OctalIntegerLiteral\n { begin: '\\\\b0(_*[0-7])*[lL]?\\\\b' },\n\n // BinaryIntegerLiteral\n { begin: '\\\\b0[bB][01](_*[01])*[lL]?\\\\b' },\n ],\n relevance: 0\n};\n\n/*\n Language: Kotlin\n Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.\n Author: Sergey Mashkov <cy6erGn0m@gmail.com>\n Website: https://kotlinlang.org\n Category: common\n */\n\nfunction kotlin(hljs) {\n const KEYWORDS = {\n keyword:\n 'abstract as val var vararg get set class object open private protected public noinline ' +\n 'crossinline dynamic final enum if else do while for when throw try catch finally ' +\n 'import package is in fun override companion reified inline lateinit init ' +\n 'interface annotation data sealed internal infix operator out by constructor super ' +\n 'tailrec where const inner suspend typealias external expect actual',\n built_in:\n 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',\n literal:\n 'true false null'\n };\n const KEYWORDS_WITH_LABEL = {\n className: 'keyword',\n begin: /\\b(break|continue|return|this)\\b/,\n starts: {\n contains: [\n {\n className: 'symbol',\n begin: /@\\w+/\n }\n ]\n }\n };\n const LABEL = {\n className: 'symbol',\n begin: hljs.UNDERSCORE_IDENT_RE + '@'\n };\n\n // for string templates\n const SUBST = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n contains: [ hljs.C_NUMBER_MODE ]\n };\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.UNDERSCORE_IDENT_RE\n };\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"(?=[^\"])',\n contains: [\n VARIABLE,\n SUBST\n ]\n },\n // Can't use built-in modes easily, as we want to use STRING in the meta\n // context as 'meta-string' and there's no syntax to remove explicitly set\n // classNames in built-in modes.\n {\n begin: '\\'',\n end: '\\'',\n illegal: /\\n/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"',\n illegal: /\\n/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE,\n SUBST\n ]\n }\n ]\n };\n SUBST.contains.push(STRING);\n\n const ANNOTATION_USE_SITE = {\n className: 'meta',\n begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'\n };\n const ANNOTATION = {\n className: 'meta',\n begin: '@' + hljs.UNDERSCORE_IDENT_RE,\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n hljs.inherit(STRING, {\n className: 'meta-string'\n })\n ]\n }\n ]\n };\n\n // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals\n // According to the doc above, the number mode of kotlin is the same as java 8,\n // so the code below is copied from java.js\n const KOTLIN_NUMBER_MODE = NUMERIC;\n const KOTLIN_NESTED_COMMENT = hljs.COMMENT(\n '/\\\\*', '\\\\*/',\n {\n contains: [ hljs.C_BLOCK_COMMENT_MODE ]\n }\n );\n const KOTLIN_PAREN_TYPE = {\n variants: [\n {\n className: 'type',\n begin: hljs.UNDERSCORE_IDENT_RE\n },\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [] // defined later\n }\n ]\n };\n const KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;\n KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];\n KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];\n\n return {\n name: 'Kotlin',\n aliases: [ 'kt', 'kts' ],\n keywords: KEYWORDS,\n contains: [\n hljs.COMMENT(\n '/\\\\*\\\\*',\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n KEYWORDS_WITH_LABEL,\n LABEL,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n {\n className: 'function',\n beginKeywords: 'fun',\n end: '[(]|$',\n returnBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n relevance: 5,\n contains: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s*\\\\(',\n returnBegin: true,\n relevance: 0,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'type',\n begin: /</,\n end: />/,\n keywords: 'reified',\n relevance: 0\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n endsParent: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n begin: /:/,\n end: /[=,\\/]/,\n endsWithParent: true,\n contains: [\n KOTLIN_PAREN_TYPE,\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT\n ],\n relevance: 0\n },\n hljs.C_LINE_COMMENT_MODE,\n KOTLIN_NESTED_COMMENT,\n ANNOTATION_USE_SITE,\n ANNOTATION,\n STRING,\n hljs.C_NUMBER_MODE\n ]\n },\n KOTLIN_NESTED_COMMENT\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface trait', // remove 'trait' when removed from KEYWORDS\n end: /[:\\{(]|$/,\n excludeEnd: true,\n illegal: 'extends implements',\n contains: [\n {\n beginKeywords: 'public protected internal private constructor'\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'type',\n begin: /</,\n end: />/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n {\n className: 'type',\n begin: /[,:]\\s*/,\n end: /[<\\(,]|$/,\n excludeBegin: true,\n returnEnd: true\n },\n ANNOTATION_USE_SITE,\n ANNOTATION\n ]\n },\n STRING,\n {\n className: 'meta',\n begin: \"^#!/usr/bin/env\",\n end: '$',\n illegal: '\\n'\n },\n KOTLIN_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = kotlin;\n","/*\nLanguage: Lasso\nAuthor: Eric Knibbe <eric@lassosoft.com>\nDescription: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.\nWebsite: http://www.lassosoft.com/What-Is-Lasso\n*/\n\nfunction lasso(hljs) {\n const LASSO_IDENT_RE = '[a-zA-Z_][\\\\w.]*';\n const LASSO_ANGLE_RE = '<\\\\?(lasso(script)?|=)';\n const LASSO_CLOSE_RE = '\\\\]|\\\\?>';\n const LASSO_KEYWORDS = {\n $pattern: LASSO_IDENT_RE + '|&[lg]t;',\n literal:\n 'true false none minimal full all void and or not ' +\n 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',\n built_in:\n 'array date decimal duration integer map pair string tag xml null ' +\n 'boolean bytes keyword list locale queue set stack staticarray ' +\n 'local var variable global data self inherited currentcapture givenblock',\n keyword:\n 'cache database_names database_schemanames database_tablenames ' +\n 'define_tag define_type email_batch encode_set html_comment handle ' +\n 'handle_error header if inline iterate ljax_target link ' +\n 'link_currentaction link_currentgroup link_currentrecord link_detail ' +\n 'link_firstgroup link_firstrecord link_lastgroup link_lastrecord ' +\n 'link_nextgroup link_nextrecord link_prevgroup link_prevrecord log ' +\n 'loop namespace_using output_none portal private protect records ' +\n 'referer referrer repeating resultset rows search_args ' +\n 'search_arguments select sort_args sort_arguments thread_atomic ' +\n 'value_list while abort case else fail_if fail_ifnot fail if_empty ' +\n 'if_false if_null if_true loop_abort loop_continue loop_count params ' +\n 'params_up return return_value run_children soap_definetag ' +\n 'soap_lastrequest soap_lastresponse tag_name ascending average by ' +\n 'define descending do equals frozen group handle_failure import in ' +\n 'into join let match max min on order parent protected provide public ' +\n 'require returnhome skip split_thread sum take thread to trait type ' +\n 'where with yield yieldhome'\n };\n const HTML_COMMENT = hljs.COMMENT(\n '<!--',\n '-->',\n {\n relevance: 0\n }\n );\n const LASSO_NOPROCESS = {\n className: 'meta',\n begin: '\\\\[noprocess\\\\]',\n starts: {\n end: '\\\\[/noprocess\\\\]',\n returnEnd: true,\n contains: [HTML_COMMENT]\n }\n };\n const LASSO_START = {\n className: 'meta',\n begin: '\\\\[/noprocess|' + LASSO_ANGLE_RE\n };\n const LASSO_DATAMEMBER = {\n className: 'symbol',\n begin: '\\'' + LASSO_IDENT_RE + '\\''\n };\n const LASSO_CODE = [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.inherit(hljs.C_NUMBER_MODE, {\n begin: hljs.C_NUMBER_RE + '|(-?infinity|NaN)\\\\b'\n }),\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n }),\n {\n className: 'string',\n begin: '`',\n end: '`'\n },\n { // variables\n variants: [\n {\n begin: '[#$]' + LASSO_IDENT_RE\n },\n {\n begin: '#',\n end: '\\\\d+',\n illegal: '\\\\W'\n }\n ]\n },\n {\n className: 'type',\n begin: '::\\\\s*',\n end: LASSO_IDENT_RE,\n illegal: '\\\\W'\n },\n {\n className: 'params',\n variants: [\n {\n begin: '-(?!infinity)' + LASSO_IDENT_RE,\n relevance: 0\n },\n {\n begin: '(\\\\.\\\\.\\\\.)'\n }\n ]\n },\n {\n begin: /(->|\\.)\\s*/,\n relevance: 0,\n contains: [LASSO_DATAMEMBER]\n },\n {\n className: 'class',\n beginKeywords: 'define',\n returnEnd: true,\n end: '\\\\(|=>',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: LASSO_IDENT_RE + '(=(?!>))?|[-+*/%](?!>)'\n })\n ]\n }\n ];\n return {\n name: 'Lasso',\n aliases: [\n 'ls',\n 'lassoscript'\n ],\n case_insensitive: true,\n keywords: LASSO_KEYWORDS,\n contains: [\n {\n className: 'meta',\n begin: LASSO_CLOSE_RE,\n relevance: 0,\n starts: { // markup\n end: '\\\\[|' + LASSO_ANGLE_RE,\n returnEnd: true,\n relevance: 0,\n contains: [HTML_COMMENT]\n }\n },\n LASSO_NOPROCESS,\n LASSO_START,\n {\n className: 'meta',\n begin: '\\\\[no_square_brackets',\n starts: {\n end: '\\\\[/no_square_brackets\\\\]', // not implemented in the language\n keywords: LASSO_KEYWORDS,\n contains: [\n {\n className: 'meta',\n begin: LASSO_CLOSE_RE,\n relevance: 0,\n starts: {\n end: '\\\\[noprocess\\\\]|' + LASSO_ANGLE_RE,\n returnEnd: true,\n contains: [HTML_COMMENT]\n }\n },\n LASSO_NOPROCESS,\n LASSO_START\n ].concat(LASSO_CODE)\n }\n },\n {\n className: 'meta',\n begin: '\\\\[',\n relevance: 0\n },\n {\n className: 'meta',\n begin: '^#!',\n end: 'lasso9$',\n relevance: 10\n }\n ].concat(LASSO_CODE)\n };\n}\n\nmodule.exports = lasso;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: LaTeX\nAuthor: Benedikt Wilde <bwilde@posteo.de>\nWebsite: https://www.latex-project.org\nCategory: markup\n*/\n\n/** @type LanguageFn */\nfunction latex(hljs) {\n const KNOWN_CONTROL_WORDS = either(...[\n '(?:NeedsTeXFormat|RequirePackage|GetIdInfo)',\n 'Provides(?:Expl)?(?:Package|Class|File)',\n '(?:DeclareOption|ProcessOptions)',\n '(?:documentclass|usepackage|input|include)',\n 'makeat(?:letter|other)',\n 'ExplSyntax(?:On|Off)',\n '(?:new|renew|provide)?command',\n '(?:re)newenvironment',\n '(?:New|Renew|Provide|Declare)(?:Expandable)?DocumentCommand',\n '(?:New|Renew|Provide|Declare)DocumentEnvironment',\n '(?:(?:e|g|x)?def|let)',\n '(?:begin|end)',\n '(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph)',\n 'caption',\n '(?:label|(?:eq|page|name)?ref|(?:paren|foot|super)?cite)',\n '(?:alpha|beta|[Gg]amma|[Dd]elta|(?:var)?epsilon|zeta|eta|[Tt]heta|vartheta)',\n '(?:iota|(?:var)?kappa|[Ll]ambda|mu|nu|[Xx]i|[Pp]i|varpi|(?:var)rho)',\n '(?:[Ss]igma|varsigma|tau|[Uu]psilon|[Pp]hi|varphi|chi|[Pp]si|[Oo]mega)',\n '(?:frac|sum|prod|lim|infty|times|sqrt|leq|geq|left|right|middle|[bB]igg?)',\n '(?:[lr]angle|q?quad|[lcvdi]?dots|d?dot|hat|tilde|bar)'\n ].map(word => word + '(?![a-zA-Z@:_])'));\n const L3_REGEX = new RegExp([\n // A function \\module_function_name:signature or \\__module_function_name:signature,\n // where both module and function_name need at least two characters and\n // function_name may contain single underscores.\n '(?:__)?[a-zA-Z]{2,}_[a-zA-Z](?:_?[a-zA-Z])+:[a-zA-Z]*',\n // A variable \\scope_module_and_name_type or \\scope__module_ane_name_type,\n // where scope is one of l, g or c, type needs at least two characters\n // and module_and_name may contain single underscores.\n '[lgc]__?[a-zA-Z](?:_?[a-zA-Z])*_[a-zA-Z]{2,}',\n // A quark \\q_the_name or \\q__the_name or\n // scan mark \\s_the_name or \\s__vthe_name,\n // where variable_name needs at least two characters and\n // may contain single underscores.\n '[qs]__?[a-zA-Z](?:_?[a-zA-Z])+',\n // Other LaTeX3 macro names that are not covered by the three rules above.\n 'use(?:_i)?:[a-zA-Z]*',\n '(?:else|fi|or):',\n '(?:if|cs|exp):w',\n '(?:hbox|vbox):n',\n '::[a-zA-Z]_unbraced',\n '::[a-zA-Z:]'\n ].map(pattern => pattern + '(?![a-zA-Z:_])').join('|'));\n const L2_VARIANTS = [\n {begin: /[a-zA-Z@]+/}, // control word\n {begin: /[^a-zA-Z@]?/} // control symbol\n ];\n const DOUBLE_CARET_VARIANTS = [\n {begin: /\\^{6}[0-9a-f]{6}/},\n {begin: /\\^{5}[0-9a-f]{5}/},\n {begin: /\\^{4}[0-9a-f]{4}/},\n {begin: /\\^{3}[0-9a-f]{3}/},\n {begin: /\\^{2}[0-9a-f]{2}/},\n {begin: /\\^{2}[\\u0000-\\u007f]/}\n ];\n const CONTROL_SEQUENCE = {\n className: 'keyword',\n begin: /\\\\/,\n relevance: 0,\n contains: [\n {\n endsParent: true,\n begin: KNOWN_CONTROL_WORDS\n },\n {\n endsParent: true,\n begin: L3_REGEX\n },\n {\n endsParent: true,\n variants: DOUBLE_CARET_VARIANTS\n },\n {\n endsParent: true,\n relevance: 0,\n variants: L2_VARIANTS\n }\n ]\n };\n const MACRO_PARAM = {\n className: 'params',\n relevance: 0,\n begin: /#+\\d?/\n };\n const DOUBLE_CARET_CHAR = {\n // relevance: 1\n variants: DOUBLE_CARET_VARIANTS\n };\n const SPECIAL_CATCODE = {\n className: 'built_in',\n relevance: 0,\n begin: /[$&^_]/\n };\n const MAGIC_COMMENT = {\n className: 'meta',\n begin: '% !TeX',\n end: '$',\n relevance: 10\n };\n const COMMENT = hljs.COMMENT(\n '%',\n '$',\n {\n relevance: 0\n }\n );\n const EVERYTHING_BUT_VERBATIM = [\n CONTROL_SEQUENCE,\n MACRO_PARAM,\n DOUBLE_CARET_CHAR,\n SPECIAL_CATCODE,\n MAGIC_COMMENT,\n COMMENT\n ];\n const BRACE_GROUP_NO_VERBATIM = {\n begin: /\\{/, end: /\\}/,\n relevance: 0,\n contains: ['self', ...EVERYTHING_BUT_VERBATIM]\n };\n const ARGUMENT_BRACES = hljs.inherit(\n BRACE_GROUP_NO_VERBATIM,\n {\n relevance: 0,\n endsParent: true,\n contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]\n }\n );\n const ARGUMENT_BRACKETS = {\n begin: /\\[/,\n end: /\\]/,\n endsParent: true,\n relevance: 0,\n contains: [BRACE_GROUP_NO_VERBATIM, ...EVERYTHING_BUT_VERBATIM]\n };\n const SPACE_GOBBLER = {\n begin: /\\s+/,\n relevance: 0\n };\n const ARGUMENT_M = [ARGUMENT_BRACES];\n const ARGUMENT_O = [ARGUMENT_BRACKETS];\n const ARGUMENT_AND_THEN = function(arg, starts_mode) {\n return {\n contains: [SPACE_GOBBLER],\n starts: {\n relevance: 0,\n contains: arg,\n starts: starts_mode\n }\n };\n };\n const CSNAME = function(csname, starts_mode) {\n return {\n begin: '\\\\\\\\' + csname + '(?![a-zA-Z@:_])',\n keywords: {$pattern: /\\\\[a-zA-Z]+/, keyword: '\\\\' + csname},\n relevance: 0,\n contains: [SPACE_GOBBLER],\n starts: starts_mode\n };\n };\n const BEGIN_ENV = function(envname, starts_mode) {\n return hljs.inherit(\n {\n begin: '\\\\\\\\begin(?=[ \\t]*(\\\\r?\\\\n[ \\t]*)?\\\\{' + envname + '\\\\})',\n keywords: {$pattern: /\\\\[a-zA-Z]+/, keyword: '\\\\begin'},\n relevance: 0,\n },\n ARGUMENT_AND_THEN(ARGUMENT_M, starts_mode)\n );\n };\n const VERBATIM_DELIMITED_EQUAL = (innerName = \"string\") => {\n return hljs.END_SAME_AS_BEGIN({\n className: innerName,\n begin: /(.|\\r?\\n)/,\n end: /(.|\\r?\\n)/,\n excludeBegin: true,\n excludeEnd: true,\n endsParent: true\n });\n };\n const VERBATIM_DELIMITED_ENV = function(envname) {\n return {\n className: 'string',\n end: '(?=\\\\\\\\end\\\\{' + envname + '\\\\})'\n };\n };\n\n const VERBATIM_DELIMITED_BRACES = (innerName = \"string\") => {\n return {\n relevance: 0,\n begin: /\\{/,\n starts: {\n endsParent: true,\n contains: [\n {\n className: innerName,\n end: /(?=\\})/,\n endsParent:true,\n contains: [\n {\n begin: /\\{/,\n end: /\\}/,\n relevance: 0,\n contains: [\"self\"]\n }\n ],\n }\n ]\n }\n };\n };\n const VERBATIM = [\n ...['verb', 'lstinline'].map(csname => CSNAME(csname, {contains: [VERBATIM_DELIMITED_EQUAL()]})),\n CSNAME('mint', ARGUMENT_AND_THEN(ARGUMENT_M, {contains: [VERBATIM_DELIMITED_EQUAL()]})),\n CSNAME('mintinline', ARGUMENT_AND_THEN(ARGUMENT_M, {contains: [VERBATIM_DELIMITED_BRACES(), VERBATIM_DELIMITED_EQUAL()]})),\n CSNAME('url', {contains: [VERBATIM_DELIMITED_BRACES(\"link\"), VERBATIM_DELIMITED_BRACES(\"link\")]}),\n CSNAME('hyperref', {contains: [VERBATIM_DELIMITED_BRACES(\"link\")]}),\n CSNAME('href', ARGUMENT_AND_THEN(ARGUMENT_O, {contains: [VERBATIM_DELIMITED_BRACES(\"link\")]})),\n ...[].concat(...['', '\\\\*'].map(suffix => [\n BEGIN_ENV('verbatim' + suffix, VERBATIM_DELIMITED_ENV('verbatim' + suffix)),\n BEGIN_ENV('filecontents' + suffix, ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV('filecontents' + suffix))),\n ...['', 'B', 'L'].map(prefix =>\n BEGIN_ENV(prefix + 'Verbatim' + suffix, ARGUMENT_AND_THEN(ARGUMENT_O, VERBATIM_DELIMITED_ENV(prefix + 'Verbatim' + suffix)))\n )\n ])),\n BEGIN_ENV('minted', ARGUMENT_AND_THEN(ARGUMENT_O, ARGUMENT_AND_THEN(ARGUMENT_M, VERBATIM_DELIMITED_ENV('minted')))),\n ];\n\n return {\n name: 'LaTeX',\n aliases: ['tex'],\n contains: [\n ...VERBATIM,\n ...EVERYTHING_BUT_VERBATIM\n ]\n };\n}\n\nmodule.exports = latex;\n","/*\nLanguage: LDIF\nContributors: Jacob Childress <jacobc@gmail.com>\nCategory: enterprise, config\nWebsite: https://en.wikipedia.org/wiki/LDAP_Data_Interchange_Format\n*/\nfunction ldif(hljs) {\n return {\n name: 'LDIF',\n contains: [\n {\n className: 'attribute',\n begin: '^dn',\n end: ': ',\n excludeEnd: true,\n starts: {\n end: '$',\n relevance: 0\n },\n relevance: 10\n },\n {\n className: 'attribute',\n begin: '^\\\\w',\n end: ': ',\n excludeEnd: true,\n starts: {\n end: '$',\n relevance: 0\n }\n },\n {\n className: 'literal',\n begin: '^-',\n end: '$'\n },\n hljs.HASH_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = ldif;\n","/*\nLanguage: Leaf\nAuthor: Hale Chan <halechan@qq.com>\nDescription: Based on the Leaf reference from https://vapor.github.io/documentation/guide/leaf.html.\n*/\n\nfunction leaf(hljs) {\n return {\n name: 'Leaf',\n contains: [\n {\n className: 'function',\n begin: '#+' + '[A-Za-z_0-9]*' + '\\\\(',\n end: / \\{/,\n returnBegin: true,\n excludeEnd: true,\n contains: [\n {\n className: 'keyword',\n begin: '#+'\n },\n {\n className: 'title',\n begin: '[A-Za-z_][A-Za-z_0-9]*'\n },\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n endsParent: true,\n contains: [\n {\n className: 'string',\n begin: '\"',\n end: '\"'\n },\n {\n className: 'variable',\n begin: '[A-Za-z_][A-Za-z_0-9]*'\n }\n ]\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = leaf;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n className: 'meta',\n begin: '!important'\n },\n HEXCOLOR: {\n className: 'number',\n begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n },\n ATTRIBUTE_SELECTOR_MODE: {\n className: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'auto',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'border',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'clear',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'content',\n 'counter-increment',\n 'counter-reset',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-variant-ligatures',\n 'font-variation-settings',\n 'font-weight',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inherit',\n 'initial',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'max-height',\n 'max-width',\n 'min-height',\n 'min-width',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-last',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-indent',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'white-space',\n 'widows',\n 'width',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n// some grammars use them all as a single group\nconst PSEUDO_SELECTORS = PSEUDO_CLASSES.concat(PSEUDO_ELEMENTS);\n\n/*\nLanguage: Less\nDescription: It's CSS, with just a little more.\nAuthor: Max Mikhailov <seven.phases.max@gmail.com>\nWebsite: http://lesscss.org\nCategory: common, css\n*/\n\n/** @type LanguageFn */\nfunction less(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_SELECTORS$1 = PSEUDO_SELECTORS;\n\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[\\\\w-]+'; // yes, Less identifiers may begin with a digit\n const INTERP_IDENT_RE = '(' + IDENT_RE + '|@\\\\{' + IDENT_RE + '\\\\})';\n\n /* Generic Modes */\n\n const RULES = []; const VALUE_MODES = []; // forward def. for recursive modes\n\n const STRING_MODE = function(c) {\n return {\n // Less strings are not multiline (also include '~' for more consistent coloring of \"escaped\" strings)\n className: 'string',\n begin: '~?' + c + '.*?' + c\n };\n };\n\n const IDENT_MODE = function(name, begin, relevance) {\n return {\n className: name,\n begin: begin,\n relevance: relevance\n };\n };\n\n const AT_KEYWORDS = {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n };\n\n const PARENS_MODE = {\n // used only to properly balance nested parens inside mixin call, def. arg list\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_MODES,\n keywords: AT_KEYWORDS,\n relevance: 0\n };\n\n // generic Less highlighter (used almost everywhere except selectors):\n VALUE_MODES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING_MODE(\"'\"),\n STRING_MODE('\"'),\n hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(\n {\n begin: '(url|data-uri)\\\\(',\n starts: {\n className: 'string',\n end: '[\\\\)\\\\n]',\n excludeEnd: true\n }\n },\n modes.HEXCOLOR,\n PARENS_MODE,\n IDENT_MODE('variable', '@@?' + IDENT_RE, 10),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'),\n IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string\n { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):\n className: 'attribute',\n begin: IDENT_RE + '\\\\s*:',\n end: ':',\n returnBegin: true,\n excludeEnd: true\n },\n modes.IMPORTANT\n );\n\n const VALUE_WITH_RULESETS = VALUE_MODES.concat({\n begin: /\\{/,\n end: /\\}/,\n contains: RULES\n });\n\n const MIXIN_GUARD_MODE = {\n beginKeywords: 'when',\n endsWithParent: true,\n contains: [\n {\n beginKeywords: 'and not'\n }\n ].concat(VALUE_MODES) // using this form to override VALUE’s 'function' match\n };\n\n /* Rule-Level Modes */\n\n const RULE_MODE = {\n begin: INTERP_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n end: /[;}]/,\n relevance: 0,\n contains: [\n {\n begin: /-(webkit|moz|ms|o)-/\n },\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n end: /(?=:)/,\n starts: {\n endsWithParent: true,\n illegal: '[<=$]',\n relevance: 0,\n contains: VALUE_MODES\n }\n }\n ]\n };\n\n const AT_RULE_MODE = {\n className: 'keyword',\n begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b',\n starts: {\n end: '[;{}]',\n keywords: AT_KEYWORDS,\n returnEnd: true,\n contains: VALUE_MODES,\n relevance: 0\n }\n };\n\n // variable definitions and calls\n const VAR_RULE_MODE = {\n className: 'variable',\n variants: [\n // using more strict pattern for higher relevance to increase chances of Less detection.\n // this is *the only* Less specific statement used in most of the sources, so...\n // (we’ll still often loose to the css-parser unless there's '//' comment,\n // simply because 1 variable just can't beat 99 properties :)\n {\n begin: '@' + IDENT_RE + '\\\\s*:',\n relevance: 15\n },\n {\n begin: '@' + IDENT_RE\n }\n ],\n starts: {\n end: '[;}]',\n returnEnd: true,\n contains: VALUE_WITH_RULESETS\n }\n };\n\n const SELECTOR_MODE = {\n // first parse unambiguous selectors (i.e. those not starting with tag)\n // then fall into the scary lookahead-discriminator variant.\n // this mode also handles mixin definitions and calls\n variants: [\n {\n begin: '[\\\\.#:&\\\\[>]',\n end: '[;{}]' // mixin calls end with ';'\n },\n {\n begin: INTERP_IDENT_RE,\n end: /\\{/\n }\n ],\n returnBegin: true,\n returnEnd: true,\n illegal: '[<=\\'$\"]',\n relevance: 0,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n MIXIN_GUARD_MODE,\n IDENT_MODE('keyword', 'all\\\\b'),\n IDENT_MODE('variable', '@\\\\{' + IDENT_RE + '\\\\}'), // otherwise it’s identified as tag\n {\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n className: 'selector-tag'\n },\n IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes \"tags\"\n IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),\n IDENT_MODE('selector-class', '\\\\.' + INTERP_IDENT_RE, 0),\n IDENT_MODE('selector-tag', '&', 0),\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: '::(' + PSEUDO_ELEMENTS.join('|') + ')'\n },\n {\n begin: '\\\\(',\n end: '\\\\)',\n contains: VALUE_WITH_RULESETS\n }, // argument list of parametric mixins\n {\n begin: '!important'\n } // eat !important after mixin call or it will be colored as tag\n ]\n };\n\n const PSEUDO_SELECTOR_MODE = {\n begin: IDENT_RE + ':(:)?' + `(${PSEUDO_SELECTORS$1.join('|')})`,\n returnBegin: true,\n contains: [ SELECTOR_MODE ]\n };\n\n RULES.push(\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n AT_RULE_MODE,\n VAR_RULE_MODE,\n PSEUDO_SELECTOR_MODE,\n RULE_MODE,\n SELECTOR_MODE\n );\n\n return {\n name: 'Less',\n case_insensitive: true,\n illegal: '[=>\\'/<($\"]',\n contains: RULES\n };\n}\n\nmodule.exports = less;\n","/*\nLanguage: Lisp\nDescription: Generic lisp syntax\nAuthor: Vasily Polovnyov <vast@whiteants.net>\nCategory: lisp\n*/\n\nfunction lisp(hljs) {\n var LISP_IDENT_RE = '[a-zA-Z_\\\\-+\\\\*\\\\/<=>&#][a-zA-Z0-9_\\\\-+*\\\\/<=>&#!]*';\n var MEC_RE = '\\\\|[^]*?\\\\|';\n var LISP_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+(\\\\.\\\\d+|\\\\/\\\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\\\+|-)?\\\\d+)?';\n var LITERAL = {\n className: 'literal',\n begin: '\\\\b(t{1}|nil)\\\\b'\n };\n var NUMBER = {\n className: 'number',\n variants: [\n {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},\n {begin: '#(b|B)[0-1]+(/[0-1]+)?'},\n {begin: '#(o|O)[0-7]+(/[0-7]+)?'},\n {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},\n {begin: '#(c|C)\\\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\\\)'}\n ]\n };\n var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});\n var COMMENT = hljs.COMMENT(\n ';', '$',\n {\n relevance: 0\n }\n );\n var VARIABLE = {\n begin: '\\\\*', end: '\\\\*'\n };\n var KEYWORD = {\n className: 'symbol',\n begin: '[:&]' + LISP_IDENT_RE\n };\n var IDENT = {\n begin: LISP_IDENT_RE,\n relevance: 0\n };\n var MEC = {\n begin: MEC_RE\n };\n var QUOTED_LIST = {\n begin: '\\\\(', end: '\\\\)',\n contains: ['self', LITERAL, STRING, NUMBER, IDENT]\n };\n var QUOTED = {\n contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],\n variants: [\n {\n begin: '[\\'`]\\\\(', end: '\\\\)'\n },\n {\n begin: '\\\\(quote ', end: '\\\\)',\n keywords: {name: 'quote'}\n },\n {\n begin: '\\'' + MEC_RE\n }\n ]\n };\n var QUOTED_ATOM = {\n variants: [\n {begin: '\\'' + LISP_IDENT_RE},\n {begin: '#\\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}\n ]\n };\n var LIST = {\n begin: '\\\\(\\\\s*', end: '\\\\)'\n };\n var BODY = {\n endsWithParent: true,\n relevance: 0\n };\n LIST.contains = [\n {\n className: 'name',\n variants: [\n {\n begin: LISP_IDENT_RE,\n relevance: 0,\n },\n {begin: MEC_RE}\n ]\n },\n BODY\n ];\n BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];\n\n return {\n name: 'Lisp',\n illegal: /\\S/,\n contains: [\n NUMBER,\n hljs.SHEBANG(),\n LITERAL,\n STRING,\n COMMENT,\n QUOTED,\n QUOTED_ATOM,\n LIST,\n IDENT\n ]\n };\n}\n\nmodule.exports = lisp;\n","/*\nLanguage: LiveCode\nAuthor: Ralf Bitter <rabit@revigniter.com>\nDescription: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.\nVersion: 1.1\nDate: 2019-04-17\nCategory: enterprise\n*/\n\nfunction livecodeserver(hljs) {\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: '\\\\b([gtps][A-Z]{1}[a-zA-Z0-9]*)(\\\\[.+\\\\])?(?:\\\\s*?)'\n },\n {\n begin: '\\\\$_[A-Z]+'\n }\n ],\n relevance: 0\n };\n const COMMENT_MODES = [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('--', '$'),\n hljs.COMMENT('[^:]//', '$')\n ];\n const TITLE1 = hljs.inherit(hljs.TITLE_MODE, {\n variants: [\n {\n begin: '\\\\b_*rig[A-Z][A-Za-z0-9_\\\\-]*'\n },\n {\n begin: '\\\\b_[a-z0-9\\\\-]+'\n }\n ]\n });\n const TITLE2 = hljs.inherit(hljs.TITLE_MODE, {\n begin: '\\\\b([A-Za-z0-9_\\\\-]+)\\\\b'\n });\n return {\n name: 'LiveCode',\n case_insensitive: false,\n keywords: {\n keyword:\n '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +\n 'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +\n 'after byte bytes english the until http forever descending using line real8 with seventh ' +\n 'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +\n 'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +\n 'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +\n 'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +\n 'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +\n 'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +\n 'first ftp integer abbreviated abbr abbrev private case while if ' +\n 'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +\n 'contains ends with begins the keys of keys',\n literal:\n 'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +\n 'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +\n 'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +\n 'quote empty one true return cr linefeed right backslash null seven tab three two ' +\n 'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +\n 'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',\n built_in:\n 'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +\n 'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +\n 'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +\n 'constantNames cos date dateFormat decompress difference directories ' +\n 'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +\n 'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +\n 'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +\n 'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +\n 'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge messageAuthenticationCode messageDigest millisec ' +\n 'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +\n 'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +\n 'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +\n 'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +\n 'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +\n 'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +\n 'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +\n 'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +\n 'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +\n 'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +\n 'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +\n 'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +\n 'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +\n 'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +\n 'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +\n 'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +\n 'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +\n 'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +\n 'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +\n 'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +\n 'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +\n 'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +\n 'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +\n 'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +\n 'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +\n 'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +\n 'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +\n 'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +\n 'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +\n 'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetDriver ' +\n 'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +\n 'libURLSetStatusCallback load extension loadedExtensions multiply socket prepare process post seek rel relative read from process rename ' +\n 'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +\n 'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +\n 'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +\n 'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +\n 'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +\n 'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +\n 'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +\n 'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +\n 'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +\n 'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +\n 'subtract symmetric union unload vectorDotProduct wait write'\n },\n contains: [\n VARIABLE,\n {\n className: 'keyword',\n begin: '\\\\bend\\\\sif\\\\b'\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: '$',\n contains: [\n VARIABLE,\n TITLE2,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE,\n TITLE1\n ]\n },\n {\n className: 'function',\n begin: '\\\\bend\\\\s+',\n end: '$',\n keywords: 'end',\n contains: [\n TITLE2,\n TITLE1\n ],\n relevance: 0\n },\n {\n beginKeywords: 'command on',\n end: '$',\n contains: [\n VARIABLE,\n TITLE2,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE,\n TITLE1\n ]\n },\n {\n className: 'meta',\n variants: [\n {\n begin: '<\\\\?(rev|lc|livecode)',\n relevance: 10\n },\n {\n begin: '<\\\\?'\n },\n {\n begin: '\\\\?>'\n }\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE,\n TITLE1\n ].concat(COMMENT_MODES),\n illegal: ';$|^\\\\[|^=|&|\\\\{'\n };\n}\n\nmodule.exports = livecodeserver;\n","const KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\nconst TYPES = [\n \"Intl\",\n \"DataView\",\n \"Number\",\n \"Math\",\n \"Date\",\n \"String\",\n \"RegExp\",\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Error\",\n \"Symbol\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"Proxy\",\n \"Reflect\",\n \"JSON\",\n \"Promise\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"ArrayBuffer\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n BUILT_IN_VARIABLES,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: LiveScript\nAuthor: Taneli Vatanen <taneli.vatanen@gmail.com>\nContributors: Jen Evers-Corvina <jen@sevvie.net>\nOrigin: coffeescript.js\nDescription: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/\nWebsite: https://livescript.net\nCategory: scripting\n*/\n\nfunction livescript(hljs) {\n const LIVESCRIPT_BUILT_INS = [\n 'npm',\n 'print'\n ];\n const LIVESCRIPT_LITERALS = [\n 'yes',\n 'no',\n 'on',\n 'off',\n 'it',\n 'that',\n 'void'\n ];\n const LIVESCRIPT_KEYWORDS = [\n 'then',\n 'unless',\n 'until',\n 'loop',\n 'of',\n 'by',\n 'when',\n 'and',\n 'or',\n 'is',\n 'isnt',\n 'not',\n 'it',\n 'that',\n 'otherwise',\n 'from',\n 'to',\n 'til',\n 'fallthrough',\n 'case',\n 'enum',\n 'native',\n 'list',\n 'map',\n '__hasProp',\n '__extends',\n '__slice',\n '__bind',\n '__indexOf'\n ];\n const KEYWORDS$1 = {\n keyword: KEYWORDS.concat(LIVESCRIPT_KEYWORDS),\n literal: LITERALS.concat(LIVESCRIPT_LITERALS),\n built_in: BUILT_INS.concat(LIVESCRIPT_BUILT_INS)\n };\n const JS_IDENT_RE = '[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';\n const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n begin: JS_IDENT_RE\n });\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1\n };\n const SUBST_SIMPLE = {\n className: 'subst',\n begin: /#[A-Za-z$_]/,\n end: /(?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,\n keywords: KEYWORDS$1\n };\n const EXPRESSIONS = [\n hljs.BINARY_NUMBER_MODE,\n {\n className: 'number',\n begin: '(\\\\b0[xX][a-fA-F0-9_]+)|(\\\\b\\\\d(\\\\d|_\\\\d)*(\\\\.(\\\\d(\\\\d|_\\\\d)*)?)?(_*[eE]([-+]\\\\d(_\\\\d|\\\\d)*)?)?[_a-z]*)',\n relevance: 0,\n starts: {\n end: '(\\\\s*/)?',\n relevance: 0\n } // a number tries to eat the following slash to prevent treating it as a regexp\n },\n {\n className: 'string',\n variants: [\n {\n begin: /'''/,\n end: /'''/,\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n begin: /\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n SUBST_SIMPLE\n ]\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n SUBST_SIMPLE\n ]\n },\n {\n begin: /\\\\/,\n end: /(\\s|$)/,\n excludeEnd: true\n }\n ]\n },\n {\n className: 'regexp',\n variants: [\n {\n begin: '//',\n end: '//[gim]*',\n contains: [\n SUBST,\n hljs.HASH_COMMENT_MODE\n ]\n },\n {\n // regex can't start with space to parse x / 2 / 3 as two divisions\n // regex can't start with *, and it supports an \"illegal\" in the main mode\n begin: /\\/(?![ *])(\\\\.|[^\\\\\\n])*?\\/[gim]*(?=\\W)/\n }\n ]\n },\n {\n begin: '@' + JS_IDENT_RE\n },\n {\n begin: '``',\n end: '``',\n excludeBegin: true,\n excludeEnd: true,\n subLanguage: 'javascript'\n }\n ];\n SUBST.contains = EXPRESSIONS;\n\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n returnBegin: true,\n /* We need another contained nameless mode to not have every nested\n pair of parens to be called \"params\" */\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: ['self'].concat(EXPRESSIONS)\n }\n ]\n };\n\n const SYMBOLS = {\n begin: '(#=>|=>|\\\\|>>|-?->|!->)'\n };\n\n return {\n name: 'LiveScript',\n aliases: ['ls'],\n keywords: KEYWORDS$1,\n illegal: /\\/\\*/,\n contains: EXPRESSIONS.concat([\n hljs.COMMENT('\\\\/\\\\*', '\\\\*\\\\/'),\n hljs.HASH_COMMENT_MODE,\n SYMBOLS, // relevance booster\n {\n className: 'function',\n contains: [\n TITLE,\n PARAMS\n ],\n returnBegin: true,\n variants: [\n {\n begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?(\\\\(.*\\\\)\\\\s*)?\\\\B->\\\\*?',\n end: '->\\\\*?'\n },\n {\n begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?!?(\\\\(.*\\\\)\\\\s*)?\\\\B[-~]{1,2}>\\\\*?',\n end: '[-~]{1,2}>\\\\*?'\n },\n {\n begin: '(' + JS_IDENT_RE + '\\\\s*(?:=|:=)\\\\s*)?(\\\\(.*\\\\)\\\\s*)?\\\\B!?[-~]{1,2}>\\\\*?',\n end: '!?[-~]{1,2}>\\\\*?'\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class',\n end: '$',\n illegal: /[:=\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends',\n endsWithParent: true,\n illegal: /[:=\"\\[\\]]/,\n contains: [TITLE]\n },\n TITLE\n ]\n },\n {\n begin: JS_IDENT_RE + ':',\n end: ':',\n returnBegin: true,\n returnEnd: true,\n relevance: 0\n }\n ])\n };\n}\n\nmodule.exports = livescript;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: LLVM IR\nAuthor: Michael Rodler <contact@f0rki.at>\nDescription: language used as intermediate representation in the LLVM compiler framework\nWebsite: https://llvm.org/docs/LangRef.html\nCategory: assembler\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction llvm(hljs) {\n const IDENT_RE = /([-a-zA-Z$._][\\w$.-]*)/;\n const TYPE = {\n className: 'type',\n begin: /\\bi\\d+(?=\\s|\\b)/\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n begin: /=/\n };\n const PUNCTUATION = {\n className: 'punctuation',\n relevance: 0,\n begin: /,/\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: /0[xX][a-fA-F0-9]+/ },\n { begin: /-?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?/ }\n ],\n relevance: 0\n };\n const LABEL = {\n className: 'symbol',\n variants: [\n { begin: /^\\s*[a-z]+:/ }, // labels\n ],\n relevance: 0\n };\n const VARIABLE = {\n className: 'variable',\n variants: [\n { begin: concat(/%/, IDENT_RE) },\n { begin: /%\\d+/ },\n { begin: /#\\d+/ },\n ]\n };\n const FUNCTION = {\n className: 'title',\n variants: [\n { begin: concat(/@/, IDENT_RE) },\n { begin: /@\\d+/ },\n { begin: concat(/!/, IDENT_RE) },\n { begin: concat(/!\\d+/, IDENT_RE) },\n // https://llvm.org/docs/LangRef.html#namedmetadatastructure\n // obviously a single digit can also be used in this fashion\n { begin: /!\\d+/ }\n ]\n };\n\n return {\n name: 'LLVM IR',\n // TODO: split into different categories of keywords\n keywords:\n 'begin end true false declare define global ' +\n 'constant private linker_private internal ' +\n 'available_externally linkonce linkonce_odr weak ' +\n 'weak_odr appending dllimport dllexport common ' +\n 'default hidden protected extern_weak external ' +\n 'thread_local zeroinitializer undef null to tail ' +\n 'target triple datalayout volatile nuw nsw nnan ' +\n 'ninf nsz arcp fast exact inbounds align ' +\n 'addrspace section alias module asm sideeffect ' +\n 'gc dbg linker_private_weak attributes blockaddress ' +\n 'initialexec localdynamic localexec prefix unnamed_addr ' +\n 'ccc fastcc coldcc x86_stdcallcc x86_fastcallcc ' +\n 'arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ' +\n 'ptx_kernel intel_ocl_bicc msp430_intrcc spir_func ' +\n 'spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc ' +\n 'cc c signext zeroext inreg sret nounwind ' +\n 'noreturn noalias nocapture byval nest readnone ' +\n 'readonly inlinehint noinline alwaysinline optsize ssp ' +\n 'sspreq noredzone noimplicitfloat naked builtin cold ' +\n 'nobuiltin noduplicate nonlazybind optnone returns_twice ' +\n 'sanitize_address sanitize_memory sanitize_thread sspstrong ' +\n 'uwtable returned type opaque eq ne slt sgt ' +\n 'sle sge ult ugt ule uge oeq one olt ogt ' +\n 'ole oge ord uno ueq une x acq_rel acquire ' +\n 'alignstack atomic catch cleanup filter inteldialect ' +\n 'max min monotonic nand personality release seq_cst ' +\n 'singlethread umax umin unordered xchg add fadd ' +\n 'sub fsub mul fmul udiv sdiv fdiv urem srem ' +\n 'frem shl lshr ashr and or xor icmp fcmp ' +\n 'phi call trunc zext sext fptrunc fpext uitofp ' +\n 'sitofp fptoui fptosi inttoptr ptrtoint bitcast ' +\n 'addrspacecast select va_arg ret br switch invoke ' +\n 'unwind unreachable indirectbr landingpad resume ' +\n 'malloc alloca free load store getelementptr ' +\n 'extractelement insertelement shufflevector getresult ' +\n 'extractvalue insertvalue atomicrmw cmpxchg fence ' +\n 'argmemonly double',\n contains: [\n TYPE,\n // this matches \"empty comments\"...\n // ...because it's far more likely this is a statement terminator in\n // another language than an actual comment\n hljs.COMMENT(/;\\s*$/, null, { relevance: 0 }),\n hljs.COMMENT(/;/, /$/),\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n variants: [\n // Double-quoted string\n { begin: /\"/, end: /[^\\\\]\"/ },\n ]\n },\n FUNCTION,\n PUNCTUATION,\n OPERATOR,\n VARIABLE,\n LABEL,\n NUMBER\n ]\n };\n}\n\nmodule.exports = llvm;\n","/*\nLanguage: LSL (Linden Scripting Language)\nDescription: The Linden Scripting Language is used in Second Life by Linden Labs.\nAuthor: Builder's Brewery <buildersbrewery@gmail.com>\nWebsite: http://wiki.secondlife.com/wiki/LSL_Portal\nCategory: scripting\n*/\n\nfunction lsl(hljs) {\n\n var LSL_STRING_ESCAPE_CHARS = {\n className: 'subst',\n begin: /\\\\[tn\"\\\\]/\n };\n\n var LSL_STRINGS = {\n className: 'string',\n begin: '\"',\n end: '\"',\n contains: [\n LSL_STRING_ESCAPE_CHARS\n ]\n };\n\n var LSL_NUMBERS = {\n className: 'number',\n relevance:0,\n begin: hljs.C_NUMBER_RE\n };\n\n var LSL_CONSTANTS = {\n className: 'literal',\n variants: [\n {\n begin: '\\\\b(PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\\\b'\n },\n {\n begin: '\\\\b(XP_ERROR_(EXPERIENCES_DISABLED|EXPERIENCE_(DISABLED|SUSPENDED)|INVALID_(EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(FOUND|PERMITTED(_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(_OBJECT)?|(DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(_(BY_(LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(PARCEL(_OWNER)?|REGION)))?|CAMERA_(PITCH|DISTANCE|BEHINDNESS_(ANGLE|LAG)|(FOCUS|POSITION)(_(THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(ROOT|SET|ALL_(OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(IVE|_(ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(FWD|BACK|(ROT_)?(LEFT|RIGHT)|UP|DOWN|(ML_)?LBUTTON)|PERMISSION_(RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(_START)?|TELEPORT|MEDIA)|OBJECT_(CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_(ATTACHED|ON_REZ)|NAME|DESC|POS|PRIM_(COUNT|EQUIVALENCE)|RETURN_(PARCEL(_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP(_TAG)?|CREATOR|ATTACHED_(POINT|SLOTS_AVAILABLE)|RENDER_WEIGHT|(BODY_SHAPE|PATHFINDING)_TYPE|(RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(MEMORY|TIME))|TYPE_(INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(DEBUG|PUBLIC)_CHANNEL|ATTACH_(AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](SHOULDER|HAND|FOOT|EAR|EYE|[UL](ARM|LEG)|HIP)|(LEFT|RIGHT)_PEC|HUD_(CENTER_[12]|TOP_(RIGHT|CENTER|LEFT)|BOTTOM(_(RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(BASE|TIP)|[LR]WING|FACE_(JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(ONLINE|NAME|BORN|SIM_(POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(ON_FILE|USED)|REMOTE_DATA_(CHANNEL|REQUEST|REPLY)|PSYS_(PART_(BF_(ZERO|ONE(_MINUS_(DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(START|END)_(COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(RIBBON|WIND|INTERP_(COLOR|SCALE)|BOUNCE|FOLLOW_(SRC|VELOCITY)|TARGET_(POS|LINEAR)|EMISSIVE)_MASK)|SRC_(MAX_AGE|PATTERN|ANGLE_(BEGIN|END)|BURST_(RATE|PART_COUNT|RADIUS|SPEED_(MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(DROP|EXPLODE|ANGLE(_CONE(_EMPTY)?)?)))|VEHICLE_(REFERENCE_FRAME|TYPE_(NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(LINEAR|ANGULAR)_(FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(LINEAR|ANGULAR)_(DEFLECTION_(EFFICIENCY|TIMESCALE)|MOTOR_(DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(EFFICIENCY|TIMESCALE)|BANKING_(EFFICIENCY|MIX|TIMESCALE)|FLAG_(NO_DEFLECTION_UP|LIMIT_(ROLL_ONLY|MOTOR_UP)|HOVER_((WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(ALLOW_UNSIT|ALPHA_MODE(_(BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(_(BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(_(STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(NONE|LOW|MEDIUM|HIGH)|BUMP_(NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(DEFAULT|PLANAR)|SCRIPTED_SIT_ONLY|SCULPT_(TYPE_(SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(MIRROR|INVERT))|PHYSICS(_(SHAPE_(CONVEX|NONE|PRIM|TYPE)))?|(POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIT_TARGET|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(ALT_IMAGE_ENABLE|CONTROLS|(CURRENT|HOME)_URL|AUTO_(LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(WIDTH|HEIGHT)_PIXELS|WHITELIST(_ENABLE)?|PERMS_(INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(STANDARD|MINI)|PERM_(NONE|OWNER|GROUP|ANYONE)|MAX_(URL_LENGTH|WHITELIST_(SIZE|COUNT)|(WIDTH|HEIGHT)_PIXELS)))|MASK_(BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(MEDIA_COMMAND_(STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(ALLOW_(FLY|(GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(GROUP_)?OBJECTS)|USE_(ACCESS_(GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(GROUP|ALL)_OBJECT_ENTRY)|COUNT_(TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(HIDE|DEFAULT)|REGION_FLAG_(ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(METHOD|MIMETYPE|BODY_(MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|SIT_(INVALID_(AGENT|LINK_OBJECT)|NO(T_EXPERIENCE|_(ACCESS|EXPERIENCE_PERMISSION|SIT_TARGET)))|STRING_(TRIM(_(HEAD|TAIL))?)|CLICK_ACTION_(NONE|TOUCH|SIT|BUY|PAY|OPEN(_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(NONE|SCRIPT_MEMORY)|RC_(DATA_FLAGS|DETECT_PHANTOM|GET_(LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(TYPES|AGENTS|(NON)?PHYSICAL|LAND))|RCERR_(CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(ALLOWED_(AGENT|GROUP)_(ADD|REMOVE)|BANNED_AGENT_(ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(COMMAND|CMD_(PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(CMD_((SMOOTH_)?STOP|JUMP)|DESIRED_(TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(_([ABCD]|NONE))?|MAX_(DECEL|TURN_RADIUS|(ACCEL|SPEED)))|PURSUIT_(OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(EVADE_(HIDDEN|SPOTTED)|FAILURE_(DYNAMIC_PATHFINDING_DISABLED|INVALID_(GOAL|START)|NO_(NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(PARCEL_)?UNREACHABLE)|(GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(_(FAST|NONE|SLOW))?|CONTENT_TYPE_(ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(RADIUS|STATIC)|(PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\\\b'\n },\n {\n begin: '\\\\b(FALSE|TRUE)\\\\b'\n },\n {\n begin: '\\\\b(ZERO_ROTATION)\\\\b'\n },\n {\n begin: '\\\\b(EOF|JSON_(ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(GRANTED|DENIED))\\\\b'\n },\n {\n begin: '\\\\b(ZERO_VECTOR|TOUCH_INVALID_(TEXCOORD|VECTOR))\\\\b'\n }\n ]\n };\n\n var LSL_FUNCTIONS = {\n className: 'built_in',\n begin: '\\\\b(ll(AgentInExperience|(Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(Details|ErrorMessage)|ReturnObjectsBy(ID|Owner)|Json(2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(Mag|Norm|Dist)|Rot(Between|2(Euler|Fwd|Left|Up))|(Euler|Axes)2Rot|Whisper|(Region|Owner)?Say|Shout|Listen(Control|Remove)?|Sensor(Repeat|Remove)?|Detected(Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|([GS]et)(AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(Scale|Offset|Rotate)Texture|(Rot)?Target(Remove)?|(Stop)?MoveToTarget|Apply(Rotational)?Impulse|Set(KeyframedMotion|ContentType|RegionPos|(Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(Queueing|Radius)|Vehicle(Type|(Float|Vector|Rotation)Param)|(Touch|Sit)?Text|Camera(Eye|At)Offset|PrimitiveParams|ClickAction|Link(Alpha|Color|PrimitiveParams(Fast)?|Texture(Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get((Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(PrimitiveParams|Number(OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(Details|PermMask|PrimCount)|Parcel(MaxPrims|Details|Prim(Count|Owners))|Attached(List)?|(SPMax|Free|Used)Memory|Region(Name|TimeDilation|FPS|Corner|AgentCount)|Root(Position|Rotation)|UnixTime|(Parcel|Region)Flags|(Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(Prims|NotecardLines|Sides)|Animation(List)?|(Camera|Local)(Pos|Rot)|Vel|Accel|Omega|Time(stamp|OfDay)|(Object|CenterOf)?Mass|MassMKS|Energy|Owner|(Owner)?Key|SunDirection|Texture(Offset|Scale|Rot)|Inventory(Number|Name|Key|Type|Creator|PermMask)|Permissions(Key)?|StartParameter|List(Length|EntryType)|Date|Agent(Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(Name|State))|(Get|Reset|GetAndReset)Time|PlaySound(Slave)?|LoopSound(Master|Slave)?|(Trigger|Stop|Preload)Sound|((Get|Delete)Sub|Insert)String|To(Upper|Lower)|Give(InventoryList|Money)|RezObject|(Stop)?LookAt|Sleep|CollisionFilter|(Take|Release)Controls|DetachFromAvatar|AttachToAvatar(Temp)?|InstantMessage|(GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(Length|Trim)|(Start|Stop)Animation|TargetOmega|Request(Experience)?Permissions|(Create|Break)Link|BreakAllLinks|(Give|Remove)Inventory|Water|PassTouches|Request(Agent|Inventory)Data|TeleportAgent(Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(Axis|Angle)|A(cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(CSV|Integer|Json|Float|String|Key|Vector|Rot|List(Strided)?)|DeleteSubList|List(Statistics|Sort|Randomize|(Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(Slope|Normal|Contour)|GroundRepel|(Set|Remove)VehicleFlags|SitOnLink|(AvatarOn)?(Link)?SitTarget|Script(Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(Integer|String)ToBase64|XorBase64|Log(10)?|Base64To(String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(Load|Release|(E|Une)scape)URL|ParcelMedia(CommandList|Query)|ModPow|MapDestination|(RemoveFrom|AddTo|Reset)Land(Pass|Ban)List|(Set|Clear)CameraParams|HTTP(Request|Response)|TextBox|DetectedTouch(UV|Face|Pos|(N|Bin)ormal|ST)|(MD5|SHA1|DumpList2)String|Request(Secure)?URL|Clear(Prim|Link)Media|(Link)?ParticleSystem|(Get|Request)(Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\\\b'\n };\n\n return {\n name: 'LSL (Linden Scripting Language)',\n illegal: ':',\n contains: [\n LSL_STRINGS,\n {\n className: 'comment',\n variants: [\n hljs.COMMENT('//', '$'),\n hljs.COMMENT('/\\\\*', '\\\\*/')\n ],\n relevance: 0\n },\n LSL_NUMBERS,\n {\n className: 'section',\n variants: [\n {\n begin: '\\\\b(state|default)\\\\b'\n },\n {\n begin: '\\\\b(state_(entry|exit)|touch(_(start|end))?|(land_)?collision(_(start|end))?|timer|listen|(no_)?sensor|control|(not_)?at_(rot_)?target|money|email|experience_permissions(_denied)?|run_time_permissions|changed|attach|dataserver|moving_(start|end)|link_message|(on|object)_rez|remote_data|http_re(sponse|quest)|path_update|transaction_result)\\\\b'\n }\n ]\n },\n LSL_FUNCTIONS,\n LSL_CONSTANTS,\n {\n className: 'type',\n begin: '\\\\b(integer|float|string|key|vector|quaternion|rotation|list)\\\\b'\n }\n ]\n };\n}\n\nmodule.exports = lsl;\n","/*\nLanguage: Lua\nDescription: Lua is a powerful, efficient, lightweight, embeddable scripting language.\nAuthor: Andrew Fedorov <dmmdrs@mail.ru>\nCategory: common, scripting\nWebsite: https://www.lua.org\n*/\n\nfunction lua(hljs) {\n const OPENING_LONG_BRACKET = '\\\\[=*\\\\[';\n const CLOSING_LONG_BRACKET = '\\\\]=*\\\\]';\n const LONG_BRACKETS = {\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: ['self']\n };\n const COMMENTS = [\n hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),\n hljs.COMMENT(\n '--' + OPENING_LONG_BRACKET,\n CLOSING_LONG_BRACKET,\n {\n contains: [LONG_BRACKETS],\n relevance: 10\n }\n )\n ];\n return {\n name: 'Lua',\n keywords: {\n $pattern: hljs.UNDERSCORE_IDENT_RE,\n literal: \"true false nil\",\n keyword: \"and break do else elseif end for goto if in local not or repeat return then until while\",\n built_in:\n // Metatags and globals:\n '_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len ' +\n '__gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert ' +\n // Standard methods and properties:\n 'collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring ' +\n 'module next pairs pcall print rawequal rawget rawset require select setfenv ' +\n 'setmetatable tonumber tostring type unpack xpcall arg self ' +\n // Library methods and properties (one line per library):\n 'coroutine resume yield status wrap create running debug getupvalue ' +\n 'debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv ' +\n 'io lines write close flush open output type read stderr stdin input stdout popen tmpfile ' +\n 'math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan ' +\n 'os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall ' +\n 'string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower ' +\n 'table setn insert getn foreachi maxn foreach concat sort remove'\n },\n contains: COMMENTS.concat([\n {\n className: 'function',\n beginKeywords: 'function',\n end: '\\\\)',\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: '([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'\n }),\n {\n className: 'params',\n begin: '\\\\(',\n endsWithParent: true,\n contains: COMMENTS\n }\n ].concat(COMMENTS)\n },\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: OPENING_LONG_BRACKET,\n end: CLOSING_LONG_BRACKET,\n contains: [LONG_BRACKETS],\n relevance: 5\n }\n ])\n };\n}\n\nmodule.exports = lua;\n","/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Joël Porquet <joel@porquet.org>\nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common\n*/\n\nfunction makefile(hljs) {\n /* Variables: simple (eg $(var)) and special (eg $@) */\n const VARIABLE = {\n className: 'variable',\n variants: [\n {\n begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\$[@%<?\\^\\+\\*]/\n }\n ]\n };\n /* Quoted string with variables inside */\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE\n ]\n };\n /* Function: $(func arg,...) */\n const FUNC = {\n className: 'variable',\n begin: /\\$\\([\\w-]+\\s/,\n end: /\\)/,\n keywords: {\n built_in:\n 'subst patsubst strip findstring filter filter-out sort ' +\n 'word wordlist firstword lastword dir notdir suffix basename ' +\n 'addsuffix addprefix join wildcard realpath abspath error warning ' +\n 'shell origin flavor foreach if or and call eval file value'\n },\n contains: [ VARIABLE ]\n };\n /* Variable assignment */\n const ASSIGNMENT = {\n begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*(?=[:+?]?=)'\n };\n /* Meta targets (.PHONY) */\n const META = {\n className: 'meta',\n begin: /^\\.PHONY:/,\n end: /$/,\n keywords: {\n $pattern: /[\\.\\w]+/,\n 'meta-keyword': '.PHONY'\n }\n };\n /* Targets */\n const TARGET = {\n className: 'section',\n begin: /^[^\\s]+:/,\n end: /$/,\n contains: [ VARIABLE ]\n };\n return {\n name: 'Makefile',\n aliases: [\n 'mk',\n 'mak',\n 'make',\n ],\n keywords: {\n $pattern: /[\\w-]+/,\n keyword: 'define endef undefine ifdef ifndef ifeq ifneq else endif ' +\n 'include -include sinclude override export unexport private vpath'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n VARIABLE,\n QUOTE_STRING,\n FUNC,\n ASSIGNMENT,\n META,\n TARGET\n ]\n };\n}\n\nmodule.exports = makefile;\n","const SYSTEM_SYMBOLS = [\n \"AASTriangle\",\n \"AbelianGroup\",\n \"Abort\",\n \"AbortKernels\",\n \"AbortProtect\",\n \"AbortScheduledTask\",\n \"Above\",\n \"Abs\",\n \"AbsArg\",\n \"AbsArgPlot\",\n \"Absolute\",\n \"AbsoluteCorrelation\",\n \"AbsoluteCorrelationFunction\",\n \"AbsoluteCurrentValue\",\n \"AbsoluteDashing\",\n \"AbsoluteFileName\",\n \"AbsoluteOptions\",\n \"AbsolutePointSize\",\n \"AbsoluteThickness\",\n \"AbsoluteTime\",\n \"AbsoluteTiming\",\n \"AcceptanceThreshold\",\n \"AccountingForm\",\n \"Accumulate\",\n \"Accuracy\",\n \"AccuracyGoal\",\n \"ActionDelay\",\n \"ActionMenu\",\n \"ActionMenuBox\",\n \"ActionMenuBoxOptions\",\n \"Activate\",\n \"Active\",\n \"ActiveClassification\",\n \"ActiveClassificationObject\",\n \"ActiveItem\",\n \"ActivePrediction\",\n \"ActivePredictionObject\",\n \"ActiveStyle\",\n \"AcyclicGraphQ\",\n \"AddOnHelpPath\",\n \"AddSides\",\n \"AddTo\",\n \"AddToSearchIndex\",\n \"AddUsers\",\n \"AdjacencyGraph\",\n \"AdjacencyList\",\n \"AdjacencyMatrix\",\n \"AdjacentMeshCells\",\n \"AdjustmentBox\",\n \"AdjustmentBoxOptions\",\n \"AdjustTimeSeriesForecast\",\n \"AdministrativeDivisionData\",\n \"AffineHalfSpace\",\n \"AffineSpace\",\n \"AffineStateSpaceModel\",\n \"AffineTransform\",\n \"After\",\n \"AggregatedEntityClass\",\n \"AggregationLayer\",\n \"AircraftData\",\n \"AirportData\",\n \"AirPressureData\",\n \"AirTemperatureData\",\n \"AiryAi\",\n \"AiryAiPrime\",\n \"AiryAiZero\",\n \"AiryBi\",\n \"AiryBiPrime\",\n \"AiryBiZero\",\n \"AlgebraicIntegerQ\",\n \"AlgebraicNumber\",\n \"AlgebraicNumberDenominator\",\n \"AlgebraicNumberNorm\",\n \"AlgebraicNumberPolynomial\",\n \"AlgebraicNumberTrace\",\n \"AlgebraicRules\",\n \"AlgebraicRulesData\",\n \"Algebraics\",\n \"AlgebraicUnitQ\",\n \"Alignment\",\n \"AlignmentMarker\",\n \"AlignmentPoint\",\n \"All\",\n \"AllowAdultContent\",\n \"AllowedCloudExtraParameters\",\n \"AllowedCloudParameterExtensions\",\n \"AllowedDimensions\",\n \"AllowedFrequencyRange\",\n \"AllowedHeads\",\n \"AllowGroupClose\",\n \"AllowIncomplete\",\n \"AllowInlineCells\",\n \"AllowKernelInitialization\",\n \"AllowLooseGrammar\",\n \"AllowReverseGroupClose\",\n \"AllowScriptLevelChange\",\n \"AllowVersionUpdate\",\n \"AllTrue\",\n \"Alphabet\",\n \"AlphabeticOrder\",\n \"AlphabeticSort\",\n \"AlphaChannel\",\n \"AlternateImage\",\n \"AlternatingFactorial\",\n \"AlternatingGroup\",\n \"AlternativeHypothesis\",\n \"Alternatives\",\n \"AltitudeMethod\",\n \"AmbientLight\",\n \"AmbiguityFunction\",\n \"AmbiguityList\",\n \"Analytic\",\n \"AnatomyData\",\n \"AnatomyForm\",\n \"AnatomyPlot3D\",\n \"AnatomySkinStyle\",\n \"AnatomyStyling\",\n \"AnchoredSearch\",\n \"And\",\n \"AndersonDarlingTest\",\n \"AngerJ\",\n \"AngleBisector\",\n \"AngleBracket\",\n \"AnglePath\",\n \"AnglePath3D\",\n \"AngleVector\",\n \"AngularGauge\",\n \"Animate\",\n \"AnimationCycleOffset\",\n \"AnimationCycleRepetitions\",\n \"AnimationDirection\",\n \"AnimationDisplayTime\",\n \"AnimationRate\",\n \"AnimationRepetitions\",\n \"AnimationRunning\",\n \"AnimationRunTime\",\n \"AnimationTimeIndex\",\n \"Animator\",\n \"AnimatorBox\",\n \"AnimatorBoxOptions\",\n \"AnimatorElements\",\n \"Annotate\",\n \"Annotation\",\n \"AnnotationDelete\",\n \"AnnotationKeys\",\n \"AnnotationRules\",\n \"AnnotationValue\",\n \"Annuity\",\n \"AnnuityDue\",\n \"Annulus\",\n \"AnomalyDetection\",\n \"AnomalyDetector\",\n \"AnomalyDetectorFunction\",\n \"Anonymous\",\n \"Antialiasing\",\n \"AntihermitianMatrixQ\",\n \"Antisymmetric\",\n \"AntisymmetricMatrixQ\",\n \"Antonyms\",\n \"AnyOrder\",\n \"AnySubset\",\n \"AnyTrue\",\n \"Apart\",\n \"ApartSquareFree\",\n \"APIFunction\",\n \"Appearance\",\n \"AppearanceElements\",\n \"AppearanceRules\",\n \"AppellF1\",\n \"Append\",\n \"AppendCheck\",\n \"AppendLayer\",\n \"AppendTo\",\n \"Apply\",\n \"ApplySides\",\n \"ArcCos\",\n \"ArcCosh\",\n \"ArcCot\",\n \"ArcCoth\",\n \"ArcCsc\",\n \"ArcCsch\",\n \"ArcCurvature\",\n \"ARCHProcess\",\n \"ArcLength\",\n \"ArcSec\",\n \"ArcSech\",\n \"ArcSin\",\n \"ArcSinDistribution\",\n \"ArcSinh\",\n \"ArcTan\",\n \"ArcTanh\",\n \"Area\",\n \"Arg\",\n \"ArgMax\",\n \"ArgMin\",\n \"ArgumentCountQ\",\n \"ARIMAProcess\",\n \"ArithmeticGeometricMean\",\n \"ARMAProcess\",\n \"Around\",\n \"AroundReplace\",\n \"ARProcess\",\n \"Array\",\n \"ArrayComponents\",\n \"ArrayDepth\",\n \"ArrayFilter\",\n \"ArrayFlatten\",\n \"ArrayMesh\",\n \"ArrayPad\",\n \"ArrayPlot\",\n \"ArrayQ\",\n \"ArrayResample\",\n \"ArrayReshape\",\n \"ArrayRules\",\n \"Arrays\",\n \"Arrow\",\n \"Arrow3DBox\",\n \"ArrowBox\",\n \"Arrowheads\",\n \"ASATriangle\",\n \"Ask\",\n \"AskAppend\",\n \"AskConfirm\",\n \"AskDisplay\",\n \"AskedQ\",\n \"AskedValue\",\n \"AskFunction\",\n \"AskState\",\n \"AskTemplateDisplay\",\n \"AspectRatio\",\n \"AspectRatioFixed\",\n \"Assert\",\n \"AssociateTo\",\n \"Association\",\n \"AssociationFormat\",\n \"AssociationMap\",\n \"AssociationQ\",\n \"AssociationThread\",\n \"AssumeDeterministic\",\n \"Assuming\",\n \"Assumptions\",\n \"AstronomicalData\",\n \"Asymptotic\",\n \"AsymptoticDSolveValue\",\n \"AsymptoticEqual\",\n \"AsymptoticEquivalent\",\n \"AsymptoticGreater\",\n \"AsymptoticGreaterEqual\",\n \"AsymptoticIntegrate\",\n \"AsymptoticLess\",\n \"AsymptoticLessEqual\",\n \"AsymptoticOutputTracker\",\n \"AsymptoticProduct\",\n \"AsymptoticRSolveValue\",\n \"AsymptoticSolve\",\n \"AsymptoticSum\",\n \"Asynchronous\",\n \"AsynchronousTaskObject\",\n \"AsynchronousTasks\",\n \"Atom\",\n \"AtomCoordinates\",\n \"AtomCount\",\n \"AtomDiagramCoordinates\",\n \"AtomList\",\n \"AtomQ\",\n \"AttentionLayer\",\n \"Attributes\",\n \"Audio\",\n \"AudioAmplify\",\n \"AudioAnnotate\",\n \"AudioAnnotationLookup\",\n \"AudioBlockMap\",\n \"AudioCapture\",\n \"AudioChannelAssignment\",\n \"AudioChannelCombine\",\n \"AudioChannelMix\",\n \"AudioChannels\",\n \"AudioChannelSeparate\",\n \"AudioData\",\n \"AudioDelay\",\n \"AudioDelete\",\n \"AudioDevice\",\n \"AudioDistance\",\n \"AudioEncoding\",\n \"AudioFade\",\n \"AudioFrequencyShift\",\n \"AudioGenerator\",\n \"AudioIdentify\",\n \"AudioInputDevice\",\n \"AudioInsert\",\n \"AudioInstanceQ\",\n \"AudioIntervals\",\n \"AudioJoin\",\n \"AudioLabel\",\n \"AudioLength\",\n \"AudioLocalMeasurements\",\n \"AudioLooping\",\n \"AudioLoudness\",\n \"AudioMeasurements\",\n \"AudioNormalize\",\n \"AudioOutputDevice\",\n \"AudioOverlay\",\n \"AudioPad\",\n \"AudioPan\",\n \"AudioPartition\",\n \"AudioPause\",\n \"AudioPitchShift\",\n \"AudioPlay\",\n \"AudioPlot\",\n \"AudioQ\",\n \"AudioRecord\",\n \"AudioReplace\",\n \"AudioResample\",\n \"AudioReverb\",\n \"AudioReverse\",\n \"AudioSampleRate\",\n \"AudioSpectralMap\",\n \"AudioSpectralTransformation\",\n \"AudioSplit\",\n \"AudioStop\",\n \"AudioStream\",\n \"AudioStreams\",\n \"AudioTimeStretch\",\n \"AudioTracks\",\n \"AudioTrim\",\n \"AudioType\",\n \"AugmentedPolyhedron\",\n \"AugmentedSymmetricPolynomial\",\n \"Authenticate\",\n \"Authentication\",\n \"AuthenticationDialog\",\n \"AutoAction\",\n \"Autocomplete\",\n \"AutocompletionFunction\",\n \"AutoCopy\",\n \"AutocorrelationTest\",\n \"AutoDelete\",\n \"AutoEvaluateEvents\",\n \"AutoGeneratedPackage\",\n \"AutoIndent\",\n \"AutoIndentSpacings\",\n \"AutoItalicWords\",\n \"AutoloadPath\",\n \"AutoMatch\",\n \"Automatic\",\n \"AutomaticImageSize\",\n \"AutoMultiplicationSymbol\",\n \"AutoNumberFormatting\",\n \"AutoOpenNotebooks\",\n \"AutoOpenPalettes\",\n \"AutoQuoteCharacters\",\n \"AutoRefreshed\",\n \"AutoRemove\",\n \"AutorunSequencing\",\n \"AutoScaling\",\n \"AutoScroll\",\n \"AutoSpacing\",\n \"AutoStyleOptions\",\n \"AutoStyleWords\",\n \"AutoSubmitting\",\n \"Axes\",\n \"AxesEdge\",\n \"AxesLabel\",\n \"AxesOrigin\",\n \"AxesStyle\",\n \"AxiomaticTheory\",\n \"Axis\",\n \"BabyMonsterGroupB\",\n \"Back\",\n \"Background\",\n \"BackgroundAppearance\",\n \"BackgroundTasksSettings\",\n \"Backslash\",\n \"Backsubstitution\",\n \"Backward\",\n \"Ball\",\n \"Band\",\n \"BandpassFilter\",\n \"BandstopFilter\",\n \"BarabasiAlbertGraphDistribution\",\n \"BarChart\",\n \"BarChart3D\",\n \"BarcodeImage\",\n \"BarcodeRecognize\",\n \"BaringhausHenzeTest\",\n \"BarLegend\",\n \"BarlowProschanImportance\",\n \"BarnesG\",\n \"BarOrigin\",\n \"BarSpacing\",\n \"BartlettHannWindow\",\n \"BartlettWindow\",\n \"BaseDecode\",\n \"BaseEncode\",\n \"BaseForm\",\n \"Baseline\",\n \"BaselinePosition\",\n \"BaseStyle\",\n \"BasicRecurrentLayer\",\n \"BatchNormalizationLayer\",\n \"BatchSize\",\n \"BatesDistribution\",\n \"BattleLemarieWavelet\",\n \"BayesianMaximization\",\n \"BayesianMaximizationObject\",\n \"BayesianMinimization\",\n \"BayesianMinimizationObject\",\n \"Because\",\n \"BeckmannDistribution\",\n \"Beep\",\n \"Before\",\n \"Begin\",\n \"BeginDialogPacket\",\n \"BeginFrontEndInteractionPacket\",\n \"BeginPackage\",\n \"BellB\",\n \"BellY\",\n \"Below\",\n \"BenfordDistribution\",\n \"BeniniDistribution\",\n \"BenktanderGibratDistribution\",\n \"BenktanderWeibullDistribution\",\n \"BernoulliB\",\n \"BernoulliDistribution\",\n \"BernoulliGraphDistribution\",\n \"BernoulliProcess\",\n \"BernsteinBasis\",\n \"BesselFilterModel\",\n \"BesselI\",\n \"BesselJ\",\n \"BesselJZero\",\n \"BesselK\",\n \"BesselY\",\n \"BesselYZero\",\n \"Beta\",\n \"BetaBinomialDistribution\",\n \"BetaDistribution\",\n \"BetaNegativeBinomialDistribution\",\n \"BetaPrimeDistribution\",\n \"BetaRegularized\",\n \"Between\",\n \"BetweennessCentrality\",\n \"BeveledPolyhedron\",\n \"BezierCurve\",\n \"BezierCurve3DBox\",\n \"BezierCurve3DBoxOptions\",\n \"BezierCurveBox\",\n \"BezierCurveBoxOptions\",\n \"BezierFunction\",\n \"BilateralFilter\",\n \"Binarize\",\n \"BinaryDeserialize\",\n \"BinaryDistance\",\n \"BinaryFormat\",\n \"BinaryImageQ\",\n \"BinaryRead\",\n \"BinaryReadList\",\n \"BinarySerialize\",\n \"BinaryWrite\",\n \"BinCounts\",\n \"BinLists\",\n \"Binomial\",\n \"BinomialDistribution\",\n \"BinomialProcess\",\n \"BinormalDistribution\",\n \"BiorthogonalSplineWavelet\",\n \"BipartiteGraphQ\",\n \"BiquadraticFilterModel\",\n \"BirnbaumImportance\",\n \"BirnbaumSaundersDistribution\",\n \"BitAnd\",\n \"BitClear\",\n \"BitGet\",\n \"BitLength\",\n \"BitNot\",\n \"BitOr\",\n \"BitSet\",\n \"BitShiftLeft\",\n \"BitShiftRight\",\n \"BitXor\",\n \"BiweightLocation\",\n \"BiweightMidvariance\",\n \"Black\",\n \"BlackmanHarrisWindow\",\n \"BlackmanNuttallWindow\",\n \"BlackmanWindow\",\n \"Blank\",\n \"BlankForm\",\n \"BlankNullSequence\",\n \"BlankSequence\",\n \"Blend\",\n \"Block\",\n \"BlockchainAddressData\",\n \"BlockchainBase\",\n \"BlockchainBlockData\",\n \"BlockchainContractValue\",\n \"BlockchainData\",\n \"BlockchainGet\",\n \"BlockchainKeyEncode\",\n \"BlockchainPut\",\n \"BlockchainTokenData\",\n \"BlockchainTransaction\",\n \"BlockchainTransactionData\",\n \"BlockchainTransactionSign\",\n \"BlockchainTransactionSubmit\",\n \"BlockMap\",\n \"BlockRandom\",\n \"BlomqvistBeta\",\n \"BlomqvistBetaTest\",\n \"Blue\",\n \"Blur\",\n \"BodePlot\",\n \"BohmanWindow\",\n \"Bold\",\n \"Bond\",\n \"BondCount\",\n \"BondList\",\n \"BondQ\",\n \"Bookmarks\",\n \"Boole\",\n \"BooleanConsecutiveFunction\",\n \"BooleanConvert\",\n \"BooleanCountingFunction\",\n \"BooleanFunction\",\n \"BooleanGraph\",\n \"BooleanMaxterms\",\n \"BooleanMinimize\",\n \"BooleanMinterms\",\n \"BooleanQ\",\n \"BooleanRegion\",\n \"Booleans\",\n \"BooleanStrings\",\n \"BooleanTable\",\n \"BooleanVariables\",\n \"BorderDimensions\",\n \"BorelTannerDistribution\",\n \"Bottom\",\n \"BottomHatTransform\",\n \"BoundaryDiscretizeGraphics\",\n \"BoundaryDiscretizeRegion\",\n \"BoundaryMesh\",\n \"BoundaryMeshRegion\",\n \"BoundaryMeshRegionQ\",\n \"BoundaryStyle\",\n \"BoundedRegionQ\",\n \"BoundingRegion\",\n \"Bounds\",\n \"Box\",\n \"BoxBaselineShift\",\n \"BoxData\",\n \"BoxDimensions\",\n \"Boxed\",\n \"Boxes\",\n \"BoxForm\",\n \"BoxFormFormatTypes\",\n \"BoxFrame\",\n \"BoxID\",\n \"BoxMargins\",\n \"BoxMatrix\",\n \"BoxObject\",\n \"BoxRatios\",\n \"BoxRotation\",\n \"BoxRotationPoint\",\n \"BoxStyle\",\n \"BoxWhiskerChart\",\n \"Bra\",\n \"BracketingBar\",\n \"BraKet\",\n \"BrayCurtisDistance\",\n \"BreadthFirstScan\",\n \"Break\",\n \"BridgeData\",\n \"BrightnessEqualize\",\n \"BroadcastStationData\",\n \"Brown\",\n \"BrownForsytheTest\",\n \"BrownianBridgeProcess\",\n \"BrowserCategory\",\n \"BSplineBasis\",\n \"BSplineCurve\",\n \"BSplineCurve3DBox\",\n \"BSplineCurve3DBoxOptions\",\n \"BSplineCurveBox\",\n \"BSplineCurveBoxOptions\",\n \"BSplineFunction\",\n \"BSplineSurface\",\n \"BSplineSurface3DBox\",\n \"BSplineSurface3DBoxOptions\",\n \"BubbleChart\",\n \"BubbleChart3D\",\n \"BubbleScale\",\n \"BubbleSizes\",\n \"BuildingData\",\n \"BulletGauge\",\n \"BusinessDayQ\",\n \"ButterflyGraph\",\n \"ButterworthFilterModel\",\n \"Button\",\n \"ButtonBar\",\n \"ButtonBox\",\n \"ButtonBoxOptions\",\n \"ButtonCell\",\n \"ButtonContents\",\n \"ButtonData\",\n \"ButtonEvaluator\",\n \"ButtonExpandable\",\n \"ButtonFrame\",\n \"ButtonFunction\",\n \"ButtonMargins\",\n \"ButtonMinHeight\",\n \"ButtonNote\",\n \"ButtonNotebook\",\n \"ButtonSource\",\n \"ButtonStyle\",\n \"ButtonStyleMenuListing\",\n \"Byte\",\n \"ByteArray\",\n \"ByteArrayFormat\",\n \"ByteArrayQ\",\n \"ByteArrayToString\",\n \"ByteCount\",\n \"ByteOrdering\",\n \"C\",\n \"CachedValue\",\n \"CacheGraphics\",\n \"CachePersistence\",\n \"CalendarConvert\",\n \"CalendarData\",\n \"CalendarType\",\n \"Callout\",\n \"CalloutMarker\",\n \"CalloutStyle\",\n \"CallPacket\",\n \"CanberraDistance\",\n \"Cancel\",\n \"CancelButton\",\n \"CandlestickChart\",\n \"CanonicalGraph\",\n \"CanonicalizePolygon\",\n \"CanonicalizePolyhedron\",\n \"CanonicalName\",\n \"CanonicalWarpingCorrespondence\",\n \"CanonicalWarpingDistance\",\n \"CantorMesh\",\n \"CantorStaircase\",\n \"Cap\",\n \"CapForm\",\n \"CapitalDifferentialD\",\n \"Capitalize\",\n \"CapsuleShape\",\n \"CaptureRunning\",\n \"CardinalBSplineBasis\",\n \"CarlemanLinearize\",\n \"CarmichaelLambda\",\n \"CaseOrdering\",\n \"Cases\",\n \"CaseSensitive\",\n \"Cashflow\",\n \"Casoratian\",\n \"Catalan\",\n \"CatalanNumber\",\n \"Catch\",\n \"CategoricalDistribution\",\n \"Catenate\",\n \"CatenateLayer\",\n \"CauchyDistribution\",\n \"CauchyWindow\",\n \"CayleyGraph\",\n \"CDF\",\n \"CDFDeploy\",\n \"CDFInformation\",\n \"CDFWavelet\",\n \"Ceiling\",\n \"CelestialSystem\",\n \"Cell\",\n \"CellAutoOverwrite\",\n \"CellBaseline\",\n \"CellBoundingBox\",\n \"CellBracketOptions\",\n \"CellChangeTimes\",\n \"CellContents\",\n \"CellContext\",\n \"CellDingbat\",\n \"CellDynamicExpression\",\n \"CellEditDuplicate\",\n \"CellElementsBoundingBox\",\n \"CellElementSpacings\",\n \"CellEpilog\",\n \"CellEvaluationDuplicate\",\n \"CellEvaluationFunction\",\n \"CellEvaluationLanguage\",\n \"CellEventActions\",\n \"CellFrame\",\n \"CellFrameColor\",\n \"CellFrameLabelMargins\",\n \"CellFrameLabels\",\n \"CellFrameMargins\",\n \"CellGroup\",\n \"CellGroupData\",\n \"CellGrouping\",\n \"CellGroupingRules\",\n \"CellHorizontalScrolling\",\n \"CellID\",\n \"CellLabel\",\n \"CellLabelAutoDelete\",\n \"CellLabelMargins\",\n \"CellLabelPositioning\",\n \"CellLabelStyle\",\n \"CellLabelTemplate\",\n \"CellMargins\",\n \"CellObject\",\n \"CellOpen\",\n \"CellPrint\",\n \"CellProlog\",\n \"Cells\",\n \"CellSize\",\n \"CellStyle\",\n \"CellTags\",\n \"CellularAutomaton\",\n \"CensoredDistribution\",\n \"Censoring\",\n \"Center\",\n \"CenterArray\",\n \"CenterDot\",\n \"CentralFeature\",\n \"CentralMoment\",\n \"CentralMomentGeneratingFunction\",\n \"Cepstrogram\",\n \"CepstrogramArray\",\n \"CepstrumArray\",\n \"CForm\",\n \"ChampernowneNumber\",\n \"ChangeOptions\",\n \"ChannelBase\",\n \"ChannelBrokerAction\",\n \"ChannelDatabin\",\n \"ChannelHistoryLength\",\n \"ChannelListen\",\n \"ChannelListener\",\n \"ChannelListeners\",\n \"ChannelListenerWait\",\n \"ChannelObject\",\n \"ChannelPreSendFunction\",\n \"ChannelReceiverFunction\",\n \"ChannelSend\",\n \"ChannelSubscribers\",\n \"ChanVeseBinarize\",\n \"Character\",\n \"CharacterCounts\",\n \"CharacterEncoding\",\n \"CharacterEncodingsPath\",\n \"CharacteristicFunction\",\n \"CharacteristicPolynomial\",\n \"CharacterName\",\n \"CharacterNormalize\",\n \"CharacterRange\",\n \"Characters\",\n \"ChartBaseStyle\",\n \"ChartElementData\",\n \"ChartElementDataFunction\",\n \"ChartElementFunction\",\n \"ChartElements\",\n \"ChartLabels\",\n \"ChartLayout\",\n \"ChartLegends\",\n \"ChartStyle\",\n \"Chebyshev1FilterModel\",\n \"Chebyshev2FilterModel\",\n \"ChebyshevDistance\",\n \"ChebyshevT\",\n \"ChebyshevU\",\n \"Check\",\n \"CheckAbort\",\n \"CheckAll\",\n \"Checkbox\",\n \"CheckboxBar\",\n \"CheckboxBox\",\n \"CheckboxBoxOptions\",\n \"ChemicalData\",\n \"ChessboardDistance\",\n \"ChiDistribution\",\n \"ChineseRemainder\",\n \"ChiSquareDistribution\",\n \"ChoiceButtons\",\n \"ChoiceDialog\",\n \"CholeskyDecomposition\",\n \"Chop\",\n \"ChromaticityPlot\",\n \"ChromaticityPlot3D\",\n \"ChromaticPolynomial\",\n \"Circle\",\n \"CircleBox\",\n \"CircleDot\",\n \"CircleMinus\",\n \"CirclePlus\",\n \"CirclePoints\",\n \"CircleThrough\",\n \"CircleTimes\",\n \"CirculantGraph\",\n \"CircularOrthogonalMatrixDistribution\",\n \"CircularQuaternionMatrixDistribution\",\n \"CircularRealMatrixDistribution\",\n \"CircularSymplecticMatrixDistribution\",\n \"CircularUnitaryMatrixDistribution\",\n \"Circumsphere\",\n \"CityData\",\n \"ClassifierFunction\",\n \"ClassifierInformation\",\n \"ClassifierMeasurements\",\n \"ClassifierMeasurementsObject\",\n \"Classify\",\n \"ClassPriors\",\n \"Clear\",\n \"ClearAll\",\n \"ClearAttributes\",\n \"ClearCookies\",\n \"ClearPermissions\",\n \"ClearSystemCache\",\n \"ClebschGordan\",\n \"ClickPane\",\n \"Clip\",\n \"ClipboardNotebook\",\n \"ClipFill\",\n \"ClippingStyle\",\n \"ClipPlanes\",\n \"ClipPlanesStyle\",\n \"ClipRange\",\n \"Clock\",\n \"ClockGauge\",\n \"ClockwiseContourIntegral\",\n \"Close\",\n \"Closed\",\n \"CloseKernels\",\n \"ClosenessCentrality\",\n \"Closing\",\n \"ClosingAutoSave\",\n \"ClosingEvent\",\n \"ClosingSaveDialog\",\n \"CloudAccountData\",\n \"CloudBase\",\n \"CloudConnect\",\n \"CloudConnections\",\n \"CloudDeploy\",\n \"CloudDirectory\",\n \"CloudDisconnect\",\n \"CloudEvaluate\",\n \"CloudExport\",\n \"CloudExpression\",\n \"CloudExpressions\",\n \"CloudFunction\",\n \"CloudGet\",\n \"CloudImport\",\n \"CloudLoggingData\",\n \"CloudObject\",\n \"CloudObjectInformation\",\n \"CloudObjectInformationData\",\n \"CloudObjectNameFormat\",\n \"CloudObjects\",\n \"CloudObjectURLType\",\n \"CloudPublish\",\n \"CloudPut\",\n \"CloudRenderingMethod\",\n \"CloudSave\",\n \"CloudShare\",\n \"CloudSubmit\",\n \"CloudSymbol\",\n \"CloudUnshare\",\n \"CloudUserID\",\n \"ClusterClassify\",\n \"ClusterDissimilarityFunction\",\n \"ClusteringComponents\",\n \"ClusteringTree\",\n \"CMYKColor\",\n \"Coarse\",\n \"CodeAssistOptions\",\n \"Coefficient\",\n \"CoefficientArrays\",\n \"CoefficientDomain\",\n \"CoefficientList\",\n \"CoefficientRules\",\n \"CoifletWavelet\",\n \"Collect\",\n \"Colon\",\n \"ColonForm\",\n \"ColorBalance\",\n \"ColorCombine\",\n \"ColorConvert\",\n \"ColorCoverage\",\n \"ColorData\",\n \"ColorDataFunction\",\n \"ColorDetect\",\n \"ColorDistance\",\n \"ColorFunction\",\n \"ColorFunctionScaling\",\n \"Colorize\",\n \"ColorNegate\",\n \"ColorOutput\",\n \"ColorProfileData\",\n \"ColorQ\",\n \"ColorQuantize\",\n \"ColorReplace\",\n \"ColorRules\",\n \"ColorSelectorSettings\",\n \"ColorSeparate\",\n \"ColorSetter\",\n \"ColorSetterBox\",\n \"ColorSetterBoxOptions\",\n \"ColorSlider\",\n \"ColorsNear\",\n \"ColorSpace\",\n \"ColorToneMapping\",\n \"Column\",\n \"ColumnAlignments\",\n \"ColumnBackgrounds\",\n \"ColumnForm\",\n \"ColumnLines\",\n \"ColumnsEqual\",\n \"ColumnSpacings\",\n \"ColumnWidths\",\n \"CombinedEntityClass\",\n \"CombinerFunction\",\n \"CometData\",\n \"CommonDefaultFormatTypes\",\n \"Commonest\",\n \"CommonestFilter\",\n \"CommonName\",\n \"CommonUnits\",\n \"CommunityBoundaryStyle\",\n \"CommunityGraphPlot\",\n \"CommunityLabels\",\n \"CommunityRegionStyle\",\n \"CompanyData\",\n \"CompatibleUnitQ\",\n \"CompilationOptions\",\n \"CompilationTarget\",\n \"Compile\",\n \"Compiled\",\n \"CompiledCodeFunction\",\n \"CompiledFunction\",\n \"CompilerOptions\",\n \"Complement\",\n \"ComplementedEntityClass\",\n \"CompleteGraph\",\n \"CompleteGraphQ\",\n \"CompleteKaryTree\",\n \"CompletionsListPacket\",\n \"Complex\",\n \"ComplexContourPlot\",\n \"Complexes\",\n \"ComplexExpand\",\n \"ComplexInfinity\",\n \"ComplexityFunction\",\n \"ComplexListPlot\",\n \"ComplexPlot\",\n \"ComplexPlot3D\",\n \"ComplexRegionPlot\",\n \"ComplexStreamPlot\",\n \"ComplexVectorPlot\",\n \"ComponentMeasurements\",\n \"ComponentwiseContextMenu\",\n \"Compose\",\n \"ComposeList\",\n \"ComposeSeries\",\n \"CompositeQ\",\n \"Composition\",\n \"CompoundElement\",\n \"CompoundExpression\",\n \"CompoundPoissonDistribution\",\n \"CompoundPoissonProcess\",\n \"CompoundRenewalProcess\",\n \"Compress\",\n \"CompressedData\",\n \"CompressionLevel\",\n \"ComputeUncertainty\",\n \"Condition\",\n \"ConditionalExpression\",\n \"Conditioned\",\n \"Cone\",\n \"ConeBox\",\n \"ConfidenceLevel\",\n \"ConfidenceRange\",\n \"ConfidenceTransform\",\n \"ConfigurationPath\",\n \"ConformAudio\",\n \"ConformImages\",\n \"Congruent\",\n \"ConicHullRegion\",\n \"ConicHullRegion3DBox\",\n \"ConicHullRegionBox\",\n \"ConicOptimization\",\n \"Conjugate\",\n \"ConjugateTranspose\",\n \"Conjunction\",\n \"Connect\",\n \"ConnectedComponents\",\n \"ConnectedGraphComponents\",\n \"ConnectedGraphQ\",\n \"ConnectedMeshComponents\",\n \"ConnectedMoleculeComponents\",\n \"ConnectedMoleculeQ\",\n \"ConnectionSettings\",\n \"ConnectLibraryCallbackFunction\",\n \"ConnectSystemModelComponents\",\n \"ConnesWindow\",\n \"ConoverTest\",\n \"ConsoleMessage\",\n \"ConsoleMessagePacket\",\n \"Constant\",\n \"ConstantArray\",\n \"ConstantArrayLayer\",\n \"ConstantImage\",\n \"ConstantPlusLayer\",\n \"ConstantRegionQ\",\n \"Constants\",\n \"ConstantTimesLayer\",\n \"ConstellationData\",\n \"ConstrainedMax\",\n \"ConstrainedMin\",\n \"Construct\",\n \"Containing\",\n \"ContainsAll\",\n \"ContainsAny\",\n \"ContainsExactly\",\n \"ContainsNone\",\n \"ContainsOnly\",\n \"ContentFieldOptions\",\n \"ContentLocationFunction\",\n \"ContentObject\",\n \"ContentPadding\",\n \"ContentsBoundingBox\",\n \"ContentSelectable\",\n \"ContentSize\",\n \"Context\",\n \"ContextMenu\",\n \"Contexts\",\n \"ContextToFileName\",\n \"Continuation\",\n \"Continue\",\n \"ContinuedFraction\",\n \"ContinuedFractionK\",\n \"ContinuousAction\",\n \"ContinuousMarkovProcess\",\n \"ContinuousTask\",\n \"ContinuousTimeModelQ\",\n \"ContinuousWaveletData\",\n \"ContinuousWaveletTransform\",\n \"ContourDetect\",\n \"ContourGraphics\",\n \"ContourIntegral\",\n \"ContourLabels\",\n \"ContourLines\",\n \"ContourPlot\",\n \"ContourPlot3D\",\n \"Contours\",\n \"ContourShading\",\n \"ContourSmoothing\",\n \"ContourStyle\",\n \"ContraharmonicMean\",\n \"ContrastiveLossLayer\",\n \"Control\",\n \"ControlActive\",\n \"ControlAlignment\",\n \"ControlGroupContentsBox\",\n \"ControllabilityGramian\",\n \"ControllabilityMatrix\",\n \"ControllableDecomposition\",\n \"ControllableModelQ\",\n \"ControllerDuration\",\n \"ControllerInformation\",\n \"ControllerInformationData\",\n \"ControllerLinking\",\n \"ControllerManipulate\",\n \"ControllerMethod\",\n \"ControllerPath\",\n \"ControllerState\",\n \"ControlPlacement\",\n \"ControlsRendering\",\n \"ControlType\",\n \"Convergents\",\n \"ConversionOptions\",\n \"ConversionRules\",\n \"ConvertToBitmapPacket\",\n \"ConvertToPostScript\",\n \"ConvertToPostScriptPacket\",\n \"ConvexHullMesh\",\n \"ConvexPolygonQ\",\n \"ConvexPolyhedronQ\",\n \"ConvolutionLayer\",\n \"Convolve\",\n \"ConwayGroupCo1\",\n \"ConwayGroupCo2\",\n \"ConwayGroupCo3\",\n \"CookieFunction\",\n \"Cookies\",\n \"CoordinateBoundingBox\",\n \"CoordinateBoundingBoxArray\",\n \"CoordinateBounds\",\n \"CoordinateBoundsArray\",\n \"CoordinateChartData\",\n \"CoordinatesToolOptions\",\n \"CoordinateTransform\",\n \"CoordinateTransformData\",\n \"CoprimeQ\",\n \"Coproduct\",\n \"CopulaDistribution\",\n \"Copyable\",\n \"CopyDatabin\",\n \"CopyDirectory\",\n \"CopyFile\",\n \"CopyTag\",\n \"CopyToClipboard\",\n \"CornerFilter\",\n \"CornerNeighbors\",\n \"Correlation\",\n \"CorrelationDistance\",\n \"CorrelationFunction\",\n \"CorrelationTest\",\n \"Cos\",\n \"Cosh\",\n \"CoshIntegral\",\n \"CosineDistance\",\n \"CosineWindow\",\n \"CosIntegral\",\n \"Cot\",\n \"Coth\",\n \"Count\",\n \"CountDistinct\",\n \"CountDistinctBy\",\n \"CounterAssignments\",\n \"CounterBox\",\n \"CounterBoxOptions\",\n \"CounterClockwiseContourIntegral\",\n \"CounterEvaluator\",\n \"CounterFunction\",\n \"CounterIncrements\",\n \"CounterStyle\",\n \"CounterStyleMenuListing\",\n \"CountRoots\",\n \"CountryData\",\n \"Counts\",\n \"CountsBy\",\n \"Covariance\",\n \"CovarianceEstimatorFunction\",\n \"CovarianceFunction\",\n \"CoxianDistribution\",\n \"CoxIngersollRossProcess\",\n \"CoxModel\",\n \"CoxModelFit\",\n \"CramerVonMisesTest\",\n \"CreateArchive\",\n \"CreateCellID\",\n \"CreateChannel\",\n \"CreateCloudExpression\",\n \"CreateDatabin\",\n \"CreateDataStructure\",\n \"CreateDataSystemModel\",\n \"CreateDialog\",\n \"CreateDirectory\",\n \"CreateDocument\",\n \"CreateFile\",\n \"CreateIntermediateDirectories\",\n \"CreateManagedLibraryExpression\",\n \"CreateNotebook\",\n \"CreatePacletArchive\",\n \"CreatePalette\",\n \"CreatePalettePacket\",\n \"CreatePermissionsGroup\",\n \"CreateScheduledTask\",\n \"CreateSearchIndex\",\n \"CreateSystemModel\",\n \"CreateTemporary\",\n \"CreateUUID\",\n \"CreateWindow\",\n \"CriterionFunction\",\n \"CriticalityFailureImportance\",\n \"CriticalitySuccessImportance\",\n \"CriticalSection\",\n \"Cross\",\n \"CrossEntropyLossLayer\",\n \"CrossingCount\",\n \"CrossingDetect\",\n \"CrossingPolygon\",\n \"CrossMatrix\",\n \"Csc\",\n \"Csch\",\n \"CTCLossLayer\",\n \"Cube\",\n \"CubeRoot\",\n \"Cubics\",\n \"Cuboid\",\n \"CuboidBox\",\n \"Cumulant\",\n \"CumulantGeneratingFunction\",\n \"Cup\",\n \"CupCap\",\n \"Curl\",\n \"CurlyDoubleQuote\",\n \"CurlyQuote\",\n \"CurrencyConvert\",\n \"CurrentDate\",\n \"CurrentImage\",\n \"CurrentlySpeakingPacket\",\n \"CurrentNotebookImage\",\n \"CurrentScreenImage\",\n \"CurrentValue\",\n \"Curry\",\n \"CurryApplied\",\n \"CurvatureFlowFilter\",\n \"CurveClosed\",\n \"Cyan\",\n \"CycleGraph\",\n \"CycleIndexPolynomial\",\n \"Cycles\",\n \"CyclicGroup\",\n \"Cyclotomic\",\n \"Cylinder\",\n \"CylinderBox\",\n \"CylindricalDecomposition\",\n \"D\",\n \"DagumDistribution\",\n \"DamData\",\n \"DamerauLevenshteinDistance\",\n \"DampingFactor\",\n \"Darker\",\n \"Dashed\",\n \"Dashing\",\n \"DatabaseConnect\",\n \"DatabaseDisconnect\",\n \"DatabaseReference\",\n \"Databin\",\n \"DatabinAdd\",\n \"DatabinRemove\",\n \"Databins\",\n \"DatabinUpload\",\n \"DataCompression\",\n \"DataDistribution\",\n \"DataRange\",\n \"DataReversed\",\n \"Dataset\",\n \"DatasetDisplayPanel\",\n \"DataStructure\",\n \"DataStructureQ\",\n \"Date\",\n \"DateBounds\",\n \"Dated\",\n \"DateDelimiters\",\n \"DateDifference\",\n \"DatedUnit\",\n \"DateFormat\",\n \"DateFunction\",\n \"DateHistogram\",\n \"DateInterval\",\n \"DateList\",\n \"DateListLogPlot\",\n \"DateListPlot\",\n \"DateListStepPlot\",\n \"DateObject\",\n \"DateObjectQ\",\n \"DateOverlapsQ\",\n \"DatePattern\",\n \"DatePlus\",\n \"DateRange\",\n \"DateReduction\",\n \"DateString\",\n \"DateTicksFormat\",\n \"DateValue\",\n \"DateWithinQ\",\n \"DaubechiesWavelet\",\n \"DavisDistribution\",\n \"DawsonF\",\n \"DayCount\",\n \"DayCountConvention\",\n \"DayHemisphere\",\n \"DaylightQ\",\n \"DayMatchQ\",\n \"DayName\",\n \"DayNightTerminator\",\n \"DayPlus\",\n \"DayRange\",\n \"DayRound\",\n \"DeBruijnGraph\",\n \"DeBruijnSequence\",\n \"Debug\",\n \"DebugTag\",\n \"Decapitalize\",\n \"Decimal\",\n \"DecimalForm\",\n \"DeclareKnownSymbols\",\n \"DeclarePackage\",\n \"Decompose\",\n \"DeconvolutionLayer\",\n \"Decrement\",\n \"Decrypt\",\n \"DecryptFile\",\n \"DedekindEta\",\n \"DeepSpaceProbeData\",\n \"Default\",\n \"DefaultAxesStyle\",\n \"DefaultBaseStyle\",\n \"DefaultBoxStyle\",\n \"DefaultButton\",\n \"DefaultColor\",\n \"DefaultControlPlacement\",\n \"DefaultDuplicateCellStyle\",\n \"DefaultDuration\",\n \"DefaultElement\",\n \"DefaultFaceGridsStyle\",\n \"DefaultFieldHintStyle\",\n \"DefaultFont\",\n \"DefaultFontProperties\",\n \"DefaultFormatType\",\n \"DefaultFormatTypeForStyle\",\n \"DefaultFrameStyle\",\n \"DefaultFrameTicksStyle\",\n \"DefaultGridLinesStyle\",\n \"DefaultInlineFormatType\",\n \"DefaultInputFormatType\",\n \"DefaultLabelStyle\",\n \"DefaultMenuStyle\",\n \"DefaultNaturalLanguage\",\n \"DefaultNewCellStyle\",\n \"DefaultNewInlineCellStyle\",\n \"DefaultNotebook\",\n \"DefaultOptions\",\n \"DefaultOutputFormatType\",\n \"DefaultPrintPrecision\",\n \"DefaultStyle\",\n \"DefaultStyleDefinitions\",\n \"DefaultTextFormatType\",\n \"DefaultTextInlineFormatType\",\n \"DefaultTicksStyle\",\n \"DefaultTooltipStyle\",\n \"DefaultValue\",\n \"DefaultValues\",\n \"Defer\",\n \"DefineExternal\",\n \"DefineInputStreamMethod\",\n \"DefineOutputStreamMethod\",\n \"DefineResourceFunction\",\n \"Definition\",\n \"Degree\",\n \"DegreeCentrality\",\n \"DegreeGraphDistribution\",\n \"DegreeLexicographic\",\n \"DegreeReverseLexicographic\",\n \"DEigensystem\",\n \"DEigenvalues\",\n \"Deinitialization\",\n \"Del\",\n \"DelaunayMesh\",\n \"Delayed\",\n \"Deletable\",\n \"Delete\",\n \"DeleteAnomalies\",\n \"DeleteBorderComponents\",\n \"DeleteCases\",\n \"DeleteChannel\",\n \"DeleteCloudExpression\",\n \"DeleteContents\",\n \"DeleteDirectory\",\n \"DeleteDuplicates\",\n \"DeleteDuplicatesBy\",\n \"DeleteFile\",\n \"DeleteMissing\",\n \"DeleteObject\",\n \"DeletePermissionsKey\",\n \"DeleteSearchIndex\",\n \"DeleteSmallComponents\",\n \"DeleteStopwords\",\n \"DeleteWithContents\",\n \"DeletionWarning\",\n \"DelimitedArray\",\n \"DelimitedSequence\",\n \"Delimiter\",\n \"DelimiterFlashTime\",\n \"DelimiterMatching\",\n \"Delimiters\",\n \"DeliveryFunction\",\n \"Dendrogram\",\n \"Denominator\",\n \"DensityGraphics\",\n \"DensityHistogram\",\n \"DensityPlot\",\n \"DensityPlot3D\",\n \"DependentVariables\",\n \"Deploy\",\n \"Deployed\",\n \"Depth\",\n \"DepthFirstScan\",\n \"Derivative\",\n \"DerivativeFilter\",\n \"DerivedKey\",\n \"DescriptorStateSpace\",\n \"DesignMatrix\",\n \"DestroyAfterEvaluation\",\n \"Det\",\n \"DeviceClose\",\n \"DeviceConfigure\",\n \"DeviceExecute\",\n \"DeviceExecuteAsynchronous\",\n \"DeviceObject\",\n \"DeviceOpen\",\n \"DeviceOpenQ\",\n \"DeviceRead\",\n \"DeviceReadBuffer\",\n \"DeviceReadLatest\",\n \"DeviceReadList\",\n \"DeviceReadTimeSeries\",\n \"Devices\",\n \"DeviceStreams\",\n \"DeviceWrite\",\n \"DeviceWriteBuffer\",\n \"DGaussianWavelet\",\n \"DiacriticalPositioning\",\n \"Diagonal\",\n \"DiagonalizableMatrixQ\",\n \"DiagonalMatrix\",\n \"DiagonalMatrixQ\",\n \"Dialog\",\n \"DialogIndent\",\n \"DialogInput\",\n \"DialogLevel\",\n \"DialogNotebook\",\n \"DialogProlog\",\n \"DialogReturn\",\n \"DialogSymbols\",\n \"Diamond\",\n \"DiamondMatrix\",\n \"DiceDissimilarity\",\n \"DictionaryLookup\",\n \"DictionaryWordQ\",\n \"DifferenceDelta\",\n \"DifferenceOrder\",\n \"DifferenceQuotient\",\n \"DifferenceRoot\",\n \"DifferenceRootReduce\",\n \"Differences\",\n \"DifferentialD\",\n \"DifferentialRoot\",\n \"DifferentialRootReduce\",\n \"DifferentiatorFilter\",\n \"DigitalSignature\",\n \"DigitBlock\",\n \"DigitBlockMinimum\",\n \"DigitCharacter\",\n \"DigitCount\",\n \"DigitQ\",\n \"DihedralAngle\",\n \"DihedralGroup\",\n \"Dilation\",\n \"DimensionalCombinations\",\n \"DimensionalMeshComponents\",\n \"DimensionReduce\",\n \"DimensionReducerFunction\",\n \"DimensionReduction\",\n \"Dimensions\",\n \"DiracComb\",\n \"DiracDelta\",\n \"DirectedEdge\",\n \"DirectedEdges\",\n \"DirectedGraph\",\n \"DirectedGraphQ\",\n \"DirectedInfinity\",\n \"Direction\",\n \"Directive\",\n \"Directory\",\n \"DirectoryName\",\n \"DirectoryQ\",\n \"DirectoryStack\",\n \"DirichletBeta\",\n \"DirichletCharacter\",\n \"DirichletCondition\",\n \"DirichletConvolve\",\n \"DirichletDistribution\",\n \"DirichletEta\",\n \"DirichletL\",\n \"DirichletLambda\",\n \"DirichletTransform\",\n \"DirichletWindow\",\n \"DisableConsolePrintPacket\",\n \"DisableFormatting\",\n \"DiscreteAsymptotic\",\n \"DiscreteChirpZTransform\",\n \"DiscreteConvolve\",\n \"DiscreteDelta\",\n \"DiscreteHadamardTransform\",\n \"DiscreteIndicator\",\n \"DiscreteLimit\",\n \"DiscreteLQEstimatorGains\",\n \"DiscreteLQRegulatorGains\",\n \"DiscreteLyapunovSolve\",\n \"DiscreteMarkovProcess\",\n \"DiscreteMaxLimit\",\n \"DiscreteMinLimit\",\n \"DiscretePlot\",\n \"DiscretePlot3D\",\n \"DiscreteRatio\",\n \"DiscreteRiccatiSolve\",\n \"DiscreteShift\",\n \"DiscreteTimeModelQ\",\n \"DiscreteUniformDistribution\",\n \"DiscreteVariables\",\n \"DiscreteWaveletData\",\n \"DiscreteWaveletPacketTransform\",\n \"DiscreteWaveletTransform\",\n \"DiscretizeGraphics\",\n \"DiscretizeRegion\",\n \"Discriminant\",\n \"DisjointQ\",\n \"Disjunction\",\n \"Disk\",\n \"DiskBox\",\n \"DiskMatrix\",\n \"DiskSegment\",\n \"Dispatch\",\n \"DispatchQ\",\n \"DispersionEstimatorFunction\",\n \"Display\",\n \"DisplayAllSteps\",\n \"DisplayEndPacket\",\n \"DisplayFlushImagePacket\",\n \"DisplayForm\",\n \"DisplayFunction\",\n \"DisplayPacket\",\n \"DisplayRules\",\n \"DisplaySetSizePacket\",\n \"DisplayString\",\n \"DisplayTemporary\",\n \"DisplayWith\",\n \"DisplayWithRef\",\n \"DisplayWithVariable\",\n \"DistanceFunction\",\n \"DistanceMatrix\",\n \"DistanceTransform\",\n \"Distribute\",\n \"Distributed\",\n \"DistributedContexts\",\n \"DistributeDefinitions\",\n \"DistributionChart\",\n \"DistributionDomain\",\n \"DistributionFitTest\",\n \"DistributionParameterAssumptions\",\n \"DistributionParameterQ\",\n \"Dithering\",\n \"Div\",\n \"Divergence\",\n \"Divide\",\n \"DivideBy\",\n \"Dividers\",\n \"DivideSides\",\n \"Divisible\",\n \"Divisors\",\n \"DivisorSigma\",\n \"DivisorSum\",\n \"DMSList\",\n \"DMSString\",\n \"Do\",\n \"DockedCells\",\n \"DocumentGenerator\",\n \"DocumentGeneratorInformation\",\n \"DocumentGeneratorInformationData\",\n \"DocumentGenerators\",\n \"DocumentNotebook\",\n \"DocumentWeightingRules\",\n \"Dodecahedron\",\n \"DomainRegistrationInformation\",\n \"DominantColors\",\n \"DOSTextFormat\",\n \"Dot\",\n \"DotDashed\",\n \"DotEqual\",\n \"DotLayer\",\n \"DotPlusLayer\",\n \"Dotted\",\n \"DoubleBracketingBar\",\n \"DoubleContourIntegral\",\n \"DoubleDownArrow\",\n \"DoubleLeftArrow\",\n \"DoubleLeftRightArrow\",\n \"DoubleLeftTee\",\n \"DoubleLongLeftArrow\",\n \"DoubleLongLeftRightArrow\",\n \"DoubleLongRightArrow\",\n \"DoubleRightArrow\",\n \"DoubleRightTee\",\n \"DoubleUpArrow\",\n \"DoubleUpDownArrow\",\n \"DoubleVerticalBar\",\n \"DoublyInfinite\",\n \"Down\",\n \"DownArrow\",\n \"DownArrowBar\",\n \"DownArrowUpArrow\",\n \"DownLeftRightVector\",\n \"DownLeftTeeVector\",\n \"DownLeftVector\",\n \"DownLeftVectorBar\",\n \"DownRightTeeVector\",\n \"DownRightVector\",\n \"DownRightVectorBar\",\n \"Downsample\",\n \"DownTee\",\n \"DownTeeArrow\",\n \"DownValues\",\n \"DragAndDrop\",\n \"DrawEdges\",\n \"DrawFrontFaces\",\n \"DrawHighlighted\",\n \"Drop\",\n \"DropoutLayer\",\n \"DSolve\",\n \"DSolveValue\",\n \"Dt\",\n \"DualLinearProgramming\",\n \"DualPolyhedron\",\n \"DualSystemsModel\",\n \"DumpGet\",\n \"DumpSave\",\n \"DuplicateFreeQ\",\n \"Duration\",\n \"Dynamic\",\n \"DynamicBox\",\n \"DynamicBoxOptions\",\n \"DynamicEvaluationTimeout\",\n \"DynamicGeoGraphics\",\n \"DynamicImage\",\n \"DynamicLocation\",\n \"DynamicModule\",\n \"DynamicModuleBox\",\n \"DynamicModuleBoxOptions\",\n \"DynamicModuleParent\",\n \"DynamicModuleValues\",\n \"DynamicName\",\n \"DynamicNamespace\",\n \"DynamicReference\",\n \"DynamicSetting\",\n \"DynamicUpdating\",\n \"DynamicWrapper\",\n \"DynamicWrapperBox\",\n \"DynamicWrapperBoxOptions\",\n \"E\",\n \"EarthImpactData\",\n \"EarthquakeData\",\n \"EccentricityCentrality\",\n \"Echo\",\n \"EchoFunction\",\n \"EclipseType\",\n \"EdgeAdd\",\n \"EdgeBetweennessCentrality\",\n \"EdgeCapacity\",\n \"EdgeCapForm\",\n \"EdgeColor\",\n \"EdgeConnectivity\",\n \"EdgeContract\",\n \"EdgeCost\",\n \"EdgeCount\",\n \"EdgeCoverQ\",\n \"EdgeCycleMatrix\",\n \"EdgeDashing\",\n \"EdgeDelete\",\n \"EdgeDetect\",\n \"EdgeForm\",\n \"EdgeIndex\",\n \"EdgeJoinForm\",\n \"EdgeLabeling\",\n \"EdgeLabels\",\n \"EdgeLabelStyle\",\n \"EdgeList\",\n \"EdgeOpacity\",\n \"EdgeQ\",\n \"EdgeRenderingFunction\",\n \"EdgeRules\",\n \"EdgeShapeFunction\",\n \"EdgeStyle\",\n \"EdgeTaggedGraph\",\n \"EdgeTaggedGraphQ\",\n \"EdgeTags\",\n \"EdgeThickness\",\n \"EdgeWeight\",\n \"EdgeWeightedGraphQ\",\n \"Editable\",\n \"EditButtonSettings\",\n \"EditCellTagsSettings\",\n \"EditDistance\",\n \"EffectiveInterest\",\n \"Eigensystem\",\n \"Eigenvalues\",\n \"EigenvectorCentrality\",\n \"Eigenvectors\",\n \"Element\",\n \"ElementData\",\n \"ElementwiseLayer\",\n \"ElidedForms\",\n \"Eliminate\",\n \"EliminationOrder\",\n \"Ellipsoid\",\n \"EllipticE\",\n \"EllipticExp\",\n \"EllipticExpPrime\",\n \"EllipticF\",\n \"EllipticFilterModel\",\n \"EllipticK\",\n \"EllipticLog\",\n \"EllipticNomeQ\",\n \"EllipticPi\",\n \"EllipticReducedHalfPeriods\",\n \"EllipticTheta\",\n \"EllipticThetaPrime\",\n \"EmbedCode\",\n \"EmbeddedHTML\",\n \"EmbeddedService\",\n \"EmbeddingLayer\",\n \"EmbeddingObject\",\n \"EmitSound\",\n \"EmphasizeSyntaxErrors\",\n \"EmpiricalDistribution\",\n \"Empty\",\n \"EmptyGraphQ\",\n \"EmptyRegion\",\n \"EnableConsolePrintPacket\",\n \"Enabled\",\n \"Encode\",\n \"Encrypt\",\n \"EncryptedObject\",\n \"EncryptFile\",\n \"End\",\n \"EndAdd\",\n \"EndDialogPacket\",\n \"EndFrontEndInteractionPacket\",\n \"EndOfBuffer\",\n \"EndOfFile\",\n \"EndOfLine\",\n \"EndOfString\",\n \"EndPackage\",\n \"EngineEnvironment\",\n \"EngineeringForm\",\n \"Enter\",\n \"EnterExpressionPacket\",\n \"EnterTextPacket\",\n \"Entity\",\n \"EntityClass\",\n \"EntityClassList\",\n \"EntityCopies\",\n \"EntityFunction\",\n \"EntityGroup\",\n \"EntityInstance\",\n \"EntityList\",\n \"EntityPrefetch\",\n \"EntityProperties\",\n \"EntityProperty\",\n \"EntityPropertyClass\",\n \"EntityRegister\",\n \"EntityStore\",\n \"EntityStores\",\n \"EntityTypeName\",\n \"EntityUnregister\",\n \"EntityValue\",\n \"Entropy\",\n \"EntropyFilter\",\n \"Environment\",\n \"Epilog\",\n \"EpilogFunction\",\n \"Equal\",\n \"EqualColumns\",\n \"EqualRows\",\n \"EqualTilde\",\n \"EqualTo\",\n \"EquatedTo\",\n \"Equilibrium\",\n \"EquirippleFilterKernel\",\n \"Equivalent\",\n \"Erf\",\n \"Erfc\",\n \"Erfi\",\n \"ErlangB\",\n \"ErlangC\",\n \"ErlangDistribution\",\n \"Erosion\",\n \"ErrorBox\",\n \"ErrorBoxOptions\",\n \"ErrorNorm\",\n \"ErrorPacket\",\n \"ErrorsDialogSettings\",\n \"EscapeRadius\",\n \"EstimatedBackground\",\n \"EstimatedDistribution\",\n \"EstimatedProcess\",\n \"EstimatorGains\",\n \"EstimatorRegulator\",\n \"EuclideanDistance\",\n \"EulerAngles\",\n \"EulerCharacteristic\",\n \"EulerE\",\n \"EulerGamma\",\n \"EulerianGraphQ\",\n \"EulerMatrix\",\n \"EulerPhi\",\n \"Evaluatable\",\n \"Evaluate\",\n \"Evaluated\",\n \"EvaluatePacket\",\n \"EvaluateScheduledTask\",\n \"EvaluationBox\",\n \"EvaluationCell\",\n \"EvaluationCompletionAction\",\n \"EvaluationData\",\n \"EvaluationElements\",\n \"EvaluationEnvironment\",\n \"EvaluationMode\",\n \"EvaluationMonitor\",\n \"EvaluationNotebook\",\n \"EvaluationObject\",\n \"EvaluationOrder\",\n \"Evaluator\",\n \"EvaluatorNames\",\n \"EvenQ\",\n \"EventData\",\n \"EventEvaluator\",\n \"EventHandler\",\n \"EventHandlerTag\",\n \"EventLabels\",\n \"EventSeries\",\n \"ExactBlackmanWindow\",\n \"ExactNumberQ\",\n \"ExactRootIsolation\",\n \"ExampleData\",\n \"Except\",\n \"ExcludedForms\",\n \"ExcludedLines\",\n \"ExcludedPhysicalQuantities\",\n \"ExcludePods\",\n \"Exclusions\",\n \"ExclusionsStyle\",\n \"Exists\",\n \"Exit\",\n \"ExitDialog\",\n \"ExoplanetData\",\n \"Exp\",\n \"Expand\",\n \"ExpandAll\",\n \"ExpandDenominator\",\n \"ExpandFileName\",\n \"ExpandNumerator\",\n \"Expectation\",\n \"ExpectationE\",\n \"ExpectedValue\",\n \"ExpGammaDistribution\",\n \"ExpIntegralE\",\n \"ExpIntegralEi\",\n \"ExpirationDate\",\n \"Exponent\",\n \"ExponentFunction\",\n \"ExponentialDistribution\",\n \"ExponentialFamily\",\n \"ExponentialGeneratingFunction\",\n \"ExponentialMovingAverage\",\n \"ExponentialPowerDistribution\",\n \"ExponentPosition\",\n \"ExponentStep\",\n \"Export\",\n \"ExportAutoReplacements\",\n \"ExportByteArray\",\n \"ExportForm\",\n \"ExportPacket\",\n \"ExportString\",\n \"Expression\",\n \"ExpressionCell\",\n \"ExpressionGraph\",\n \"ExpressionPacket\",\n \"ExpressionUUID\",\n \"ExpToTrig\",\n \"ExtendedEntityClass\",\n \"ExtendedGCD\",\n \"Extension\",\n \"ExtentElementFunction\",\n \"ExtentMarkers\",\n \"ExtentSize\",\n \"ExternalBundle\",\n \"ExternalCall\",\n \"ExternalDataCharacterEncoding\",\n \"ExternalEvaluate\",\n \"ExternalFunction\",\n \"ExternalFunctionName\",\n \"ExternalIdentifier\",\n \"ExternalObject\",\n \"ExternalOptions\",\n \"ExternalSessionObject\",\n \"ExternalSessions\",\n \"ExternalStorageBase\",\n \"ExternalStorageDownload\",\n \"ExternalStorageGet\",\n \"ExternalStorageObject\",\n \"ExternalStoragePut\",\n \"ExternalStorageUpload\",\n \"ExternalTypeSignature\",\n \"ExternalValue\",\n \"Extract\",\n \"ExtractArchive\",\n \"ExtractLayer\",\n \"ExtractPacletArchive\",\n \"ExtremeValueDistribution\",\n \"FaceAlign\",\n \"FaceForm\",\n \"FaceGrids\",\n \"FaceGridsStyle\",\n \"FacialFeatures\",\n \"Factor\",\n \"FactorComplete\",\n \"Factorial\",\n \"Factorial2\",\n \"FactorialMoment\",\n \"FactorialMomentGeneratingFunction\",\n \"FactorialPower\",\n \"FactorInteger\",\n \"FactorList\",\n \"FactorSquareFree\",\n \"FactorSquareFreeList\",\n \"FactorTerms\",\n \"FactorTermsList\",\n \"Fail\",\n \"Failure\",\n \"FailureAction\",\n \"FailureDistribution\",\n \"FailureQ\",\n \"False\",\n \"FareySequence\",\n \"FARIMAProcess\",\n \"FeatureDistance\",\n \"FeatureExtract\",\n \"FeatureExtraction\",\n \"FeatureExtractor\",\n \"FeatureExtractorFunction\",\n \"FeatureNames\",\n \"FeatureNearest\",\n \"FeatureSpacePlot\",\n \"FeatureSpacePlot3D\",\n \"FeatureTypes\",\n \"FEDisableConsolePrintPacket\",\n \"FeedbackLinearize\",\n \"FeedbackSector\",\n \"FeedbackSectorStyle\",\n \"FeedbackType\",\n \"FEEnableConsolePrintPacket\",\n \"FetalGrowthData\",\n \"Fibonacci\",\n \"Fibonorial\",\n \"FieldCompletionFunction\",\n \"FieldHint\",\n \"FieldHintStyle\",\n \"FieldMasked\",\n \"FieldSize\",\n \"File\",\n \"FileBaseName\",\n \"FileByteCount\",\n \"FileConvert\",\n \"FileDate\",\n \"FileExistsQ\",\n \"FileExtension\",\n \"FileFormat\",\n \"FileHandler\",\n \"FileHash\",\n \"FileInformation\",\n \"FileName\",\n \"FileNameDepth\",\n \"FileNameDialogSettings\",\n \"FileNameDrop\",\n \"FileNameForms\",\n \"FileNameJoin\",\n \"FileNames\",\n \"FileNameSetter\",\n \"FileNameSplit\",\n \"FileNameTake\",\n \"FilePrint\",\n \"FileSize\",\n \"FileSystemMap\",\n \"FileSystemScan\",\n \"FileTemplate\",\n \"FileTemplateApply\",\n \"FileType\",\n \"FilledCurve\",\n \"FilledCurveBox\",\n \"FilledCurveBoxOptions\",\n \"Filling\",\n \"FillingStyle\",\n \"FillingTransform\",\n \"FilteredEntityClass\",\n \"FilterRules\",\n \"FinancialBond\",\n \"FinancialData\",\n \"FinancialDerivative\",\n \"FinancialIndicator\",\n \"Find\",\n \"FindAnomalies\",\n \"FindArgMax\",\n \"FindArgMin\",\n \"FindChannels\",\n \"FindClique\",\n \"FindClusters\",\n \"FindCookies\",\n \"FindCurvePath\",\n \"FindCycle\",\n \"FindDevices\",\n \"FindDistribution\",\n \"FindDistributionParameters\",\n \"FindDivisions\",\n \"FindEdgeCover\",\n \"FindEdgeCut\",\n \"FindEdgeIndependentPaths\",\n \"FindEquationalProof\",\n \"FindEulerianCycle\",\n \"FindExternalEvaluators\",\n \"FindFaces\",\n \"FindFile\",\n \"FindFit\",\n \"FindFormula\",\n \"FindFundamentalCycles\",\n \"FindGeneratingFunction\",\n \"FindGeoLocation\",\n \"FindGeometricConjectures\",\n \"FindGeometricTransform\",\n \"FindGraphCommunities\",\n \"FindGraphIsomorphism\",\n \"FindGraphPartition\",\n \"FindHamiltonianCycle\",\n \"FindHamiltonianPath\",\n \"FindHiddenMarkovStates\",\n \"FindImageText\",\n \"FindIndependentEdgeSet\",\n \"FindIndependentVertexSet\",\n \"FindInstance\",\n \"FindIntegerNullVector\",\n \"FindKClan\",\n \"FindKClique\",\n \"FindKClub\",\n \"FindKPlex\",\n \"FindLibrary\",\n \"FindLinearRecurrence\",\n \"FindList\",\n \"FindMatchingColor\",\n \"FindMaximum\",\n \"FindMaximumCut\",\n \"FindMaximumFlow\",\n \"FindMaxValue\",\n \"FindMeshDefects\",\n \"FindMinimum\",\n \"FindMinimumCostFlow\",\n \"FindMinimumCut\",\n \"FindMinValue\",\n \"FindMoleculeSubstructure\",\n \"FindPath\",\n \"FindPeaks\",\n \"FindPermutation\",\n \"FindPostmanTour\",\n \"FindProcessParameters\",\n \"FindRepeat\",\n \"FindRoot\",\n \"FindSequenceFunction\",\n \"FindSettings\",\n \"FindShortestPath\",\n \"FindShortestTour\",\n \"FindSpanningTree\",\n \"FindSystemModelEquilibrium\",\n \"FindTextualAnswer\",\n \"FindThreshold\",\n \"FindTransientRepeat\",\n \"FindVertexCover\",\n \"FindVertexCut\",\n \"FindVertexIndependentPaths\",\n \"Fine\",\n \"FinishDynamic\",\n \"FiniteAbelianGroupCount\",\n \"FiniteGroupCount\",\n \"FiniteGroupData\",\n \"First\",\n \"FirstCase\",\n \"FirstPassageTimeDistribution\",\n \"FirstPosition\",\n \"FischerGroupFi22\",\n \"FischerGroupFi23\",\n \"FischerGroupFi24Prime\",\n \"FisherHypergeometricDistribution\",\n \"FisherRatioTest\",\n \"FisherZDistribution\",\n \"Fit\",\n \"FitAll\",\n \"FitRegularization\",\n \"FittedModel\",\n \"FixedOrder\",\n \"FixedPoint\",\n \"FixedPointList\",\n \"FlashSelection\",\n \"Flat\",\n \"Flatten\",\n \"FlattenAt\",\n \"FlattenLayer\",\n \"FlatTopWindow\",\n \"FlipView\",\n \"Floor\",\n \"FlowPolynomial\",\n \"FlushPrintOutputPacket\",\n \"Fold\",\n \"FoldList\",\n \"FoldPair\",\n \"FoldPairList\",\n \"FollowRedirects\",\n \"Font\",\n \"FontColor\",\n \"FontFamily\",\n \"FontForm\",\n \"FontName\",\n \"FontOpacity\",\n \"FontPostScriptName\",\n \"FontProperties\",\n \"FontReencoding\",\n \"FontSize\",\n \"FontSlant\",\n \"FontSubstitutions\",\n \"FontTracking\",\n \"FontVariations\",\n \"FontWeight\",\n \"For\",\n \"ForAll\",\n \"ForceVersionInstall\",\n \"Format\",\n \"FormatRules\",\n \"FormatType\",\n \"FormatTypeAutoConvert\",\n \"FormatValues\",\n \"FormBox\",\n \"FormBoxOptions\",\n \"FormControl\",\n \"FormFunction\",\n \"FormLayoutFunction\",\n \"FormObject\",\n \"FormPage\",\n \"FormTheme\",\n \"FormulaData\",\n \"FormulaLookup\",\n \"FortranForm\",\n \"Forward\",\n \"ForwardBackward\",\n \"Fourier\",\n \"FourierCoefficient\",\n \"FourierCosCoefficient\",\n \"FourierCosSeries\",\n \"FourierCosTransform\",\n \"FourierDCT\",\n \"FourierDCTFilter\",\n \"FourierDCTMatrix\",\n \"FourierDST\",\n \"FourierDSTMatrix\",\n \"FourierMatrix\",\n \"FourierParameters\",\n \"FourierSequenceTransform\",\n \"FourierSeries\",\n \"FourierSinCoefficient\",\n \"FourierSinSeries\",\n \"FourierSinTransform\",\n \"FourierTransform\",\n \"FourierTrigSeries\",\n \"FractionalBrownianMotionProcess\",\n \"FractionalGaussianNoiseProcess\",\n \"FractionalPart\",\n \"FractionBox\",\n \"FractionBoxOptions\",\n \"FractionLine\",\n \"Frame\",\n \"FrameBox\",\n \"FrameBoxOptions\",\n \"Framed\",\n \"FrameInset\",\n \"FrameLabel\",\n \"Frameless\",\n \"FrameMargins\",\n \"FrameRate\",\n \"FrameStyle\",\n \"FrameTicks\",\n \"FrameTicksStyle\",\n \"FRatioDistribution\",\n \"FrechetDistribution\",\n \"FreeQ\",\n \"FrenetSerretSystem\",\n \"FrequencySamplingFilterKernel\",\n \"FresnelC\",\n \"FresnelF\",\n \"FresnelG\",\n \"FresnelS\",\n \"Friday\",\n \"FrobeniusNumber\",\n \"FrobeniusSolve\",\n \"FromAbsoluteTime\",\n \"FromCharacterCode\",\n \"FromCoefficientRules\",\n \"FromContinuedFraction\",\n \"FromDate\",\n \"FromDigits\",\n \"FromDMS\",\n \"FromEntity\",\n \"FromJulianDate\",\n \"FromLetterNumber\",\n \"FromPolarCoordinates\",\n \"FromRomanNumeral\",\n \"FromSphericalCoordinates\",\n \"FromUnixTime\",\n \"Front\",\n \"FrontEndDynamicExpression\",\n \"FrontEndEventActions\",\n \"FrontEndExecute\",\n \"FrontEndObject\",\n \"FrontEndResource\",\n \"FrontEndResourceString\",\n \"FrontEndStackSize\",\n \"FrontEndToken\",\n \"FrontEndTokenExecute\",\n \"FrontEndValueCache\",\n \"FrontEndVersion\",\n \"FrontFaceColor\",\n \"FrontFaceOpacity\",\n \"Full\",\n \"FullAxes\",\n \"FullDefinition\",\n \"FullForm\",\n \"FullGraphics\",\n \"FullInformationOutputRegulator\",\n \"FullOptions\",\n \"FullRegion\",\n \"FullSimplify\",\n \"Function\",\n \"FunctionCompile\",\n \"FunctionCompileExport\",\n \"FunctionCompileExportByteArray\",\n \"FunctionCompileExportLibrary\",\n \"FunctionCompileExportString\",\n \"FunctionDomain\",\n \"FunctionExpand\",\n \"FunctionInterpolation\",\n \"FunctionPeriod\",\n \"FunctionRange\",\n \"FunctionSpace\",\n \"FussellVeselyImportance\",\n \"GaborFilter\",\n \"GaborMatrix\",\n \"GaborWavelet\",\n \"GainMargins\",\n \"GainPhaseMargins\",\n \"GalaxyData\",\n \"GalleryView\",\n \"Gamma\",\n \"GammaDistribution\",\n \"GammaRegularized\",\n \"GapPenalty\",\n \"GARCHProcess\",\n \"GatedRecurrentLayer\",\n \"Gather\",\n \"GatherBy\",\n \"GaugeFaceElementFunction\",\n \"GaugeFaceStyle\",\n \"GaugeFrameElementFunction\",\n \"GaugeFrameSize\",\n \"GaugeFrameStyle\",\n \"GaugeLabels\",\n \"GaugeMarkers\",\n \"GaugeStyle\",\n \"GaussianFilter\",\n \"GaussianIntegers\",\n \"GaussianMatrix\",\n \"GaussianOrthogonalMatrixDistribution\",\n \"GaussianSymplecticMatrixDistribution\",\n \"GaussianUnitaryMatrixDistribution\",\n \"GaussianWindow\",\n \"GCD\",\n \"GegenbauerC\",\n \"General\",\n \"GeneralizedLinearModelFit\",\n \"GenerateAsymmetricKeyPair\",\n \"GenerateConditions\",\n \"GeneratedCell\",\n \"GeneratedDocumentBinding\",\n \"GenerateDerivedKey\",\n \"GenerateDigitalSignature\",\n \"GenerateDocument\",\n \"GeneratedParameters\",\n \"GeneratedQuantityMagnitudes\",\n \"GenerateFileSignature\",\n \"GenerateHTTPResponse\",\n \"GenerateSecuredAuthenticationKey\",\n \"GenerateSymmetricKey\",\n \"GeneratingFunction\",\n \"GeneratorDescription\",\n \"GeneratorHistoryLength\",\n \"GeneratorOutputType\",\n \"Generic\",\n \"GenericCylindricalDecomposition\",\n \"GenomeData\",\n \"GenomeLookup\",\n \"GeoAntipode\",\n \"GeoArea\",\n \"GeoArraySize\",\n \"GeoBackground\",\n \"GeoBoundingBox\",\n \"GeoBounds\",\n \"GeoBoundsRegion\",\n \"GeoBubbleChart\",\n \"GeoCenter\",\n \"GeoCircle\",\n \"GeoContourPlot\",\n \"GeoDensityPlot\",\n \"GeodesicClosing\",\n \"GeodesicDilation\",\n \"GeodesicErosion\",\n \"GeodesicOpening\",\n \"GeoDestination\",\n \"GeodesyData\",\n \"GeoDirection\",\n \"GeoDisk\",\n \"GeoDisplacement\",\n \"GeoDistance\",\n \"GeoDistanceList\",\n \"GeoElevationData\",\n \"GeoEntities\",\n \"GeoGraphics\",\n \"GeogravityModelData\",\n \"GeoGridDirectionDifference\",\n \"GeoGridLines\",\n \"GeoGridLinesStyle\",\n \"GeoGridPosition\",\n \"GeoGridRange\",\n \"GeoGridRangePadding\",\n \"GeoGridUnitArea\",\n \"GeoGridUnitDistance\",\n \"GeoGridVector\",\n \"GeoGroup\",\n \"GeoHemisphere\",\n \"GeoHemisphereBoundary\",\n \"GeoHistogram\",\n \"GeoIdentify\",\n \"GeoImage\",\n \"GeoLabels\",\n \"GeoLength\",\n \"GeoListPlot\",\n \"GeoLocation\",\n \"GeologicalPeriodData\",\n \"GeomagneticModelData\",\n \"GeoMarker\",\n \"GeometricAssertion\",\n \"GeometricBrownianMotionProcess\",\n \"GeometricDistribution\",\n \"GeometricMean\",\n \"GeometricMeanFilter\",\n \"GeometricOptimization\",\n \"GeometricScene\",\n \"GeometricTransformation\",\n \"GeometricTransformation3DBox\",\n \"GeometricTransformation3DBoxOptions\",\n \"GeometricTransformationBox\",\n \"GeometricTransformationBoxOptions\",\n \"GeoModel\",\n \"GeoNearest\",\n \"GeoPath\",\n \"GeoPosition\",\n \"GeoPositionENU\",\n \"GeoPositionXYZ\",\n \"GeoProjection\",\n \"GeoProjectionData\",\n \"GeoRange\",\n \"GeoRangePadding\",\n \"GeoRegionValuePlot\",\n \"GeoResolution\",\n \"GeoScaleBar\",\n \"GeoServer\",\n \"GeoSmoothHistogram\",\n \"GeoStreamPlot\",\n \"GeoStyling\",\n \"GeoStylingImageFunction\",\n \"GeoVariant\",\n \"GeoVector\",\n \"GeoVectorENU\",\n \"GeoVectorPlot\",\n \"GeoVectorXYZ\",\n \"GeoVisibleRegion\",\n \"GeoVisibleRegionBoundary\",\n \"GeoWithinQ\",\n \"GeoZoomLevel\",\n \"GestureHandler\",\n \"GestureHandlerTag\",\n \"Get\",\n \"GetBoundingBoxSizePacket\",\n \"GetContext\",\n \"GetEnvironment\",\n \"GetFileName\",\n \"GetFrontEndOptionsDataPacket\",\n \"GetLinebreakInformationPacket\",\n \"GetMenusPacket\",\n \"GetPageBreakInformationPacket\",\n \"Glaisher\",\n \"GlobalClusteringCoefficient\",\n \"GlobalPreferences\",\n \"GlobalSession\",\n \"Glow\",\n \"GoldenAngle\",\n \"GoldenRatio\",\n \"GompertzMakehamDistribution\",\n \"GoochShading\",\n \"GoodmanKruskalGamma\",\n \"GoodmanKruskalGammaTest\",\n \"Goto\",\n \"Grad\",\n \"Gradient\",\n \"GradientFilter\",\n \"GradientOrientationFilter\",\n \"GrammarApply\",\n \"GrammarRules\",\n \"GrammarToken\",\n \"Graph\",\n \"Graph3D\",\n \"GraphAssortativity\",\n \"GraphAutomorphismGroup\",\n \"GraphCenter\",\n \"GraphComplement\",\n \"GraphData\",\n \"GraphDensity\",\n \"GraphDiameter\",\n \"GraphDifference\",\n \"GraphDisjointUnion\",\n \"GraphDistance\",\n \"GraphDistanceMatrix\",\n \"GraphElementData\",\n \"GraphEmbedding\",\n \"GraphHighlight\",\n \"GraphHighlightStyle\",\n \"GraphHub\",\n \"Graphics\",\n \"Graphics3D\",\n \"Graphics3DBox\",\n \"Graphics3DBoxOptions\",\n \"GraphicsArray\",\n \"GraphicsBaseline\",\n \"GraphicsBox\",\n \"GraphicsBoxOptions\",\n \"GraphicsColor\",\n \"GraphicsColumn\",\n \"GraphicsComplex\",\n \"GraphicsComplex3DBox\",\n \"GraphicsComplex3DBoxOptions\",\n \"GraphicsComplexBox\",\n \"GraphicsComplexBoxOptions\",\n \"GraphicsContents\",\n \"GraphicsData\",\n \"GraphicsGrid\",\n \"GraphicsGridBox\",\n \"GraphicsGroup\",\n \"GraphicsGroup3DBox\",\n \"GraphicsGroup3DBoxOptions\",\n \"GraphicsGroupBox\",\n \"GraphicsGroupBoxOptions\",\n \"GraphicsGrouping\",\n \"GraphicsHighlightColor\",\n \"GraphicsRow\",\n \"GraphicsSpacing\",\n \"GraphicsStyle\",\n \"GraphIntersection\",\n \"GraphLayout\",\n \"GraphLinkEfficiency\",\n \"GraphPeriphery\",\n \"GraphPlot\",\n \"GraphPlot3D\",\n \"GraphPower\",\n \"GraphPropertyDistribution\",\n \"GraphQ\",\n \"GraphRadius\",\n \"GraphReciprocity\",\n \"GraphRoot\",\n \"GraphStyle\",\n \"GraphUnion\",\n \"Gray\",\n \"GrayLevel\",\n \"Greater\",\n \"GreaterEqual\",\n \"GreaterEqualLess\",\n \"GreaterEqualThan\",\n \"GreaterFullEqual\",\n \"GreaterGreater\",\n \"GreaterLess\",\n \"GreaterSlantEqual\",\n \"GreaterThan\",\n \"GreaterTilde\",\n \"Green\",\n \"GreenFunction\",\n \"Grid\",\n \"GridBaseline\",\n \"GridBox\",\n \"GridBoxAlignment\",\n \"GridBoxBackground\",\n \"GridBoxDividers\",\n \"GridBoxFrame\",\n \"GridBoxItemSize\",\n \"GridBoxItemStyle\",\n \"GridBoxOptions\",\n \"GridBoxSpacings\",\n \"GridCreationSettings\",\n \"GridDefaultElement\",\n \"GridElementStyleOptions\",\n \"GridFrame\",\n \"GridFrameMargins\",\n \"GridGraph\",\n \"GridLines\",\n \"GridLinesStyle\",\n \"GroebnerBasis\",\n \"GroupActionBase\",\n \"GroupBy\",\n \"GroupCentralizer\",\n \"GroupElementFromWord\",\n \"GroupElementPosition\",\n \"GroupElementQ\",\n \"GroupElements\",\n \"GroupElementToWord\",\n \"GroupGenerators\",\n \"Groupings\",\n \"GroupMultiplicationTable\",\n \"GroupOrbits\",\n \"GroupOrder\",\n \"GroupPageBreakWithin\",\n \"GroupSetwiseStabilizer\",\n \"GroupStabilizer\",\n \"GroupStabilizerChain\",\n \"GroupTogetherGrouping\",\n \"GroupTogetherNestedGrouping\",\n \"GrowCutComponents\",\n \"Gudermannian\",\n \"GuidedFilter\",\n \"GumbelDistribution\",\n \"HaarWavelet\",\n \"HadamardMatrix\",\n \"HalfLine\",\n \"HalfNormalDistribution\",\n \"HalfPlane\",\n \"HalfSpace\",\n \"HalftoneShading\",\n \"HamiltonianGraphQ\",\n \"HammingDistance\",\n \"HammingWindow\",\n \"HandlerFunctions\",\n \"HandlerFunctionsKeys\",\n \"HankelH1\",\n \"HankelH2\",\n \"HankelMatrix\",\n \"HankelTransform\",\n \"HannPoissonWindow\",\n \"HannWindow\",\n \"HaradaNortonGroupHN\",\n \"HararyGraph\",\n \"HarmonicMean\",\n \"HarmonicMeanFilter\",\n \"HarmonicNumber\",\n \"Hash\",\n \"HatchFilling\",\n \"HatchShading\",\n \"Haversine\",\n \"HazardFunction\",\n \"Head\",\n \"HeadCompose\",\n \"HeaderAlignment\",\n \"HeaderBackground\",\n \"HeaderDisplayFunction\",\n \"HeaderLines\",\n \"HeaderSize\",\n \"HeaderStyle\",\n \"Heads\",\n \"HeavisideLambda\",\n \"HeavisidePi\",\n \"HeavisideTheta\",\n \"HeldGroupHe\",\n \"HeldPart\",\n \"HelpBrowserLookup\",\n \"HelpBrowserNotebook\",\n \"HelpBrowserSettings\",\n \"Here\",\n \"HermiteDecomposition\",\n \"HermiteH\",\n \"HermitianMatrixQ\",\n \"HessenbergDecomposition\",\n \"Hessian\",\n \"HeunB\",\n \"HeunBPrime\",\n \"HeunC\",\n \"HeunCPrime\",\n \"HeunD\",\n \"HeunDPrime\",\n \"HeunG\",\n \"HeunGPrime\",\n \"HeunT\",\n \"HeunTPrime\",\n \"HexadecimalCharacter\",\n \"Hexahedron\",\n \"HexahedronBox\",\n \"HexahedronBoxOptions\",\n \"HiddenItems\",\n \"HiddenMarkovProcess\",\n \"HiddenSurface\",\n \"Highlighted\",\n \"HighlightGraph\",\n \"HighlightImage\",\n \"HighlightMesh\",\n \"HighpassFilter\",\n \"HigmanSimsGroupHS\",\n \"HilbertCurve\",\n \"HilbertFilter\",\n \"HilbertMatrix\",\n \"Histogram\",\n \"Histogram3D\",\n \"HistogramDistribution\",\n \"HistogramList\",\n \"HistogramTransform\",\n \"HistogramTransformInterpolation\",\n \"HistoricalPeriodData\",\n \"HitMissTransform\",\n \"HITSCentrality\",\n \"HjorthDistribution\",\n \"HodgeDual\",\n \"HoeffdingD\",\n \"HoeffdingDTest\",\n \"Hold\",\n \"HoldAll\",\n \"HoldAllComplete\",\n \"HoldComplete\",\n \"HoldFirst\",\n \"HoldForm\",\n \"HoldPattern\",\n \"HoldRest\",\n \"HolidayCalendar\",\n \"HomeDirectory\",\n \"HomePage\",\n \"Horizontal\",\n \"HorizontalForm\",\n \"HorizontalGauge\",\n \"HorizontalScrollPosition\",\n \"HornerForm\",\n \"HostLookup\",\n \"HotellingTSquareDistribution\",\n \"HoytDistribution\",\n \"HTMLSave\",\n \"HTTPErrorResponse\",\n \"HTTPRedirect\",\n \"HTTPRequest\",\n \"HTTPRequestData\",\n \"HTTPResponse\",\n \"Hue\",\n \"HumanGrowthData\",\n \"HumpDownHump\",\n \"HumpEqual\",\n \"HurwitzLerchPhi\",\n \"HurwitzZeta\",\n \"HyperbolicDistribution\",\n \"HypercubeGraph\",\n \"HyperexponentialDistribution\",\n \"Hyperfactorial\",\n \"Hypergeometric0F1\",\n \"Hypergeometric0F1Regularized\",\n \"Hypergeometric1F1\",\n \"Hypergeometric1F1Regularized\",\n \"Hypergeometric2F1\",\n \"Hypergeometric2F1Regularized\",\n \"HypergeometricDistribution\",\n \"HypergeometricPFQ\",\n \"HypergeometricPFQRegularized\",\n \"HypergeometricU\",\n \"Hyperlink\",\n \"HyperlinkAction\",\n \"HyperlinkCreationSettings\",\n \"Hyperplane\",\n \"Hyphenation\",\n \"HyphenationOptions\",\n \"HypoexponentialDistribution\",\n \"HypothesisTestData\",\n \"I\",\n \"IconData\",\n \"Iconize\",\n \"IconizedObject\",\n \"IconRules\",\n \"Icosahedron\",\n \"Identity\",\n \"IdentityMatrix\",\n \"If\",\n \"IgnoreCase\",\n \"IgnoreDiacritics\",\n \"IgnorePunctuation\",\n \"IgnoreSpellCheck\",\n \"IgnoringInactive\",\n \"Im\",\n \"Image\",\n \"Image3D\",\n \"Image3DProjection\",\n \"Image3DSlices\",\n \"ImageAccumulate\",\n \"ImageAdd\",\n \"ImageAdjust\",\n \"ImageAlign\",\n \"ImageApply\",\n \"ImageApplyIndexed\",\n \"ImageAspectRatio\",\n \"ImageAssemble\",\n \"ImageAugmentationLayer\",\n \"ImageBoundingBoxes\",\n \"ImageCache\",\n \"ImageCacheValid\",\n \"ImageCapture\",\n \"ImageCaptureFunction\",\n \"ImageCases\",\n \"ImageChannels\",\n \"ImageClip\",\n \"ImageCollage\",\n \"ImageColorSpace\",\n \"ImageCompose\",\n \"ImageContainsQ\",\n \"ImageContents\",\n \"ImageConvolve\",\n \"ImageCooccurrence\",\n \"ImageCorners\",\n \"ImageCorrelate\",\n \"ImageCorrespondingPoints\",\n \"ImageCrop\",\n \"ImageData\",\n \"ImageDeconvolve\",\n \"ImageDemosaic\",\n \"ImageDifference\",\n \"ImageDimensions\",\n \"ImageDisplacements\",\n \"ImageDistance\",\n \"ImageEffect\",\n \"ImageExposureCombine\",\n \"ImageFeatureTrack\",\n \"ImageFileApply\",\n \"ImageFileFilter\",\n \"ImageFileScan\",\n \"ImageFilter\",\n \"ImageFocusCombine\",\n \"ImageForestingComponents\",\n \"ImageFormattingWidth\",\n \"ImageForwardTransformation\",\n \"ImageGraphics\",\n \"ImageHistogram\",\n \"ImageIdentify\",\n \"ImageInstanceQ\",\n \"ImageKeypoints\",\n \"ImageLabels\",\n \"ImageLegends\",\n \"ImageLevels\",\n \"ImageLines\",\n \"ImageMargins\",\n \"ImageMarker\",\n \"ImageMarkers\",\n \"ImageMeasurements\",\n \"ImageMesh\",\n \"ImageMultiply\",\n \"ImageOffset\",\n \"ImagePad\",\n \"ImagePadding\",\n \"ImagePartition\",\n \"ImagePeriodogram\",\n \"ImagePerspectiveTransformation\",\n \"ImagePosition\",\n \"ImagePreviewFunction\",\n \"ImagePyramid\",\n \"ImagePyramidApply\",\n \"ImageQ\",\n \"ImageRangeCache\",\n \"ImageRecolor\",\n \"ImageReflect\",\n \"ImageRegion\",\n \"ImageResize\",\n \"ImageResolution\",\n \"ImageRestyle\",\n \"ImageRotate\",\n \"ImageRotated\",\n \"ImageSaliencyFilter\",\n \"ImageScaled\",\n \"ImageScan\",\n \"ImageSize\",\n \"ImageSizeAction\",\n \"ImageSizeCache\",\n \"ImageSizeMultipliers\",\n \"ImageSizeRaw\",\n \"ImageSubtract\",\n \"ImageTake\",\n \"ImageTransformation\",\n \"ImageTrim\",\n \"ImageType\",\n \"ImageValue\",\n \"ImageValuePositions\",\n \"ImagingDevice\",\n \"ImplicitRegion\",\n \"Implies\",\n \"Import\",\n \"ImportAutoReplacements\",\n \"ImportByteArray\",\n \"ImportOptions\",\n \"ImportString\",\n \"ImprovementImportance\",\n \"In\",\n \"Inactivate\",\n \"Inactive\",\n \"IncidenceGraph\",\n \"IncidenceList\",\n \"IncidenceMatrix\",\n \"IncludeAromaticBonds\",\n \"IncludeConstantBasis\",\n \"IncludeDefinitions\",\n \"IncludeDirectories\",\n \"IncludeFileExtension\",\n \"IncludeGeneratorTasks\",\n \"IncludeHydrogens\",\n \"IncludeInflections\",\n \"IncludeMetaInformation\",\n \"IncludePods\",\n \"IncludeQuantities\",\n \"IncludeRelatedTables\",\n \"IncludeSingularTerm\",\n \"IncludeWindowTimes\",\n \"Increment\",\n \"IndefiniteMatrixQ\",\n \"Indent\",\n \"IndentingNewlineSpacings\",\n \"IndentMaxFraction\",\n \"IndependenceTest\",\n \"IndependentEdgeSetQ\",\n \"IndependentPhysicalQuantity\",\n \"IndependentUnit\",\n \"IndependentUnitDimension\",\n \"IndependentVertexSetQ\",\n \"Indeterminate\",\n \"IndeterminateThreshold\",\n \"IndexCreationOptions\",\n \"Indexed\",\n \"IndexEdgeTaggedGraph\",\n \"IndexGraph\",\n \"IndexTag\",\n \"Inequality\",\n \"InexactNumberQ\",\n \"InexactNumbers\",\n \"InfiniteFuture\",\n \"InfiniteLine\",\n \"InfinitePast\",\n \"InfinitePlane\",\n \"Infinity\",\n \"Infix\",\n \"InflationAdjust\",\n \"InflationMethod\",\n \"Information\",\n \"InformationData\",\n \"InformationDataGrid\",\n \"Inherited\",\n \"InheritScope\",\n \"InhomogeneousPoissonProcess\",\n \"InitialEvaluationHistory\",\n \"Initialization\",\n \"InitializationCell\",\n \"InitializationCellEvaluation\",\n \"InitializationCellWarning\",\n \"InitializationObjects\",\n \"InitializationValue\",\n \"Initialize\",\n \"InitialSeeding\",\n \"InlineCounterAssignments\",\n \"InlineCounterIncrements\",\n \"InlineRules\",\n \"Inner\",\n \"InnerPolygon\",\n \"InnerPolyhedron\",\n \"Inpaint\",\n \"Input\",\n \"InputAliases\",\n \"InputAssumptions\",\n \"InputAutoReplacements\",\n \"InputField\",\n \"InputFieldBox\",\n \"InputFieldBoxOptions\",\n \"InputForm\",\n \"InputGrouping\",\n \"InputNamePacket\",\n \"InputNotebook\",\n \"InputPacket\",\n \"InputSettings\",\n \"InputStream\",\n \"InputString\",\n \"InputStringPacket\",\n \"InputToBoxFormPacket\",\n \"Insert\",\n \"InsertionFunction\",\n \"InsertionPointObject\",\n \"InsertLinebreaks\",\n \"InsertResults\",\n \"Inset\",\n \"Inset3DBox\",\n \"Inset3DBoxOptions\",\n \"InsetBox\",\n \"InsetBoxOptions\",\n \"Insphere\",\n \"Install\",\n \"InstallService\",\n \"InstanceNormalizationLayer\",\n \"InString\",\n \"Integer\",\n \"IntegerDigits\",\n \"IntegerExponent\",\n \"IntegerLength\",\n \"IntegerName\",\n \"IntegerPart\",\n \"IntegerPartitions\",\n \"IntegerQ\",\n \"IntegerReverse\",\n \"Integers\",\n \"IntegerString\",\n \"Integral\",\n \"Integrate\",\n \"Interactive\",\n \"InteractiveTradingChart\",\n \"Interlaced\",\n \"Interleaving\",\n \"InternallyBalancedDecomposition\",\n \"InterpolatingFunction\",\n \"InterpolatingPolynomial\",\n \"Interpolation\",\n \"InterpolationOrder\",\n \"InterpolationPoints\",\n \"InterpolationPrecision\",\n \"Interpretation\",\n \"InterpretationBox\",\n \"InterpretationBoxOptions\",\n \"InterpretationFunction\",\n \"Interpreter\",\n \"InterpretTemplate\",\n \"InterquartileRange\",\n \"Interrupt\",\n \"InterruptSettings\",\n \"IntersectedEntityClass\",\n \"IntersectingQ\",\n \"Intersection\",\n \"Interval\",\n \"IntervalIntersection\",\n \"IntervalMarkers\",\n \"IntervalMarkersStyle\",\n \"IntervalMemberQ\",\n \"IntervalSlider\",\n \"IntervalUnion\",\n \"Into\",\n \"Inverse\",\n \"InverseBetaRegularized\",\n \"InverseCDF\",\n \"InverseChiSquareDistribution\",\n \"InverseContinuousWaveletTransform\",\n \"InverseDistanceTransform\",\n \"InverseEllipticNomeQ\",\n \"InverseErf\",\n \"InverseErfc\",\n \"InverseFourier\",\n \"InverseFourierCosTransform\",\n \"InverseFourierSequenceTransform\",\n \"InverseFourierSinTransform\",\n \"InverseFourierTransform\",\n \"InverseFunction\",\n \"InverseFunctions\",\n \"InverseGammaDistribution\",\n \"InverseGammaRegularized\",\n \"InverseGaussianDistribution\",\n \"InverseGudermannian\",\n \"InverseHankelTransform\",\n \"InverseHaversine\",\n \"InverseImagePyramid\",\n \"InverseJacobiCD\",\n \"InverseJacobiCN\",\n \"InverseJacobiCS\",\n \"InverseJacobiDC\",\n \"InverseJacobiDN\",\n \"InverseJacobiDS\",\n \"InverseJacobiNC\",\n \"InverseJacobiND\",\n \"InverseJacobiNS\",\n \"InverseJacobiSC\",\n \"InverseJacobiSD\",\n \"InverseJacobiSN\",\n \"InverseLaplaceTransform\",\n \"InverseMellinTransform\",\n \"InversePermutation\",\n \"InverseRadon\",\n \"InverseRadonTransform\",\n \"InverseSeries\",\n \"InverseShortTimeFourier\",\n \"InverseSpectrogram\",\n \"InverseSurvivalFunction\",\n \"InverseTransformedRegion\",\n \"InverseWaveletTransform\",\n \"InverseWeierstrassP\",\n \"InverseWishartMatrixDistribution\",\n \"InverseZTransform\",\n \"Invisible\",\n \"InvisibleApplication\",\n \"InvisibleTimes\",\n \"IPAddress\",\n \"IrreduciblePolynomialQ\",\n \"IslandData\",\n \"IsolatingInterval\",\n \"IsomorphicGraphQ\",\n \"IsotopeData\",\n \"Italic\",\n \"Item\",\n \"ItemAspectRatio\",\n \"ItemBox\",\n \"ItemBoxOptions\",\n \"ItemDisplayFunction\",\n \"ItemSize\",\n \"ItemStyle\",\n \"ItoProcess\",\n \"JaccardDissimilarity\",\n \"JacobiAmplitude\",\n \"Jacobian\",\n \"JacobiCD\",\n \"JacobiCN\",\n \"JacobiCS\",\n \"JacobiDC\",\n \"JacobiDN\",\n \"JacobiDS\",\n \"JacobiNC\",\n \"JacobiND\",\n \"JacobiNS\",\n \"JacobiP\",\n \"JacobiSC\",\n \"JacobiSD\",\n \"JacobiSN\",\n \"JacobiSymbol\",\n \"JacobiZeta\",\n \"JankoGroupJ1\",\n \"JankoGroupJ2\",\n \"JankoGroupJ3\",\n \"JankoGroupJ4\",\n \"JarqueBeraALMTest\",\n \"JohnsonDistribution\",\n \"Join\",\n \"JoinAcross\",\n \"Joined\",\n \"JoinedCurve\",\n \"JoinedCurveBox\",\n \"JoinedCurveBoxOptions\",\n \"JoinForm\",\n \"JordanDecomposition\",\n \"JordanModelDecomposition\",\n \"JulianDate\",\n \"JuliaSetBoettcher\",\n \"JuliaSetIterationCount\",\n \"JuliaSetPlot\",\n \"JuliaSetPoints\",\n \"K\",\n \"KagiChart\",\n \"KaiserBesselWindow\",\n \"KaiserWindow\",\n \"KalmanEstimator\",\n \"KalmanFilter\",\n \"KarhunenLoeveDecomposition\",\n \"KaryTree\",\n \"KatzCentrality\",\n \"KCoreComponents\",\n \"KDistribution\",\n \"KEdgeConnectedComponents\",\n \"KEdgeConnectedGraphQ\",\n \"KeepExistingVersion\",\n \"KelvinBei\",\n \"KelvinBer\",\n \"KelvinKei\",\n \"KelvinKer\",\n \"KendallTau\",\n \"KendallTauTest\",\n \"KernelExecute\",\n \"KernelFunction\",\n \"KernelMixtureDistribution\",\n \"KernelObject\",\n \"Kernels\",\n \"Ket\",\n \"Key\",\n \"KeyCollisionFunction\",\n \"KeyComplement\",\n \"KeyDrop\",\n \"KeyDropFrom\",\n \"KeyExistsQ\",\n \"KeyFreeQ\",\n \"KeyIntersection\",\n \"KeyMap\",\n \"KeyMemberQ\",\n \"KeypointStrength\",\n \"Keys\",\n \"KeySelect\",\n \"KeySort\",\n \"KeySortBy\",\n \"KeyTake\",\n \"KeyUnion\",\n \"KeyValueMap\",\n \"KeyValuePattern\",\n \"Khinchin\",\n \"KillProcess\",\n \"KirchhoffGraph\",\n \"KirchhoffMatrix\",\n \"KleinInvariantJ\",\n \"KnapsackSolve\",\n \"KnightTourGraph\",\n \"KnotData\",\n \"KnownUnitQ\",\n \"KochCurve\",\n \"KolmogorovSmirnovTest\",\n \"KroneckerDelta\",\n \"KroneckerModelDecomposition\",\n \"KroneckerProduct\",\n \"KroneckerSymbol\",\n \"KuiperTest\",\n \"KumaraswamyDistribution\",\n \"Kurtosis\",\n \"KuwaharaFilter\",\n \"KVertexConnectedComponents\",\n \"KVertexConnectedGraphQ\",\n \"LABColor\",\n \"Label\",\n \"Labeled\",\n \"LabeledSlider\",\n \"LabelingFunction\",\n \"LabelingSize\",\n \"LabelStyle\",\n \"LabelVisibility\",\n \"LaguerreL\",\n \"LakeData\",\n \"LambdaComponents\",\n \"LambertW\",\n \"LaminaData\",\n \"LanczosWindow\",\n \"LandauDistribution\",\n \"Language\",\n \"LanguageCategory\",\n \"LanguageData\",\n \"LanguageIdentify\",\n \"LanguageOptions\",\n \"LaplaceDistribution\",\n \"LaplaceTransform\",\n \"Laplacian\",\n \"LaplacianFilter\",\n \"LaplacianGaussianFilter\",\n \"Large\",\n \"Larger\",\n \"Last\",\n \"Latitude\",\n \"LatitudeLongitude\",\n \"LatticeData\",\n \"LatticeReduce\",\n \"Launch\",\n \"LaunchKernels\",\n \"LayeredGraphPlot\",\n \"LayerSizeFunction\",\n \"LayoutInformation\",\n \"LCHColor\",\n \"LCM\",\n \"LeaderSize\",\n \"LeafCount\",\n \"LeapYearQ\",\n \"LearnDistribution\",\n \"LearnedDistribution\",\n \"LearningRate\",\n \"LearningRateMultipliers\",\n \"LeastSquares\",\n \"LeastSquaresFilterKernel\",\n \"Left\",\n \"LeftArrow\",\n \"LeftArrowBar\",\n \"LeftArrowRightArrow\",\n \"LeftDownTeeVector\",\n \"LeftDownVector\",\n \"LeftDownVectorBar\",\n \"LeftRightArrow\",\n \"LeftRightVector\",\n \"LeftTee\",\n \"LeftTeeArrow\",\n \"LeftTeeVector\",\n \"LeftTriangle\",\n \"LeftTriangleBar\",\n \"LeftTriangleEqual\",\n \"LeftUpDownVector\",\n \"LeftUpTeeVector\",\n \"LeftUpVector\",\n \"LeftUpVectorBar\",\n \"LeftVector\",\n \"LeftVectorBar\",\n \"LegendAppearance\",\n \"Legended\",\n \"LegendFunction\",\n \"LegendLabel\",\n \"LegendLayout\",\n \"LegendMargins\",\n \"LegendMarkers\",\n \"LegendMarkerSize\",\n \"LegendreP\",\n \"LegendreQ\",\n \"LegendreType\",\n \"Length\",\n \"LengthWhile\",\n \"LerchPhi\",\n \"Less\",\n \"LessEqual\",\n \"LessEqualGreater\",\n \"LessEqualThan\",\n \"LessFullEqual\",\n \"LessGreater\",\n \"LessLess\",\n \"LessSlantEqual\",\n \"LessThan\",\n \"LessTilde\",\n \"LetterCharacter\",\n \"LetterCounts\",\n \"LetterNumber\",\n \"LetterQ\",\n \"Level\",\n \"LeveneTest\",\n \"LeviCivitaTensor\",\n \"LevyDistribution\",\n \"Lexicographic\",\n \"LibraryDataType\",\n \"LibraryFunction\",\n \"LibraryFunctionError\",\n \"LibraryFunctionInformation\",\n \"LibraryFunctionLoad\",\n \"LibraryFunctionUnload\",\n \"LibraryLoad\",\n \"LibraryUnload\",\n \"LicenseID\",\n \"LiftingFilterData\",\n \"LiftingWaveletTransform\",\n \"LightBlue\",\n \"LightBrown\",\n \"LightCyan\",\n \"Lighter\",\n \"LightGray\",\n \"LightGreen\",\n \"Lighting\",\n \"LightingAngle\",\n \"LightMagenta\",\n \"LightOrange\",\n \"LightPink\",\n \"LightPurple\",\n \"LightRed\",\n \"LightSources\",\n \"LightYellow\",\n \"Likelihood\",\n \"Limit\",\n \"LimitsPositioning\",\n \"LimitsPositioningTokens\",\n \"LindleyDistribution\",\n \"Line\",\n \"Line3DBox\",\n \"Line3DBoxOptions\",\n \"LinearFilter\",\n \"LinearFractionalOptimization\",\n \"LinearFractionalTransform\",\n \"LinearGradientImage\",\n \"LinearizingTransformationData\",\n \"LinearLayer\",\n \"LinearModelFit\",\n \"LinearOffsetFunction\",\n \"LinearOptimization\",\n \"LinearProgramming\",\n \"LinearRecurrence\",\n \"LinearSolve\",\n \"LinearSolveFunction\",\n \"LineBox\",\n \"LineBoxOptions\",\n \"LineBreak\",\n \"LinebreakAdjustments\",\n \"LineBreakChart\",\n \"LinebreakSemicolonWeighting\",\n \"LineBreakWithin\",\n \"LineColor\",\n \"LineGraph\",\n \"LineIndent\",\n \"LineIndentMaxFraction\",\n \"LineIntegralConvolutionPlot\",\n \"LineIntegralConvolutionScale\",\n \"LineLegend\",\n \"LineOpacity\",\n \"LineSpacing\",\n \"LineWrapParts\",\n \"LinkActivate\",\n \"LinkClose\",\n \"LinkConnect\",\n \"LinkConnectedQ\",\n \"LinkCreate\",\n \"LinkError\",\n \"LinkFlush\",\n \"LinkFunction\",\n \"LinkHost\",\n \"LinkInterrupt\",\n \"LinkLaunch\",\n \"LinkMode\",\n \"LinkObject\",\n \"LinkOpen\",\n \"LinkOptions\",\n \"LinkPatterns\",\n \"LinkProtocol\",\n \"LinkRankCentrality\",\n \"LinkRead\",\n \"LinkReadHeld\",\n \"LinkReadyQ\",\n \"Links\",\n \"LinkService\",\n \"LinkWrite\",\n \"LinkWriteHeld\",\n \"LiouvilleLambda\",\n \"List\",\n \"Listable\",\n \"ListAnimate\",\n \"ListContourPlot\",\n \"ListContourPlot3D\",\n \"ListConvolve\",\n \"ListCorrelate\",\n \"ListCurvePathPlot\",\n \"ListDeconvolve\",\n \"ListDensityPlot\",\n \"ListDensityPlot3D\",\n \"Listen\",\n \"ListFormat\",\n \"ListFourierSequenceTransform\",\n \"ListInterpolation\",\n \"ListLineIntegralConvolutionPlot\",\n \"ListLinePlot\",\n \"ListLogLinearPlot\",\n \"ListLogLogPlot\",\n \"ListLogPlot\",\n \"ListPicker\",\n \"ListPickerBox\",\n \"ListPickerBoxBackground\",\n \"ListPickerBoxOptions\",\n \"ListPlay\",\n \"ListPlot\",\n \"ListPlot3D\",\n \"ListPointPlot3D\",\n \"ListPolarPlot\",\n \"ListQ\",\n \"ListSliceContourPlot3D\",\n \"ListSliceDensityPlot3D\",\n \"ListSliceVectorPlot3D\",\n \"ListStepPlot\",\n \"ListStreamDensityPlot\",\n \"ListStreamPlot\",\n \"ListSurfacePlot3D\",\n \"ListVectorDensityPlot\",\n \"ListVectorPlot\",\n \"ListVectorPlot3D\",\n \"ListZTransform\",\n \"Literal\",\n \"LiteralSearch\",\n \"LocalAdaptiveBinarize\",\n \"LocalCache\",\n \"LocalClusteringCoefficient\",\n \"LocalizeDefinitions\",\n \"LocalizeVariables\",\n \"LocalObject\",\n \"LocalObjects\",\n \"LocalResponseNormalizationLayer\",\n \"LocalSubmit\",\n \"LocalSymbol\",\n \"LocalTime\",\n \"LocalTimeZone\",\n \"LocationEquivalenceTest\",\n \"LocationTest\",\n \"Locator\",\n \"LocatorAutoCreate\",\n \"LocatorBox\",\n \"LocatorBoxOptions\",\n \"LocatorCentering\",\n \"LocatorPane\",\n \"LocatorPaneBox\",\n \"LocatorPaneBoxOptions\",\n \"LocatorRegion\",\n \"Locked\",\n \"Log\",\n \"Log10\",\n \"Log2\",\n \"LogBarnesG\",\n \"LogGamma\",\n \"LogGammaDistribution\",\n \"LogicalExpand\",\n \"LogIntegral\",\n \"LogisticDistribution\",\n \"LogisticSigmoid\",\n \"LogitModelFit\",\n \"LogLikelihood\",\n \"LogLinearPlot\",\n \"LogLogisticDistribution\",\n \"LogLogPlot\",\n \"LogMultinormalDistribution\",\n \"LogNormalDistribution\",\n \"LogPlot\",\n \"LogRankTest\",\n \"LogSeriesDistribution\",\n \"LongEqual\",\n \"Longest\",\n \"LongestCommonSequence\",\n \"LongestCommonSequencePositions\",\n \"LongestCommonSubsequence\",\n \"LongestCommonSubsequencePositions\",\n \"LongestMatch\",\n \"LongestOrderedSequence\",\n \"LongForm\",\n \"Longitude\",\n \"LongLeftArrow\",\n \"LongLeftRightArrow\",\n \"LongRightArrow\",\n \"LongShortTermMemoryLayer\",\n \"Lookup\",\n \"Loopback\",\n \"LoopFreeGraphQ\",\n \"Looping\",\n \"LossFunction\",\n \"LowerCaseQ\",\n \"LowerLeftArrow\",\n \"LowerRightArrow\",\n \"LowerTriangularize\",\n \"LowerTriangularMatrixQ\",\n \"LowpassFilter\",\n \"LQEstimatorGains\",\n \"LQGRegulator\",\n \"LQOutputRegulatorGains\",\n \"LQRegulatorGains\",\n \"LUBackSubstitution\",\n \"LucasL\",\n \"LuccioSamiComponents\",\n \"LUDecomposition\",\n \"LunarEclipse\",\n \"LUVColor\",\n \"LyapunovSolve\",\n \"LyonsGroupLy\",\n \"MachineID\",\n \"MachineName\",\n \"MachineNumberQ\",\n \"MachinePrecision\",\n \"MacintoshSystemPageSetup\",\n \"Magenta\",\n \"Magnification\",\n \"Magnify\",\n \"MailAddressValidation\",\n \"MailExecute\",\n \"MailFolder\",\n \"MailItem\",\n \"MailReceiverFunction\",\n \"MailResponseFunction\",\n \"MailSearch\",\n \"MailServerConnect\",\n \"MailServerConnection\",\n \"MailSettings\",\n \"MainSolve\",\n \"MaintainDynamicCaches\",\n \"Majority\",\n \"MakeBoxes\",\n \"MakeExpression\",\n \"MakeRules\",\n \"ManagedLibraryExpressionID\",\n \"ManagedLibraryExpressionQ\",\n \"MandelbrotSetBoettcher\",\n \"MandelbrotSetDistance\",\n \"MandelbrotSetIterationCount\",\n \"MandelbrotSetMemberQ\",\n \"MandelbrotSetPlot\",\n \"MangoldtLambda\",\n \"ManhattanDistance\",\n \"Manipulate\",\n \"Manipulator\",\n \"MannedSpaceMissionData\",\n \"MannWhitneyTest\",\n \"MantissaExponent\",\n \"Manual\",\n \"Map\",\n \"MapAll\",\n \"MapAt\",\n \"MapIndexed\",\n \"MAProcess\",\n \"MapThread\",\n \"MarchenkoPasturDistribution\",\n \"MarcumQ\",\n \"MardiaCombinedTest\",\n \"MardiaKurtosisTest\",\n \"MardiaSkewnessTest\",\n \"MarginalDistribution\",\n \"MarkovProcessProperties\",\n \"Masking\",\n \"MatchingDissimilarity\",\n \"MatchLocalNameQ\",\n \"MatchLocalNames\",\n \"MatchQ\",\n \"Material\",\n \"MathematicalFunctionData\",\n \"MathematicaNotation\",\n \"MathieuC\",\n \"MathieuCharacteristicA\",\n \"MathieuCharacteristicB\",\n \"MathieuCharacteristicExponent\",\n \"MathieuCPrime\",\n \"MathieuGroupM11\",\n \"MathieuGroupM12\",\n \"MathieuGroupM22\",\n \"MathieuGroupM23\",\n \"MathieuGroupM24\",\n \"MathieuS\",\n \"MathieuSPrime\",\n \"MathMLForm\",\n \"MathMLText\",\n \"Matrices\",\n \"MatrixExp\",\n \"MatrixForm\",\n \"MatrixFunction\",\n \"MatrixLog\",\n \"MatrixNormalDistribution\",\n \"MatrixPlot\",\n \"MatrixPower\",\n \"MatrixPropertyDistribution\",\n \"MatrixQ\",\n \"MatrixRank\",\n \"MatrixTDistribution\",\n \"Max\",\n \"MaxBend\",\n \"MaxCellMeasure\",\n \"MaxColorDistance\",\n \"MaxDate\",\n \"MaxDetect\",\n \"MaxDuration\",\n \"MaxExtraBandwidths\",\n \"MaxExtraConditions\",\n \"MaxFeatureDisplacement\",\n \"MaxFeatures\",\n \"MaxFilter\",\n \"MaximalBy\",\n \"Maximize\",\n \"MaxItems\",\n \"MaxIterations\",\n \"MaxLimit\",\n \"MaxMemoryUsed\",\n \"MaxMixtureKernels\",\n \"MaxOverlapFraction\",\n \"MaxPlotPoints\",\n \"MaxPoints\",\n \"MaxRecursion\",\n \"MaxStableDistribution\",\n \"MaxStepFraction\",\n \"MaxSteps\",\n \"MaxStepSize\",\n \"MaxTrainingRounds\",\n \"MaxValue\",\n \"MaxwellDistribution\",\n \"MaxWordGap\",\n \"McLaughlinGroupMcL\",\n \"Mean\",\n \"MeanAbsoluteLossLayer\",\n \"MeanAround\",\n \"MeanClusteringCoefficient\",\n \"MeanDegreeConnectivity\",\n \"MeanDeviation\",\n \"MeanFilter\",\n \"MeanGraphDistance\",\n \"MeanNeighborDegree\",\n \"MeanShift\",\n \"MeanShiftFilter\",\n \"MeanSquaredLossLayer\",\n \"Median\",\n \"MedianDeviation\",\n \"MedianFilter\",\n \"MedicalTestData\",\n \"Medium\",\n \"MeijerG\",\n \"MeijerGReduce\",\n \"MeixnerDistribution\",\n \"MellinConvolve\",\n \"MellinTransform\",\n \"MemberQ\",\n \"MemoryAvailable\",\n \"MemoryConstrained\",\n \"MemoryConstraint\",\n \"MemoryInUse\",\n \"MengerMesh\",\n \"Menu\",\n \"MenuAppearance\",\n \"MenuCommandKey\",\n \"MenuEvaluator\",\n \"MenuItem\",\n \"MenuList\",\n \"MenuPacket\",\n \"MenuSortingValue\",\n \"MenuStyle\",\n \"MenuView\",\n \"Merge\",\n \"MergeDifferences\",\n \"MergingFunction\",\n \"MersennePrimeExponent\",\n \"MersennePrimeExponentQ\",\n \"Mesh\",\n \"MeshCellCentroid\",\n \"MeshCellCount\",\n \"MeshCellHighlight\",\n \"MeshCellIndex\",\n \"MeshCellLabel\",\n \"MeshCellMarker\",\n \"MeshCellMeasure\",\n \"MeshCellQuality\",\n \"MeshCells\",\n \"MeshCellShapeFunction\",\n \"MeshCellStyle\",\n \"MeshConnectivityGraph\",\n \"MeshCoordinates\",\n \"MeshFunctions\",\n \"MeshPrimitives\",\n \"MeshQualityGoal\",\n \"MeshRange\",\n \"MeshRefinementFunction\",\n \"MeshRegion\",\n \"MeshRegionQ\",\n \"MeshShading\",\n \"MeshStyle\",\n \"Message\",\n \"MessageDialog\",\n \"MessageList\",\n \"MessageName\",\n \"MessageObject\",\n \"MessageOptions\",\n \"MessagePacket\",\n \"Messages\",\n \"MessagesNotebook\",\n \"MetaCharacters\",\n \"MetaInformation\",\n \"MeteorShowerData\",\n \"Method\",\n \"MethodOptions\",\n \"MexicanHatWavelet\",\n \"MeyerWavelet\",\n \"Midpoint\",\n \"Min\",\n \"MinColorDistance\",\n \"MinDate\",\n \"MinDetect\",\n \"MineralData\",\n \"MinFilter\",\n \"MinimalBy\",\n \"MinimalPolynomial\",\n \"MinimalStateSpaceModel\",\n \"Minimize\",\n \"MinimumTimeIncrement\",\n \"MinIntervalSize\",\n \"MinkowskiQuestionMark\",\n \"MinLimit\",\n \"MinMax\",\n \"MinorPlanetData\",\n \"Minors\",\n \"MinRecursion\",\n \"MinSize\",\n \"MinStableDistribution\",\n \"Minus\",\n \"MinusPlus\",\n \"MinValue\",\n \"Missing\",\n \"MissingBehavior\",\n \"MissingDataMethod\",\n \"MissingDataRules\",\n \"MissingQ\",\n \"MissingString\",\n \"MissingStyle\",\n \"MissingValuePattern\",\n \"MittagLefflerE\",\n \"MixedFractionParts\",\n \"MixedGraphQ\",\n \"MixedMagnitude\",\n \"MixedRadix\",\n \"MixedRadixQuantity\",\n \"MixedUnit\",\n \"MixtureDistribution\",\n \"Mod\",\n \"Modal\",\n \"Mode\",\n \"Modular\",\n \"ModularInverse\",\n \"ModularLambda\",\n \"Module\",\n \"Modulus\",\n \"MoebiusMu\",\n \"Molecule\",\n \"MoleculeContainsQ\",\n \"MoleculeEquivalentQ\",\n \"MoleculeGraph\",\n \"MoleculeModify\",\n \"MoleculePattern\",\n \"MoleculePlot\",\n \"MoleculePlot3D\",\n \"MoleculeProperty\",\n \"MoleculeQ\",\n \"MoleculeRecognize\",\n \"MoleculeValue\",\n \"Moment\",\n \"Momentary\",\n \"MomentConvert\",\n \"MomentEvaluate\",\n \"MomentGeneratingFunction\",\n \"MomentOfInertia\",\n \"Monday\",\n \"Monitor\",\n \"MonomialList\",\n \"MonomialOrder\",\n \"MonsterGroupM\",\n \"MoonPhase\",\n \"MoonPosition\",\n \"MorletWavelet\",\n \"MorphologicalBinarize\",\n \"MorphologicalBranchPoints\",\n \"MorphologicalComponents\",\n \"MorphologicalEulerNumber\",\n \"MorphologicalGraph\",\n \"MorphologicalPerimeter\",\n \"MorphologicalTransform\",\n \"MortalityData\",\n \"Most\",\n \"MountainData\",\n \"MouseAnnotation\",\n \"MouseAppearance\",\n \"MouseAppearanceTag\",\n \"MouseButtons\",\n \"Mouseover\",\n \"MousePointerNote\",\n \"MousePosition\",\n \"MovieData\",\n \"MovingAverage\",\n \"MovingMap\",\n \"MovingMedian\",\n \"MoyalDistribution\",\n \"Multicolumn\",\n \"MultiedgeStyle\",\n \"MultigraphQ\",\n \"MultilaunchWarning\",\n \"MultiLetterItalics\",\n \"MultiLetterStyle\",\n \"MultilineFunction\",\n \"Multinomial\",\n \"MultinomialDistribution\",\n \"MultinormalDistribution\",\n \"MultiplicativeOrder\",\n \"Multiplicity\",\n \"MultiplySides\",\n \"Multiselection\",\n \"MultivariateHypergeometricDistribution\",\n \"MultivariatePoissonDistribution\",\n \"MultivariateTDistribution\",\n \"N\",\n \"NakagamiDistribution\",\n \"NameQ\",\n \"Names\",\n \"NamespaceBox\",\n \"NamespaceBoxOptions\",\n \"Nand\",\n \"NArgMax\",\n \"NArgMin\",\n \"NBernoulliB\",\n \"NBodySimulation\",\n \"NBodySimulationData\",\n \"NCache\",\n \"NDEigensystem\",\n \"NDEigenvalues\",\n \"NDSolve\",\n \"NDSolveValue\",\n \"Nearest\",\n \"NearestFunction\",\n \"NearestMeshCells\",\n \"NearestNeighborGraph\",\n \"NearestTo\",\n \"NebulaData\",\n \"NeedCurrentFrontEndPackagePacket\",\n \"NeedCurrentFrontEndSymbolsPacket\",\n \"NeedlemanWunschSimilarity\",\n \"Needs\",\n \"Negative\",\n \"NegativeBinomialDistribution\",\n \"NegativeDefiniteMatrixQ\",\n \"NegativeIntegers\",\n \"NegativeMultinomialDistribution\",\n \"NegativeRationals\",\n \"NegativeReals\",\n \"NegativeSemidefiniteMatrixQ\",\n \"NeighborhoodData\",\n \"NeighborhoodGraph\",\n \"Nest\",\n \"NestedGreaterGreater\",\n \"NestedLessLess\",\n \"NestedScriptRules\",\n \"NestGraph\",\n \"NestList\",\n \"NestWhile\",\n \"NestWhileList\",\n \"NetAppend\",\n \"NetBidirectionalOperator\",\n \"NetChain\",\n \"NetDecoder\",\n \"NetDelete\",\n \"NetDrop\",\n \"NetEncoder\",\n \"NetEvaluationMode\",\n \"NetExtract\",\n \"NetFlatten\",\n \"NetFoldOperator\",\n \"NetGANOperator\",\n \"NetGraph\",\n \"NetInformation\",\n \"NetInitialize\",\n \"NetInsert\",\n \"NetInsertSharedArrays\",\n \"NetJoin\",\n \"NetMapOperator\",\n \"NetMapThreadOperator\",\n \"NetMeasurements\",\n \"NetModel\",\n \"NetNestOperator\",\n \"NetPairEmbeddingOperator\",\n \"NetPort\",\n \"NetPortGradient\",\n \"NetPrepend\",\n \"NetRename\",\n \"NetReplace\",\n \"NetReplacePart\",\n \"NetSharedArray\",\n \"NetStateObject\",\n \"NetTake\",\n \"NetTrain\",\n \"NetTrainResultsObject\",\n \"NetworkPacketCapture\",\n \"NetworkPacketRecording\",\n \"NetworkPacketRecordingDuring\",\n \"NetworkPacketTrace\",\n \"NeumannValue\",\n \"NevilleThetaC\",\n \"NevilleThetaD\",\n \"NevilleThetaN\",\n \"NevilleThetaS\",\n \"NewPrimitiveStyle\",\n \"NExpectation\",\n \"Next\",\n \"NextCell\",\n \"NextDate\",\n \"NextPrime\",\n \"NextScheduledTaskTime\",\n \"NHoldAll\",\n \"NHoldFirst\",\n \"NHoldRest\",\n \"NicholsGridLines\",\n \"NicholsPlot\",\n \"NightHemisphere\",\n \"NIntegrate\",\n \"NMaximize\",\n \"NMaxValue\",\n \"NMinimize\",\n \"NMinValue\",\n \"NominalVariables\",\n \"NonAssociative\",\n \"NoncentralBetaDistribution\",\n \"NoncentralChiSquareDistribution\",\n \"NoncentralFRatioDistribution\",\n \"NoncentralStudentTDistribution\",\n \"NonCommutativeMultiply\",\n \"NonConstants\",\n \"NondimensionalizationTransform\",\n \"None\",\n \"NoneTrue\",\n \"NonlinearModelFit\",\n \"NonlinearStateSpaceModel\",\n \"NonlocalMeansFilter\",\n \"NonNegative\",\n \"NonNegativeIntegers\",\n \"NonNegativeRationals\",\n \"NonNegativeReals\",\n \"NonPositive\",\n \"NonPositiveIntegers\",\n \"NonPositiveRationals\",\n \"NonPositiveReals\",\n \"Nor\",\n \"NorlundB\",\n \"Norm\",\n \"Normal\",\n \"NormalDistribution\",\n \"NormalGrouping\",\n \"NormalizationLayer\",\n \"Normalize\",\n \"Normalized\",\n \"NormalizedSquaredEuclideanDistance\",\n \"NormalMatrixQ\",\n \"NormalsFunction\",\n \"NormFunction\",\n \"Not\",\n \"NotCongruent\",\n \"NotCupCap\",\n \"NotDoubleVerticalBar\",\n \"Notebook\",\n \"NotebookApply\",\n \"NotebookAutoSave\",\n \"NotebookClose\",\n \"NotebookConvertSettings\",\n \"NotebookCreate\",\n \"NotebookCreateReturnObject\",\n \"NotebookDefault\",\n \"NotebookDelete\",\n \"NotebookDirectory\",\n \"NotebookDynamicExpression\",\n \"NotebookEvaluate\",\n \"NotebookEventActions\",\n \"NotebookFileName\",\n \"NotebookFind\",\n \"NotebookFindReturnObject\",\n \"NotebookGet\",\n \"NotebookGetLayoutInformationPacket\",\n \"NotebookGetMisspellingsPacket\",\n \"NotebookImport\",\n \"NotebookInformation\",\n \"NotebookInterfaceObject\",\n \"NotebookLocate\",\n \"NotebookObject\",\n \"NotebookOpen\",\n \"NotebookOpenReturnObject\",\n \"NotebookPath\",\n \"NotebookPrint\",\n \"NotebookPut\",\n \"NotebookPutReturnObject\",\n \"NotebookRead\",\n \"NotebookResetGeneratedCells\",\n \"Notebooks\",\n \"NotebookSave\",\n \"NotebookSaveAs\",\n \"NotebookSelection\",\n \"NotebookSetupLayoutInformationPacket\",\n \"NotebooksMenu\",\n \"NotebookTemplate\",\n \"NotebookWrite\",\n \"NotElement\",\n \"NotEqualTilde\",\n \"NotExists\",\n \"NotGreater\",\n \"NotGreaterEqual\",\n \"NotGreaterFullEqual\",\n \"NotGreaterGreater\",\n \"NotGreaterLess\",\n \"NotGreaterSlantEqual\",\n \"NotGreaterTilde\",\n \"Nothing\",\n \"NotHumpDownHump\",\n \"NotHumpEqual\",\n \"NotificationFunction\",\n \"NotLeftTriangle\",\n \"NotLeftTriangleBar\",\n \"NotLeftTriangleEqual\",\n \"NotLess\",\n \"NotLessEqual\",\n \"NotLessFullEqual\",\n \"NotLessGreater\",\n \"NotLessLess\",\n \"NotLessSlantEqual\",\n \"NotLessTilde\",\n \"NotNestedGreaterGreater\",\n \"NotNestedLessLess\",\n \"NotPrecedes\",\n \"NotPrecedesEqual\",\n \"NotPrecedesSlantEqual\",\n \"NotPrecedesTilde\",\n \"NotReverseElement\",\n \"NotRightTriangle\",\n \"NotRightTriangleBar\",\n \"NotRightTriangleEqual\",\n \"NotSquareSubset\",\n \"NotSquareSubsetEqual\",\n \"NotSquareSuperset\",\n \"NotSquareSupersetEqual\",\n \"NotSubset\",\n \"NotSubsetEqual\",\n \"NotSucceeds\",\n \"NotSucceedsEqual\",\n \"NotSucceedsSlantEqual\",\n \"NotSucceedsTilde\",\n \"NotSuperset\",\n \"NotSupersetEqual\",\n \"NotTilde\",\n \"NotTildeEqual\",\n \"NotTildeFullEqual\",\n \"NotTildeTilde\",\n \"NotVerticalBar\",\n \"Now\",\n \"NoWhitespace\",\n \"NProbability\",\n \"NProduct\",\n \"NProductFactors\",\n \"NRoots\",\n \"NSolve\",\n \"NSum\",\n \"NSumTerms\",\n \"NuclearExplosionData\",\n \"NuclearReactorData\",\n \"Null\",\n \"NullRecords\",\n \"NullSpace\",\n \"NullWords\",\n \"Number\",\n \"NumberCompose\",\n \"NumberDecompose\",\n \"NumberExpand\",\n \"NumberFieldClassNumber\",\n \"NumberFieldDiscriminant\",\n \"NumberFieldFundamentalUnits\",\n \"NumberFieldIntegralBasis\",\n \"NumberFieldNormRepresentatives\",\n \"NumberFieldRegulator\",\n \"NumberFieldRootsOfUnity\",\n \"NumberFieldSignature\",\n \"NumberForm\",\n \"NumberFormat\",\n \"NumberLinePlot\",\n \"NumberMarks\",\n \"NumberMultiplier\",\n \"NumberPadding\",\n \"NumberPoint\",\n \"NumberQ\",\n \"NumberSeparator\",\n \"NumberSigns\",\n \"NumberString\",\n \"Numerator\",\n \"NumeratorDenominator\",\n \"NumericalOrder\",\n \"NumericalSort\",\n \"NumericArray\",\n \"NumericArrayQ\",\n \"NumericArrayType\",\n \"NumericFunction\",\n \"NumericQ\",\n \"NuttallWindow\",\n \"NValues\",\n \"NyquistGridLines\",\n \"NyquistPlot\",\n \"O\",\n \"ObservabilityGramian\",\n \"ObservabilityMatrix\",\n \"ObservableDecomposition\",\n \"ObservableModelQ\",\n \"OceanData\",\n \"Octahedron\",\n \"OddQ\",\n \"Off\",\n \"Offset\",\n \"OLEData\",\n \"On\",\n \"ONanGroupON\",\n \"Once\",\n \"OneIdentity\",\n \"Opacity\",\n \"OpacityFunction\",\n \"OpacityFunctionScaling\",\n \"Open\",\n \"OpenAppend\",\n \"Opener\",\n \"OpenerBox\",\n \"OpenerBoxOptions\",\n \"OpenerView\",\n \"OpenFunctionInspectorPacket\",\n \"Opening\",\n \"OpenRead\",\n \"OpenSpecialOptions\",\n \"OpenTemporary\",\n \"OpenWrite\",\n \"Operate\",\n \"OperatingSystem\",\n \"OperatorApplied\",\n \"OptimumFlowData\",\n \"Optional\",\n \"OptionalElement\",\n \"OptionInspectorSettings\",\n \"OptionQ\",\n \"Options\",\n \"OptionsPacket\",\n \"OptionsPattern\",\n \"OptionValue\",\n \"OptionValueBox\",\n \"OptionValueBoxOptions\",\n \"Or\",\n \"Orange\",\n \"Order\",\n \"OrderDistribution\",\n \"OrderedQ\",\n \"Ordering\",\n \"OrderingBy\",\n \"OrderingLayer\",\n \"Orderless\",\n \"OrderlessPatternSequence\",\n \"OrnsteinUhlenbeckProcess\",\n \"Orthogonalize\",\n \"OrthogonalMatrixQ\",\n \"Out\",\n \"Outer\",\n \"OuterPolygon\",\n \"OuterPolyhedron\",\n \"OutputAutoOverwrite\",\n \"OutputControllabilityMatrix\",\n \"OutputControllableModelQ\",\n \"OutputForm\",\n \"OutputFormData\",\n \"OutputGrouping\",\n \"OutputMathEditExpression\",\n \"OutputNamePacket\",\n \"OutputResponse\",\n \"OutputSizeLimit\",\n \"OutputStream\",\n \"Over\",\n \"OverBar\",\n \"OverDot\",\n \"Overflow\",\n \"OverHat\",\n \"Overlaps\",\n \"Overlay\",\n \"OverlayBox\",\n \"OverlayBoxOptions\",\n \"Overscript\",\n \"OverscriptBox\",\n \"OverscriptBoxOptions\",\n \"OverTilde\",\n \"OverVector\",\n \"OverwriteTarget\",\n \"OwenT\",\n \"OwnValues\",\n \"Package\",\n \"PackingMethod\",\n \"PackPaclet\",\n \"PacletDataRebuild\",\n \"PacletDirectoryAdd\",\n \"PacletDirectoryLoad\",\n \"PacletDirectoryRemove\",\n \"PacletDirectoryUnload\",\n \"PacletDisable\",\n \"PacletEnable\",\n \"PacletFind\",\n \"PacletFindRemote\",\n \"PacletInformation\",\n \"PacletInstall\",\n \"PacletInstallSubmit\",\n \"PacletNewerQ\",\n \"PacletObject\",\n \"PacletObjectQ\",\n \"PacletSite\",\n \"PacletSiteObject\",\n \"PacletSiteRegister\",\n \"PacletSites\",\n \"PacletSiteUnregister\",\n \"PacletSiteUpdate\",\n \"PacletUninstall\",\n \"PacletUpdate\",\n \"PaddedForm\",\n \"Padding\",\n \"PaddingLayer\",\n \"PaddingSize\",\n \"PadeApproximant\",\n \"PadLeft\",\n \"PadRight\",\n \"PageBreakAbove\",\n \"PageBreakBelow\",\n \"PageBreakWithin\",\n \"PageFooterLines\",\n \"PageFooters\",\n \"PageHeaderLines\",\n \"PageHeaders\",\n \"PageHeight\",\n \"PageRankCentrality\",\n \"PageTheme\",\n \"PageWidth\",\n \"Pagination\",\n \"PairedBarChart\",\n \"PairedHistogram\",\n \"PairedSmoothHistogram\",\n \"PairedTTest\",\n \"PairedZTest\",\n \"PaletteNotebook\",\n \"PalettePath\",\n \"PalindromeQ\",\n \"Pane\",\n \"PaneBox\",\n \"PaneBoxOptions\",\n \"Panel\",\n \"PanelBox\",\n \"PanelBoxOptions\",\n \"Paneled\",\n \"PaneSelector\",\n \"PaneSelectorBox\",\n \"PaneSelectorBoxOptions\",\n \"PaperWidth\",\n \"ParabolicCylinderD\",\n \"ParagraphIndent\",\n \"ParagraphSpacing\",\n \"ParallelArray\",\n \"ParallelCombine\",\n \"ParallelDo\",\n \"Parallelepiped\",\n \"ParallelEvaluate\",\n \"Parallelization\",\n \"Parallelize\",\n \"ParallelMap\",\n \"ParallelNeeds\",\n \"Parallelogram\",\n \"ParallelProduct\",\n \"ParallelSubmit\",\n \"ParallelSum\",\n \"ParallelTable\",\n \"ParallelTry\",\n \"Parameter\",\n \"ParameterEstimator\",\n \"ParameterMixtureDistribution\",\n \"ParameterVariables\",\n \"ParametricFunction\",\n \"ParametricNDSolve\",\n \"ParametricNDSolveValue\",\n \"ParametricPlot\",\n \"ParametricPlot3D\",\n \"ParametricRampLayer\",\n \"ParametricRegion\",\n \"ParentBox\",\n \"ParentCell\",\n \"ParentConnect\",\n \"ParentDirectory\",\n \"ParentForm\",\n \"Parenthesize\",\n \"ParentList\",\n \"ParentNotebook\",\n \"ParetoDistribution\",\n \"ParetoPickandsDistribution\",\n \"ParkData\",\n \"Part\",\n \"PartBehavior\",\n \"PartialCorrelationFunction\",\n \"PartialD\",\n \"ParticleAcceleratorData\",\n \"ParticleData\",\n \"Partition\",\n \"PartitionGranularity\",\n \"PartitionsP\",\n \"PartitionsQ\",\n \"PartLayer\",\n \"PartOfSpeech\",\n \"PartProtection\",\n \"ParzenWindow\",\n \"PascalDistribution\",\n \"PassEventsDown\",\n \"PassEventsUp\",\n \"Paste\",\n \"PasteAutoQuoteCharacters\",\n \"PasteBoxFormInlineCells\",\n \"PasteButton\",\n \"Path\",\n \"PathGraph\",\n \"PathGraphQ\",\n \"Pattern\",\n \"PatternFilling\",\n \"PatternSequence\",\n \"PatternTest\",\n \"PauliMatrix\",\n \"PaulWavelet\",\n \"Pause\",\n \"PausedTime\",\n \"PDF\",\n \"PeakDetect\",\n \"PeanoCurve\",\n \"PearsonChiSquareTest\",\n \"PearsonCorrelationTest\",\n \"PearsonDistribution\",\n \"PercentForm\",\n \"PerfectNumber\",\n \"PerfectNumberQ\",\n \"PerformanceGoal\",\n \"Perimeter\",\n \"PeriodicBoundaryCondition\",\n \"PeriodicInterpolation\",\n \"Periodogram\",\n \"PeriodogramArray\",\n \"Permanent\",\n \"Permissions\",\n \"PermissionsGroup\",\n \"PermissionsGroupMemberQ\",\n \"PermissionsGroups\",\n \"PermissionsKey\",\n \"PermissionsKeys\",\n \"PermutationCycles\",\n \"PermutationCyclesQ\",\n \"PermutationGroup\",\n \"PermutationLength\",\n \"PermutationList\",\n \"PermutationListQ\",\n \"PermutationMax\",\n \"PermutationMin\",\n \"PermutationOrder\",\n \"PermutationPower\",\n \"PermutationProduct\",\n \"PermutationReplace\",\n \"Permutations\",\n \"PermutationSupport\",\n \"Permute\",\n \"PeronaMalikFilter\",\n \"Perpendicular\",\n \"PerpendicularBisector\",\n \"PersistenceLocation\",\n \"PersistenceTime\",\n \"PersistentObject\",\n \"PersistentObjects\",\n \"PersistentValue\",\n \"PersonData\",\n \"PERTDistribution\",\n \"PetersenGraph\",\n \"PhaseMargins\",\n \"PhaseRange\",\n \"PhysicalSystemData\",\n \"Pi\",\n \"Pick\",\n \"PIDData\",\n \"PIDDerivativeFilter\",\n \"PIDFeedforward\",\n \"PIDTune\",\n \"Piecewise\",\n \"PiecewiseExpand\",\n \"PieChart\",\n \"PieChart3D\",\n \"PillaiTrace\",\n \"PillaiTraceTest\",\n \"PingTime\",\n \"Pink\",\n \"PitchRecognize\",\n \"Pivoting\",\n \"PixelConstrained\",\n \"PixelValue\",\n \"PixelValuePositions\",\n \"Placed\",\n \"Placeholder\",\n \"PlaceholderReplace\",\n \"Plain\",\n \"PlanarAngle\",\n \"PlanarGraph\",\n \"PlanarGraphQ\",\n \"PlanckRadiationLaw\",\n \"PlaneCurveData\",\n \"PlanetaryMoonData\",\n \"PlanetData\",\n \"PlantData\",\n \"Play\",\n \"PlayRange\",\n \"Plot\",\n \"Plot3D\",\n \"Plot3Matrix\",\n \"PlotDivision\",\n \"PlotJoined\",\n \"PlotLabel\",\n \"PlotLabels\",\n \"PlotLayout\",\n \"PlotLegends\",\n \"PlotMarkers\",\n \"PlotPoints\",\n \"PlotRange\",\n \"PlotRangeClipping\",\n \"PlotRangeClipPlanesStyle\",\n \"PlotRangePadding\",\n \"PlotRegion\",\n \"PlotStyle\",\n \"PlotTheme\",\n \"Pluralize\",\n \"Plus\",\n \"PlusMinus\",\n \"Pochhammer\",\n \"PodStates\",\n \"PodWidth\",\n \"Point\",\n \"Point3DBox\",\n \"Point3DBoxOptions\",\n \"PointBox\",\n \"PointBoxOptions\",\n \"PointFigureChart\",\n \"PointLegend\",\n \"PointSize\",\n \"PoissonConsulDistribution\",\n \"PoissonDistribution\",\n \"PoissonProcess\",\n \"PoissonWindow\",\n \"PolarAxes\",\n \"PolarAxesOrigin\",\n \"PolarGridLines\",\n \"PolarPlot\",\n \"PolarTicks\",\n \"PoleZeroMarkers\",\n \"PolyaAeppliDistribution\",\n \"PolyGamma\",\n \"Polygon\",\n \"Polygon3DBox\",\n \"Polygon3DBoxOptions\",\n \"PolygonalNumber\",\n \"PolygonAngle\",\n \"PolygonBox\",\n \"PolygonBoxOptions\",\n \"PolygonCoordinates\",\n \"PolygonDecomposition\",\n \"PolygonHoleScale\",\n \"PolygonIntersections\",\n \"PolygonScale\",\n \"Polyhedron\",\n \"PolyhedronAngle\",\n \"PolyhedronCoordinates\",\n \"PolyhedronData\",\n \"PolyhedronDecomposition\",\n \"PolyhedronGenus\",\n \"PolyLog\",\n \"PolynomialExtendedGCD\",\n \"PolynomialForm\",\n \"PolynomialGCD\",\n \"PolynomialLCM\",\n \"PolynomialMod\",\n \"PolynomialQ\",\n \"PolynomialQuotient\",\n \"PolynomialQuotientRemainder\",\n \"PolynomialReduce\",\n \"PolynomialRemainder\",\n \"Polynomials\",\n \"PoolingLayer\",\n \"PopupMenu\",\n \"PopupMenuBox\",\n \"PopupMenuBoxOptions\",\n \"PopupView\",\n \"PopupWindow\",\n \"Position\",\n \"PositionIndex\",\n \"Positive\",\n \"PositiveDefiniteMatrixQ\",\n \"PositiveIntegers\",\n \"PositiveRationals\",\n \"PositiveReals\",\n \"PositiveSemidefiniteMatrixQ\",\n \"PossibleZeroQ\",\n \"Postfix\",\n \"PostScript\",\n \"Power\",\n \"PowerDistribution\",\n \"PowerExpand\",\n \"PowerMod\",\n \"PowerModList\",\n \"PowerRange\",\n \"PowerSpectralDensity\",\n \"PowersRepresentations\",\n \"PowerSymmetricPolynomial\",\n \"Precedence\",\n \"PrecedenceForm\",\n \"Precedes\",\n \"PrecedesEqual\",\n \"PrecedesSlantEqual\",\n \"PrecedesTilde\",\n \"Precision\",\n \"PrecisionGoal\",\n \"PreDecrement\",\n \"Predict\",\n \"PredictionRoot\",\n \"PredictorFunction\",\n \"PredictorInformation\",\n \"PredictorMeasurements\",\n \"PredictorMeasurementsObject\",\n \"PreemptProtect\",\n \"PreferencesPath\",\n \"Prefix\",\n \"PreIncrement\",\n \"Prepend\",\n \"PrependLayer\",\n \"PrependTo\",\n \"PreprocessingRules\",\n \"PreserveColor\",\n \"PreserveImageOptions\",\n \"Previous\",\n \"PreviousCell\",\n \"PreviousDate\",\n \"PriceGraphDistribution\",\n \"PrimaryPlaceholder\",\n \"Prime\",\n \"PrimeNu\",\n \"PrimeOmega\",\n \"PrimePi\",\n \"PrimePowerQ\",\n \"PrimeQ\",\n \"Primes\",\n \"PrimeZetaP\",\n \"PrimitivePolynomialQ\",\n \"PrimitiveRoot\",\n \"PrimitiveRootList\",\n \"PrincipalComponents\",\n \"PrincipalValue\",\n \"Print\",\n \"PrintableASCIIQ\",\n \"PrintAction\",\n \"PrintForm\",\n \"PrintingCopies\",\n \"PrintingOptions\",\n \"PrintingPageRange\",\n \"PrintingStartingPageNumber\",\n \"PrintingStyleEnvironment\",\n \"Printout3D\",\n \"Printout3DPreviewer\",\n \"PrintPrecision\",\n \"PrintTemporary\",\n \"Prism\",\n \"PrismBox\",\n \"PrismBoxOptions\",\n \"PrivateCellOptions\",\n \"PrivateEvaluationOptions\",\n \"PrivateFontOptions\",\n \"PrivateFrontEndOptions\",\n \"PrivateKey\",\n \"PrivateNotebookOptions\",\n \"PrivatePaths\",\n \"Probability\",\n \"ProbabilityDistribution\",\n \"ProbabilityPlot\",\n \"ProbabilityPr\",\n \"ProbabilityScalePlot\",\n \"ProbitModelFit\",\n \"ProcessConnection\",\n \"ProcessDirectory\",\n \"ProcessEnvironment\",\n \"Processes\",\n \"ProcessEstimator\",\n \"ProcessInformation\",\n \"ProcessObject\",\n \"ProcessParameterAssumptions\",\n \"ProcessParameterQ\",\n \"ProcessStateDomain\",\n \"ProcessStatus\",\n \"ProcessTimeDomain\",\n \"Product\",\n \"ProductDistribution\",\n \"ProductLog\",\n \"ProgressIndicator\",\n \"ProgressIndicatorBox\",\n \"ProgressIndicatorBoxOptions\",\n \"Projection\",\n \"Prolog\",\n \"PromptForm\",\n \"ProofObject\",\n \"Properties\",\n \"Property\",\n \"PropertyList\",\n \"PropertyValue\",\n \"Proportion\",\n \"Proportional\",\n \"Protect\",\n \"Protected\",\n \"ProteinData\",\n \"Pruning\",\n \"PseudoInverse\",\n \"PsychrometricPropertyData\",\n \"PublicKey\",\n \"PublisherID\",\n \"PulsarData\",\n \"PunctuationCharacter\",\n \"Purple\",\n \"Put\",\n \"PutAppend\",\n \"Pyramid\",\n \"PyramidBox\",\n \"PyramidBoxOptions\",\n \"QBinomial\",\n \"QFactorial\",\n \"QGamma\",\n \"QHypergeometricPFQ\",\n \"QnDispersion\",\n \"QPochhammer\",\n \"QPolyGamma\",\n \"QRDecomposition\",\n \"QuadraticIrrationalQ\",\n \"QuadraticOptimization\",\n \"Quantile\",\n \"QuantilePlot\",\n \"Quantity\",\n \"QuantityArray\",\n \"QuantityDistribution\",\n \"QuantityForm\",\n \"QuantityMagnitude\",\n \"QuantityQ\",\n \"QuantityUnit\",\n \"QuantityVariable\",\n \"QuantityVariableCanonicalUnit\",\n \"QuantityVariableDimensions\",\n \"QuantityVariableIdentifier\",\n \"QuantityVariablePhysicalQuantity\",\n \"Quartics\",\n \"QuartileDeviation\",\n \"Quartiles\",\n \"QuartileSkewness\",\n \"Query\",\n \"QueueingNetworkProcess\",\n \"QueueingProcess\",\n \"QueueProperties\",\n \"Quiet\",\n \"Quit\",\n \"Quotient\",\n \"QuotientRemainder\",\n \"RadialGradientImage\",\n \"RadialityCentrality\",\n \"RadicalBox\",\n \"RadicalBoxOptions\",\n \"RadioButton\",\n \"RadioButtonBar\",\n \"RadioButtonBox\",\n \"RadioButtonBoxOptions\",\n \"Radon\",\n \"RadonTransform\",\n \"RamanujanTau\",\n \"RamanujanTauL\",\n \"RamanujanTauTheta\",\n \"RamanujanTauZ\",\n \"Ramp\",\n \"Random\",\n \"RandomChoice\",\n \"RandomColor\",\n \"RandomComplex\",\n \"RandomEntity\",\n \"RandomFunction\",\n \"RandomGeoPosition\",\n \"RandomGraph\",\n \"RandomImage\",\n \"RandomInstance\",\n \"RandomInteger\",\n \"RandomPermutation\",\n \"RandomPoint\",\n \"RandomPolygon\",\n \"RandomPolyhedron\",\n \"RandomPrime\",\n \"RandomReal\",\n \"RandomSample\",\n \"RandomSeed\",\n \"RandomSeeding\",\n \"RandomVariate\",\n \"RandomWalkProcess\",\n \"RandomWord\",\n \"Range\",\n \"RangeFilter\",\n \"RangeSpecification\",\n \"RankedMax\",\n \"RankedMin\",\n \"RarerProbability\",\n \"Raster\",\n \"Raster3D\",\n \"Raster3DBox\",\n \"Raster3DBoxOptions\",\n \"RasterArray\",\n \"RasterBox\",\n \"RasterBoxOptions\",\n \"Rasterize\",\n \"RasterSize\",\n \"Rational\",\n \"RationalFunctions\",\n \"Rationalize\",\n \"Rationals\",\n \"Ratios\",\n \"RawArray\",\n \"RawBoxes\",\n \"RawData\",\n \"RawMedium\",\n \"RayleighDistribution\",\n \"Re\",\n \"Read\",\n \"ReadByteArray\",\n \"ReadLine\",\n \"ReadList\",\n \"ReadProtected\",\n \"ReadString\",\n \"Real\",\n \"RealAbs\",\n \"RealBlockDiagonalForm\",\n \"RealDigits\",\n \"RealExponent\",\n \"Reals\",\n \"RealSign\",\n \"Reap\",\n \"RebuildPacletData\",\n \"RecognitionPrior\",\n \"RecognitionThreshold\",\n \"Record\",\n \"RecordLists\",\n \"RecordSeparators\",\n \"Rectangle\",\n \"RectangleBox\",\n \"RectangleBoxOptions\",\n \"RectangleChart\",\n \"RectangleChart3D\",\n \"RectangularRepeatingElement\",\n \"RecurrenceFilter\",\n \"RecurrenceTable\",\n \"RecurringDigitsForm\",\n \"Red\",\n \"Reduce\",\n \"RefBox\",\n \"ReferenceLineStyle\",\n \"ReferenceMarkers\",\n \"ReferenceMarkerStyle\",\n \"Refine\",\n \"ReflectionMatrix\",\n \"ReflectionTransform\",\n \"Refresh\",\n \"RefreshRate\",\n \"Region\",\n \"RegionBinarize\",\n \"RegionBoundary\",\n \"RegionBoundaryStyle\",\n \"RegionBounds\",\n \"RegionCentroid\",\n \"RegionDifference\",\n \"RegionDimension\",\n \"RegionDisjoint\",\n \"RegionDistance\",\n \"RegionDistanceFunction\",\n \"RegionEmbeddingDimension\",\n \"RegionEqual\",\n \"RegionFillingStyle\",\n \"RegionFunction\",\n \"RegionImage\",\n \"RegionIntersection\",\n \"RegionMeasure\",\n \"RegionMember\",\n \"RegionMemberFunction\",\n \"RegionMoment\",\n \"RegionNearest\",\n \"RegionNearestFunction\",\n \"RegionPlot\",\n \"RegionPlot3D\",\n \"RegionProduct\",\n \"RegionQ\",\n \"RegionResize\",\n \"RegionSize\",\n \"RegionSymmetricDifference\",\n \"RegionUnion\",\n \"RegionWithin\",\n \"RegisterExternalEvaluator\",\n \"RegularExpression\",\n \"Regularization\",\n \"RegularlySampledQ\",\n \"RegularPolygon\",\n \"ReIm\",\n \"ReImLabels\",\n \"ReImPlot\",\n \"ReImStyle\",\n \"Reinstall\",\n \"RelationalDatabase\",\n \"RelationGraph\",\n \"Release\",\n \"ReleaseHold\",\n \"ReliabilityDistribution\",\n \"ReliefImage\",\n \"ReliefPlot\",\n \"RemoteAuthorizationCaching\",\n \"RemoteConnect\",\n \"RemoteConnectionObject\",\n \"RemoteFile\",\n \"RemoteRun\",\n \"RemoteRunProcess\",\n \"Remove\",\n \"RemoveAlphaChannel\",\n \"RemoveAsynchronousTask\",\n \"RemoveAudioStream\",\n \"RemoveBackground\",\n \"RemoveChannelListener\",\n \"RemoveChannelSubscribers\",\n \"Removed\",\n \"RemoveDiacritics\",\n \"RemoveInputStreamMethod\",\n \"RemoveOutputStreamMethod\",\n \"RemoveProperty\",\n \"RemoveScheduledTask\",\n \"RemoveUsers\",\n \"RemoveVideoStream\",\n \"RenameDirectory\",\n \"RenameFile\",\n \"RenderAll\",\n \"RenderingOptions\",\n \"RenewalProcess\",\n \"RenkoChart\",\n \"RepairMesh\",\n \"Repeated\",\n \"RepeatedNull\",\n \"RepeatedString\",\n \"RepeatedTiming\",\n \"RepeatingElement\",\n \"Replace\",\n \"ReplaceAll\",\n \"ReplaceHeldPart\",\n \"ReplaceImageValue\",\n \"ReplaceList\",\n \"ReplacePart\",\n \"ReplacePixelValue\",\n \"ReplaceRepeated\",\n \"ReplicateLayer\",\n \"RequiredPhysicalQuantities\",\n \"Resampling\",\n \"ResamplingAlgorithmData\",\n \"ResamplingMethod\",\n \"Rescale\",\n \"RescalingTransform\",\n \"ResetDirectory\",\n \"ResetMenusPacket\",\n \"ResetScheduledTask\",\n \"ReshapeLayer\",\n \"Residue\",\n \"ResizeLayer\",\n \"Resolve\",\n \"ResourceAcquire\",\n \"ResourceData\",\n \"ResourceFunction\",\n \"ResourceObject\",\n \"ResourceRegister\",\n \"ResourceRemove\",\n \"ResourceSearch\",\n \"ResourceSubmissionObject\",\n \"ResourceSubmit\",\n \"ResourceSystemBase\",\n \"ResourceSystemPath\",\n \"ResourceUpdate\",\n \"ResourceVersion\",\n \"ResponseForm\",\n \"Rest\",\n \"RestartInterval\",\n \"Restricted\",\n \"Resultant\",\n \"ResumePacket\",\n \"Return\",\n \"ReturnEntersInput\",\n \"ReturnExpressionPacket\",\n \"ReturnInputFormPacket\",\n \"ReturnPacket\",\n \"ReturnReceiptFunction\",\n \"ReturnTextPacket\",\n \"Reverse\",\n \"ReverseApplied\",\n \"ReverseBiorthogonalSplineWavelet\",\n \"ReverseElement\",\n \"ReverseEquilibrium\",\n \"ReverseGraph\",\n \"ReverseSort\",\n \"ReverseSortBy\",\n \"ReverseUpEquilibrium\",\n \"RevolutionAxis\",\n \"RevolutionPlot3D\",\n \"RGBColor\",\n \"RiccatiSolve\",\n \"RiceDistribution\",\n \"RidgeFilter\",\n \"RiemannR\",\n \"RiemannSiegelTheta\",\n \"RiemannSiegelZ\",\n \"RiemannXi\",\n \"Riffle\",\n \"Right\",\n \"RightArrow\",\n \"RightArrowBar\",\n \"RightArrowLeftArrow\",\n \"RightComposition\",\n \"RightCosetRepresentative\",\n \"RightDownTeeVector\",\n \"RightDownVector\",\n \"RightDownVectorBar\",\n \"RightTee\",\n \"RightTeeArrow\",\n \"RightTeeVector\",\n \"RightTriangle\",\n \"RightTriangleBar\",\n \"RightTriangleEqual\",\n \"RightUpDownVector\",\n \"RightUpTeeVector\",\n \"RightUpVector\",\n \"RightUpVectorBar\",\n \"RightVector\",\n \"RightVectorBar\",\n \"RiskAchievementImportance\",\n \"RiskReductionImportance\",\n \"RogersTanimotoDissimilarity\",\n \"RollPitchYawAngles\",\n \"RollPitchYawMatrix\",\n \"RomanNumeral\",\n \"Root\",\n \"RootApproximant\",\n \"RootIntervals\",\n \"RootLocusPlot\",\n \"RootMeanSquare\",\n \"RootOfUnityQ\",\n \"RootReduce\",\n \"Roots\",\n \"RootSum\",\n \"Rotate\",\n \"RotateLabel\",\n \"RotateLeft\",\n \"RotateRight\",\n \"RotationAction\",\n \"RotationBox\",\n \"RotationBoxOptions\",\n \"RotationMatrix\",\n \"RotationTransform\",\n \"Round\",\n \"RoundImplies\",\n \"RoundingRadius\",\n \"Row\",\n \"RowAlignments\",\n \"RowBackgrounds\",\n \"RowBox\",\n \"RowHeights\",\n \"RowLines\",\n \"RowMinHeight\",\n \"RowReduce\",\n \"RowsEqual\",\n \"RowSpacings\",\n \"RSolve\",\n \"RSolveValue\",\n \"RudinShapiro\",\n \"RudvalisGroupRu\",\n \"Rule\",\n \"RuleCondition\",\n \"RuleDelayed\",\n \"RuleForm\",\n \"RulePlot\",\n \"RulerUnits\",\n \"Run\",\n \"RunProcess\",\n \"RunScheduledTask\",\n \"RunThrough\",\n \"RuntimeAttributes\",\n \"RuntimeOptions\",\n \"RussellRaoDissimilarity\",\n \"SameQ\",\n \"SameTest\",\n \"SameTestProperties\",\n \"SampledEntityClass\",\n \"SampleDepth\",\n \"SampledSoundFunction\",\n \"SampledSoundList\",\n \"SampleRate\",\n \"SamplingPeriod\",\n \"SARIMAProcess\",\n \"SARMAProcess\",\n \"SASTriangle\",\n \"SatelliteData\",\n \"SatisfiabilityCount\",\n \"SatisfiabilityInstances\",\n \"SatisfiableQ\",\n \"Saturday\",\n \"Save\",\n \"Saveable\",\n \"SaveAutoDelete\",\n \"SaveConnection\",\n \"SaveDefinitions\",\n \"SavitzkyGolayMatrix\",\n \"SawtoothWave\",\n \"Scale\",\n \"Scaled\",\n \"ScaleDivisions\",\n \"ScaledMousePosition\",\n \"ScaleOrigin\",\n \"ScalePadding\",\n \"ScaleRanges\",\n \"ScaleRangeStyle\",\n \"ScalingFunctions\",\n \"ScalingMatrix\",\n \"ScalingTransform\",\n \"Scan\",\n \"ScheduledTask\",\n \"ScheduledTaskActiveQ\",\n \"ScheduledTaskInformation\",\n \"ScheduledTaskInformationData\",\n \"ScheduledTaskObject\",\n \"ScheduledTasks\",\n \"SchurDecomposition\",\n \"ScientificForm\",\n \"ScientificNotationThreshold\",\n \"ScorerGi\",\n \"ScorerGiPrime\",\n \"ScorerHi\",\n \"ScorerHiPrime\",\n \"ScreenRectangle\",\n \"ScreenStyleEnvironment\",\n \"ScriptBaselineShifts\",\n \"ScriptForm\",\n \"ScriptLevel\",\n \"ScriptMinSize\",\n \"ScriptRules\",\n \"ScriptSizeMultipliers\",\n \"Scrollbars\",\n \"ScrollingOptions\",\n \"ScrollPosition\",\n \"SearchAdjustment\",\n \"SearchIndexObject\",\n \"SearchIndices\",\n \"SearchQueryString\",\n \"SearchResultObject\",\n \"Sec\",\n \"Sech\",\n \"SechDistribution\",\n \"SecondOrderConeOptimization\",\n \"SectionGrouping\",\n \"SectorChart\",\n \"SectorChart3D\",\n \"SectorOrigin\",\n \"SectorSpacing\",\n \"SecuredAuthenticationKey\",\n \"SecuredAuthenticationKeys\",\n \"SeedRandom\",\n \"Select\",\n \"Selectable\",\n \"SelectComponents\",\n \"SelectedCells\",\n \"SelectedNotebook\",\n \"SelectFirst\",\n \"Selection\",\n \"SelectionAnimate\",\n \"SelectionCell\",\n \"SelectionCellCreateCell\",\n \"SelectionCellDefaultStyle\",\n \"SelectionCellParentStyle\",\n \"SelectionCreateCell\",\n \"SelectionDebuggerTag\",\n \"SelectionDuplicateCell\",\n \"SelectionEvaluate\",\n \"SelectionEvaluateCreateCell\",\n \"SelectionMove\",\n \"SelectionPlaceholder\",\n \"SelectionSetStyle\",\n \"SelectWithContents\",\n \"SelfLoops\",\n \"SelfLoopStyle\",\n \"SemanticImport\",\n \"SemanticImportString\",\n \"SemanticInterpretation\",\n \"SemialgebraicComponentInstances\",\n \"SemidefiniteOptimization\",\n \"SendMail\",\n \"SendMessage\",\n \"Sequence\",\n \"SequenceAlignment\",\n \"SequenceAttentionLayer\",\n \"SequenceCases\",\n \"SequenceCount\",\n \"SequenceFold\",\n \"SequenceFoldList\",\n \"SequenceForm\",\n \"SequenceHold\",\n \"SequenceLastLayer\",\n \"SequenceMostLayer\",\n \"SequencePosition\",\n \"SequencePredict\",\n \"SequencePredictorFunction\",\n \"SequenceReplace\",\n \"SequenceRestLayer\",\n \"SequenceReverseLayer\",\n \"SequenceSplit\",\n \"Series\",\n \"SeriesCoefficient\",\n \"SeriesData\",\n \"SeriesTermGoal\",\n \"ServiceConnect\",\n \"ServiceDisconnect\",\n \"ServiceExecute\",\n \"ServiceObject\",\n \"ServiceRequest\",\n \"ServiceResponse\",\n \"ServiceSubmit\",\n \"SessionSubmit\",\n \"SessionTime\",\n \"Set\",\n \"SetAccuracy\",\n \"SetAlphaChannel\",\n \"SetAttributes\",\n \"Setbacks\",\n \"SetBoxFormNamesPacket\",\n \"SetCloudDirectory\",\n \"SetCookies\",\n \"SetDelayed\",\n \"SetDirectory\",\n \"SetEnvironment\",\n \"SetEvaluationNotebook\",\n \"SetFileDate\",\n \"SetFileLoadingContext\",\n \"SetNotebookStatusLine\",\n \"SetOptions\",\n \"SetOptionsPacket\",\n \"SetPermissions\",\n \"SetPrecision\",\n \"SetProperty\",\n \"SetSecuredAuthenticationKey\",\n \"SetSelectedNotebook\",\n \"SetSharedFunction\",\n \"SetSharedVariable\",\n \"SetSpeechParametersPacket\",\n \"SetStreamPosition\",\n \"SetSystemModel\",\n \"SetSystemOptions\",\n \"Setter\",\n \"SetterBar\",\n \"SetterBox\",\n \"SetterBoxOptions\",\n \"Setting\",\n \"SetUsers\",\n \"SetValue\",\n \"Shading\",\n \"Shallow\",\n \"ShannonWavelet\",\n \"ShapiroWilkTest\",\n \"Share\",\n \"SharingList\",\n \"Sharpen\",\n \"ShearingMatrix\",\n \"ShearingTransform\",\n \"ShellRegion\",\n \"ShenCastanMatrix\",\n \"ShiftedGompertzDistribution\",\n \"ShiftRegisterSequence\",\n \"Short\",\n \"ShortDownArrow\",\n \"Shortest\",\n \"ShortestMatch\",\n \"ShortestPathFunction\",\n \"ShortLeftArrow\",\n \"ShortRightArrow\",\n \"ShortTimeFourier\",\n \"ShortTimeFourierData\",\n \"ShortUpArrow\",\n \"Show\",\n \"ShowAutoConvert\",\n \"ShowAutoSpellCheck\",\n \"ShowAutoStyles\",\n \"ShowCellBracket\",\n \"ShowCellLabel\",\n \"ShowCellTags\",\n \"ShowClosedCellArea\",\n \"ShowCodeAssist\",\n \"ShowContents\",\n \"ShowControls\",\n \"ShowCursorTracker\",\n \"ShowGroupOpenCloseIcon\",\n \"ShowGroupOpener\",\n \"ShowInvisibleCharacters\",\n \"ShowPageBreaks\",\n \"ShowPredictiveInterface\",\n \"ShowSelection\",\n \"ShowShortBoxForm\",\n \"ShowSpecialCharacters\",\n \"ShowStringCharacters\",\n \"ShowSyntaxStyles\",\n \"ShrinkingDelay\",\n \"ShrinkWrapBoundingBox\",\n \"SiderealTime\",\n \"SiegelTheta\",\n \"SiegelTukeyTest\",\n \"SierpinskiCurve\",\n \"SierpinskiMesh\",\n \"Sign\",\n \"Signature\",\n \"SignedRankTest\",\n \"SignedRegionDistance\",\n \"SignificanceLevel\",\n \"SignPadding\",\n \"SignTest\",\n \"SimilarityRules\",\n \"SimpleGraph\",\n \"SimpleGraphQ\",\n \"SimplePolygonQ\",\n \"SimplePolyhedronQ\",\n \"Simplex\",\n \"Simplify\",\n \"Sin\",\n \"Sinc\",\n \"SinghMaddalaDistribution\",\n \"SingleEvaluation\",\n \"SingleLetterItalics\",\n \"SingleLetterStyle\",\n \"SingularValueDecomposition\",\n \"SingularValueList\",\n \"SingularValuePlot\",\n \"SingularValues\",\n \"Sinh\",\n \"SinhIntegral\",\n \"SinIntegral\",\n \"SixJSymbol\",\n \"Skeleton\",\n \"SkeletonTransform\",\n \"SkellamDistribution\",\n \"Skewness\",\n \"SkewNormalDistribution\",\n \"SkinStyle\",\n \"Skip\",\n \"SliceContourPlot3D\",\n \"SliceDensityPlot3D\",\n \"SliceDistribution\",\n \"SliceVectorPlot3D\",\n \"Slider\",\n \"Slider2D\",\n \"Slider2DBox\",\n \"Slider2DBoxOptions\",\n \"SliderBox\",\n \"SliderBoxOptions\",\n \"SlideView\",\n \"Slot\",\n \"SlotSequence\",\n \"Small\",\n \"SmallCircle\",\n \"Smaller\",\n \"SmithDecomposition\",\n \"SmithDelayCompensator\",\n \"SmithWatermanSimilarity\",\n \"SmoothDensityHistogram\",\n \"SmoothHistogram\",\n \"SmoothHistogram3D\",\n \"SmoothKernelDistribution\",\n \"SnDispersion\",\n \"Snippet\",\n \"SnubPolyhedron\",\n \"SocialMediaData\",\n \"Socket\",\n \"SocketConnect\",\n \"SocketListen\",\n \"SocketListener\",\n \"SocketObject\",\n \"SocketOpen\",\n \"SocketReadMessage\",\n \"SocketReadyQ\",\n \"Sockets\",\n \"SocketWaitAll\",\n \"SocketWaitNext\",\n \"SoftmaxLayer\",\n \"SokalSneathDissimilarity\",\n \"SolarEclipse\",\n \"SolarSystemFeatureData\",\n \"SolidAngle\",\n \"SolidData\",\n \"SolidRegionQ\",\n \"Solve\",\n \"SolveAlways\",\n \"SolveDelayed\",\n \"Sort\",\n \"SortBy\",\n \"SortedBy\",\n \"SortedEntityClass\",\n \"Sound\",\n \"SoundAndGraphics\",\n \"SoundNote\",\n \"SoundVolume\",\n \"SourceLink\",\n \"Sow\",\n \"Space\",\n \"SpaceCurveData\",\n \"SpaceForm\",\n \"Spacer\",\n \"Spacings\",\n \"Span\",\n \"SpanAdjustments\",\n \"SpanCharacterRounding\",\n \"SpanFromAbove\",\n \"SpanFromBoth\",\n \"SpanFromLeft\",\n \"SpanLineThickness\",\n \"SpanMaxSize\",\n \"SpanMinSize\",\n \"SpanningCharacters\",\n \"SpanSymmetric\",\n \"SparseArray\",\n \"SpatialGraphDistribution\",\n \"SpatialMedian\",\n \"SpatialTransformationLayer\",\n \"Speak\",\n \"SpeakerMatchQ\",\n \"SpeakTextPacket\",\n \"SpearmanRankTest\",\n \"SpearmanRho\",\n \"SpeciesData\",\n \"SpecificityGoal\",\n \"SpectralLineData\",\n \"Spectrogram\",\n \"SpectrogramArray\",\n \"Specularity\",\n \"SpeechCases\",\n \"SpeechInterpreter\",\n \"SpeechRecognize\",\n \"SpeechSynthesize\",\n \"SpellingCorrection\",\n \"SpellingCorrectionList\",\n \"SpellingDictionaries\",\n \"SpellingDictionariesPath\",\n \"SpellingOptions\",\n \"SpellingSuggestionsPacket\",\n \"Sphere\",\n \"SphereBox\",\n \"SpherePoints\",\n \"SphericalBesselJ\",\n \"SphericalBesselY\",\n \"SphericalHankelH1\",\n \"SphericalHankelH2\",\n \"SphericalHarmonicY\",\n \"SphericalPlot3D\",\n \"SphericalRegion\",\n \"SphericalShell\",\n \"SpheroidalEigenvalue\",\n \"SpheroidalJoiningFactor\",\n \"SpheroidalPS\",\n \"SpheroidalPSPrime\",\n \"SpheroidalQS\",\n \"SpheroidalQSPrime\",\n \"SpheroidalRadialFactor\",\n \"SpheroidalS1\",\n \"SpheroidalS1Prime\",\n \"SpheroidalS2\",\n \"SpheroidalS2Prime\",\n \"Splice\",\n \"SplicedDistribution\",\n \"SplineClosed\",\n \"SplineDegree\",\n \"SplineKnots\",\n \"SplineWeights\",\n \"Split\",\n \"SplitBy\",\n \"SpokenString\",\n \"Sqrt\",\n \"SqrtBox\",\n \"SqrtBoxOptions\",\n \"Square\",\n \"SquaredEuclideanDistance\",\n \"SquareFreeQ\",\n \"SquareIntersection\",\n \"SquareMatrixQ\",\n \"SquareRepeatingElement\",\n \"SquaresR\",\n \"SquareSubset\",\n \"SquareSubsetEqual\",\n \"SquareSuperset\",\n \"SquareSupersetEqual\",\n \"SquareUnion\",\n \"SquareWave\",\n \"SSSTriangle\",\n \"StabilityMargins\",\n \"StabilityMarginsStyle\",\n \"StableDistribution\",\n \"Stack\",\n \"StackBegin\",\n \"StackComplete\",\n \"StackedDateListPlot\",\n \"StackedListPlot\",\n \"StackInhibit\",\n \"StadiumShape\",\n \"StandardAtmosphereData\",\n \"StandardDeviation\",\n \"StandardDeviationFilter\",\n \"StandardForm\",\n \"Standardize\",\n \"Standardized\",\n \"StandardOceanData\",\n \"StandbyDistribution\",\n \"Star\",\n \"StarClusterData\",\n \"StarData\",\n \"StarGraph\",\n \"StartAsynchronousTask\",\n \"StartExternalSession\",\n \"StartingStepSize\",\n \"StartOfLine\",\n \"StartOfString\",\n \"StartProcess\",\n \"StartScheduledTask\",\n \"StartupSound\",\n \"StartWebSession\",\n \"StateDimensions\",\n \"StateFeedbackGains\",\n \"StateOutputEstimator\",\n \"StateResponse\",\n \"StateSpaceModel\",\n \"StateSpaceRealization\",\n \"StateSpaceTransform\",\n \"StateTransformationLinearize\",\n \"StationaryDistribution\",\n \"StationaryWaveletPacketTransform\",\n \"StationaryWaveletTransform\",\n \"StatusArea\",\n \"StatusCentrality\",\n \"StepMonitor\",\n \"StereochemistryElements\",\n \"StieltjesGamma\",\n \"StippleShading\",\n \"StirlingS1\",\n \"StirlingS2\",\n \"StopAsynchronousTask\",\n \"StoppingPowerData\",\n \"StopScheduledTask\",\n \"StrataVariables\",\n \"StratonovichProcess\",\n \"StreamColorFunction\",\n \"StreamColorFunctionScaling\",\n \"StreamDensityPlot\",\n \"StreamMarkers\",\n \"StreamPlot\",\n \"StreamPoints\",\n \"StreamPosition\",\n \"Streams\",\n \"StreamScale\",\n \"StreamStyle\",\n \"String\",\n \"StringBreak\",\n \"StringByteCount\",\n \"StringCases\",\n \"StringContainsQ\",\n \"StringCount\",\n \"StringDelete\",\n \"StringDrop\",\n \"StringEndsQ\",\n \"StringExpression\",\n \"StringExtract\",\n \"StringForm\",\n \"StringFormat\",\n \"StringFreeQ\",\n \"StringInsert\",\n \"StringJoin\",\n \"StringLength\",\n \"StringMatchQ\",\n \"StringPadLeft\",\n \"StringPadRight\",\n \"StringPart\",\n \"StringPartition\",\n \"StringPosition\",\n \"StringQ\",\n \"StringRepeat\",\n \"StringReplace\",\n \"StringReplaceList\",\n \"StringReplacePart\",\n \"StringReverse\",\n \"StringRiffle\",\n \"StringRotateLeft\",\n \"StringRotateRight\",\n \"StringSkeleton\",\n \"StringSplit\",\n \"StringStartsQ\",\n \"StringTake\",\n \"StringTemplate\",\n \"StringToByteArray\",\n \"StringToStream\",\n \"StringTrim\",\n \"StripBoxes\",\n \"StripOnInput\",\n \"StripWrapperBoxes\",\n \"StrokeForm\",\n \"StructuralImportance\",\n \"StructuredArray\",\n \"StructuredArrayHeadQ\",\n \"StructuredSelection\",\n \"StruveH\",\n \"StruveL\",\n \"Stub\",\n \"StudentTDistribution\",\n \"Style\",\n \"StyleBox\",\n \"StyleBoxAutoDelete\",\n \"StyleData\",\n \"StyleDefinitions\",\n \"StyleForm\",\n \"StyleHints\",\n \"StyleKeyMapping\",\n \"StyleMenuListing\",\n \"StyleNameDialogSettings\",\n \"StyleNames\",\n \"StylePrint\",\n \"StyleSheetPath\",\n \"Subdivide\",\n \"Subfactorial\",\n \"Subgraph\",\n \"SubMinus\",\n \"SubPlus\",\n \"SubresultantPolynomialRemainders\",\n \"SubresultantPolynomials\",\n \"Subresultants\",\n \"Subscript\",\n \"SubscriptBox\",\n \"SubscriptBoxOptions\",\n \"Subscripted\",\n \"Subsequences\",\n \"Subset\",\n \"SubsetCases\",\n \"SubsetCount\",\n \"SubsetEqual\",\n \"SubsetMap\",\n \"SubsetPosition\",\n \"SubsetQ\",\n \"SubsetReplace\",\n \"Subsets\",\n \"SubStar\",\n \"SubstitutionSystem\",\n \"Subsuperscript\",\n \"SubsuperscriptBox\",\n \"SubsuperscriptBoxOptions\",\n \"SubtitleEncoding\",\n \"SubtitleTracks\",\n \"Subtract\",\n \"SubtractFrom\",\n \"SubtractSides\",\n \"SubValues\",\n \"Succeeds\",\n \"SucceedsEqual\",\n \"SucceedsSlantEqual\",\n \"SucceedsTilde\",\n \"Success\",\n \"SuchThat\",\n \"Sum\",\n \"SumConvergence\",\n \"SummationLayer\",\n \"Sunday\",\n \"SunPosition\",\n \"Sunrise\",\n \"Sunset\",\n \"SuperDagger\",\n \"SuperMinus\",\n \"SupernovaData\",\n \"SuperPlus\",\n \"Superscript\",\n \"SuperscriptBox\",\n \"SuperscriptBoxOptions\",\n \"Superset\",\n \"SupersetEqual\",\n \"SuperStar\",\n \"Surd\",\n \"SurdForm\",\n \"SurfaceAppearance\",\n \"SurfaceArea\",\n \"SurfaceColor\",\n \"SurfaceData\",\n \"SurfaceGraphics\",\n \"SurvivalDistribution\",\n \"SurvivalFunction\",\n \"SurvivalModel\",\n \"SurvivalModelFit\",\n \"SuspendPacket\",\n \"SuzukiDistribution\",\n \"SuzukiGroupSuz\",\n \"SwatchLegend\",\n \"Switch\",\n \"Symbol\",\n \"SymbolName\",\n \"SymletWavelet\",\n \"Symmetric\",\n \"SymmetricGroup\",\n \"SymmetricKey\",\n \"SymmetricMatrixQ\",\n \"SymmetricPolynomial\",\n \"SymmetricReduction\",\n \"Symmetrize\",\n \"SymmetrizedArray\",\n \"SymmetrizedArrayRules\",\n \"SymmetrizedDependentComponents\",\n \"SymmetrizedIndependentComponents\",\n \"SymmetrizedReplacePart\",\n \"SynchronousInitialization\",\n \"SynchronousUpdating\",\n \"Synonyms\",\n \"Syntax\",\n \"SyntaxForm\",\n \"SyntaxInformation\",\n \"SyntaxLength\",\n \"SyntaxPacket\",\n \"SyntaxQ\",\n \"SynthesizeMissingValues\",\n \"SystemCredential\",\n \"SystemCredentialData\",\n \"SystemCredentialKey\",\n \"SystemCredentialKeys\",\n \"SystemCredentialStoreObject\",\n \"SystemDialogInput\",\n \"SystemException\",\n \"SystemGet\",\n \"SystemHelpPath\",\n \"SystemInformation\",\n \"SystemInformationData\",\n \"SystemInstall\",\n \"SystemModel\",\n \"SystemModeler\",\n \"SystemModelExamples\",\n \"SystemModelLinearize\",\n \"SystemModelParametricSimulate\",\n \"SystemModelPlot\",\n \"SystemModelProgressReporting\",\n \"SystemModelReliability\",\n \"SystemModels\",\n \"SystemModelSimulate\",\n \"SystemModelSimulateSensitivity\",\n \"SystemModelSimulationData\",\n \"SystemOpen\",\n \"SystemOptions\",\n \"SystemProcessData\",\n \"SystemProcesses\",\n \"SystemsConnectionsModel\",\n \"SystemsModelDelay\",\n \"SystemsModelDelayApproximate\",\n \"SystemsModelDelete\",\n \"SystemsModelDimensions\",\n \"SystemsModelExtract\",\n \"SystemsModelFeedbackConnect\",\n \"SystemsModelLabels\",\n \"SystemsModelLinearity\",\n \"SystemsModelMerge\",\n \"SystemsModelOrder\",\n \"SystemsModelParallelConnect\",\n \"SystemsModelSeriesConnect\",\n \"SystemsModelStateFeedbackConnect\",\n \"SystemsModelVectorRelativeOrders\",\n \"SystemStub\",\n \"SystemTest\",\n \"Tab\",\n \"TabFilling\",\n \"Table\",\n \"TableAlignments\",\n \"TableDepth\",\n \"TableDirections\",\n \"TableForm\",\n \"TableHeadings\",\n \"TableSpacing\",\n \"TableView\",\n \"TableViewBox\",\n \"TableViewBoxBackground\",\n \"TableViewBoxItemSize\",\n \"TableViewBoxOptions\",\n \"TabSpacings\",\n \"TabView\",\n \"TabViewBox\",\n \"TabViewBoxOptions\",\n \"TagBox\",\n \"TagBoxNote\",\n \"TagBoxOptions\",\n \"TaggingRules\",\n \"TagSet\",\n \"TagSetDelayed\",\n \"TagStyle\",\n \"TagUnset\",\n \"Take\",\n \"TakeDrop\",\n \"TakeLargest\",\n \"TakeLargestBy\",\n \"TakeList\",\n \"TakeSmallest\",\n \"TakeSmallestBy\",\n \"TakeWhile\",\n \"Tally\",\n \"Tan\",\n \"Tanh\",\n \"TargetDevice\",\n \"TargetFunctions\",\n \"TargetSystem\",\n \"TargetUnits\",\n \"TaskAbort\",\n \"TaskExecute\",\n \"TaskObject\",\n \"TaskRemove\",\n \"TaskResume\",\n \"Tasks\",\n \"TaskSuspend\",\n \"TaskWait\",\n \"TautologyQ\",\n \"TelegraphProcess\",\n \"TemplateApply\",\n \"TemplateArgBox\",\n \"TemplateBox\",\n \"TemplateBoxOptions\",\n \"TemplateEvaluate\",\n \"TemplateExpression\",\n \"TemplateIf\",\n \"TemplateObject\",\n \"TemplateSequence\",\n \"TemplateSlot\",\n \"TemplateSlotSequence\",\n \"TemplateUnevaluated\",\n \"TemplateVerbatim\",\n \"TemplateWith\",\n \"TemporalData\",\n \"TemporalRegularity\",\n \"Temporary\",\n \"TemporaryVariable\",\n \"TensorContract\",\n \"TensorDimensions\",\n \"TensorExpand\",\n \"TensorProduct\",\n \"TensorQ\",\n \"TensorRank\",\n \"TensorReduce\",\n \"TensorSymmetry\",\n \"TensorTranspose\",\n \"TensorWedge\",\n \"TestID\",\n \"TestReport\",\n \"TestReportObject\",\n \"TestResultObject\",\n \"Tetrahedron\",\n \"TetrahedronBox\",\n \"TetrahedronBoxOptions\",\n \"TeXForm\",\n \"TeXSave\",\n \"Text\",\n \"Text3DBox\",\n \"Text3DBoxOptions\",\n \"TextAlignment\",\n \"TextBand\",\n \"TextBoundingBox\",\n \"TextBox\",\n \"TextCases\",\n \"TextCell\",\n \"TextClipboardType\",\n \"TextContents\",\n \"TextData\",\n \"TextElement\",\n \"TextForm\",\n \"TextGrid\",\n \"TextJustification\",\n \"TextLine\",\n \"TextPacket\",\n \"TextParagraph\",\n \"TextPosition\",\n \"TextRecognize\",\n \"TextSearch\",\n \"TextSearchReport\",\n \"TextSentences\",\n \"TextString\",\n \"TextStructure\",\n \"TextStyle\",\n \"TextTranslation\",\n \"Texture\",\n \"TextureCoordinateFunction\",\n \"TextureCoordinateScaling\",\n \"TextWords\",\n \"Therefore\",\n \"ThermodynamicData\",\n \"ThermometerGauge\",\n \"Thick\",\n \"Thickness\",\n \"Thin\",\n \"Thinning\",\n \"ThisLink\",\n \"ThompsonGroupTh\",\n \"Thread\",\n \"ThreadingLayer\",\n \"ThreeJSymbol\",\n \"Threshold\",\n \"Through\",\n \"Throw\",\n \"ThueMorse\",\n \"Thumbnail\",\n \"Thursday\",\n \"Ticks\",\n \"TicksStyle\",\n \"TideData\",\n \"Tilde\",\n \"TildeEqual\",\n \"TildeFullEqual\",\n \"TildeTilde\",\n \"TimeConstrained\",\n \"TimeConstraint\",\n \"TimeDirection\",\n \"TimeFormat\",\n \"TimeGoal\",\n \"TimelinePlot\",\n \"TimeObject\",\n \"TimeObjectQ\",\n \"TimeRemaining\",\n \"Times\",\n \"TimesBy\",\n \"TimeSeries\",\n \"TimeSeriesAggregate\",\n \"TimeSeriesForecast\",\n \"TimeSeriesInsert\",\n \"TimeSeriesInvertibility\",\n \"TimeSeriesMap\",\n \"TimeSeriesMapThread\",\n \"TimeSeriesModel\",\n \"TimeSeriesModelFit\",\n \"TimeSeriesResample\",\n \"TimeSeriesRescale\",\n \"TimeSeriesShift\",\n \"TimeSeriesThread\",\n \"TimeSeriesWindow\",\n \"TimeUsed\",\n \"TimeValue\",\n \"TimeWarpingCorrespondence\",\n \"TimeWarpingDistance\",\n \"TimeZone\",\n \"TimeZoneConvert\",\n \"TimeZoneOffset\",\n \"Timing\",\n \"Tiny\",\n \"TitleGrouping\",\n \"TitsGroupT\",\n \"ToBoxes\",\n \"ToCharacterCode\",\n \"ToColor\",\n \"ToContinuousTimeModel\",\n \"ToDate\",\n \"Today\",\n \"ToDiscreteTimeModel\",\n \"ToEntity\",\n \"ToeplitzMatrix\",\n \"ToExpression\",\n \"ToFileName\",\n \"Together\",\n \"Toggle\",\n \"ToggleFalse\",\n \"Toggler\",\n \"TogglerBar\",\n \"TogglerBox\",\n \"TogglerBoxOptions\",\n \"ToHeldExpression\",\n \"ToInvertibleTimeSeries\",\n \"TokenWords\",\n \"Tolerance\",\n \"ToLowerCase\",\n \"Tomorrow\",\n \"ToNumberField\",\n \"TooBig\",\n \"Tooltip\",\n \"TooltipBox\",\n \"TooltipBoxOptions\",\n \"TooltipDelay\",\n \"TooltipStyle\",\n \"ToonShading\",\n \"Top\",\n \"TopHatTransform\",\n \"ToPolarCoordinates\",\n \"TopologicalSort\",\n \"ToRadicals\",\n \"ToRules\",\n \"ToSphericalCoordinates\",\n \"ToString\",\n \"Total\",\n \"TotalHeight\",\n \"TotalLayer\",\n \"TotalVariationFilter\",\n \"TotalWidth\",\n \"TouchPosition\",\n \"TouchscreenAutoZoom\",\n \"TouchscreenControlPlacement\",\n \"ToUpperCase\",\n \"Tr\",\n \"Trace\",\n \"TraceAbove\",\n \"TraceAction\",\n \"TraceBackward\",\n \"TraceDepth\",\n \"TraceDialog\",\n \"TraceForward\",\n \"TraceInternal\",\n \"TraceLevel\",\n \"TraceOff\",\n \"TraceOn\",\n \"TraceOriginal\",\n \"TracePrint\",\n \"TraceScan\",\n \"TrackedSymbols\",\n \"TrackingFunction\",\n \"TracyWidomDistribution\",\n \"TradingChart\",\n \"TraditionalForm\",\n \"TraditionalFunctionNotation\",\n \"TraditionalNotation\",\n \"TraditionalOrder\",\n \"TrainingProgressCheckpointing\",\n \"TrainingProgressFunction\",\n \"TrainingProgressMeasurements\",\n \"TrainingProgressReporting\",\n \"TrainingStoppingCriterion\",\n \"TrainingUpdateSchedule\",\n \"TransferFunctionCancel\",\n \"TransferFunctionExpand\",\n \"TransferFunctionFactor\",\n \"TransferFunctionModel\",\n \"TransferFunctionPoles\",\n \"TransferFunctionTransform\",\n \"TransferFunctionZeros\",\n \"TransformationClass\",\n \"TransformationFunction\",\n \"TransformationFunctions\",\n \"TransformationMatrix\",\n \"TransformedDistribution\",\n \"TransformedField\",\n \"TransformedProcess\",\n \"TransformedRegion\",\n \"TransitionDirection\",\n \"TransitionDuration\",\n \"TransitionEffect\",\n \"TransitiveClosureGraph\",\n \"TransitiveReductionGraph\",\n \"Translate\",\n \"TranslationOptions\",\n \"TranslationTransform\",\n \"Transliterate\",\n \"Transparent\",\n \"TransparentColor\",\n \"Transpose\",\n \"TransposeLayer\",\n \"TrapSelection\",\n \"TravelDirections\",\n \"TravelDirectionsData\",\n \"TravelDistance\",\n \"TravelDistanceList\",\n \"TravelMethod\",\n \"TravelTime\",\n \"TreeForm\",\n \"TreeGraph\",\n \"TreeGraphQ\",\n \"TreePlot\",\n \"TrendStyle\",\n \"Triangle\",\n \"TriangleCenter\",\n \"TriangleConstruct\",\n \"TriangleMeasurement\",\n \"TriangleWave\",\n \"TriangularDistribution\",\n \"TriangulateMesh\",\n \"Trig\",\n \"TrigExpand\",\n \"TrigFactor\",\n \"TrigFactorList\",\n \"Trigger\",\n \"TrigReduce\",\n \"TrigToExp\",\n \"TrimmedMean\",\n \"TrimmedVariance\",\n \"TropicalStormData\",\n \"True\",\n \"TrueQ\",\n \"TruncatedDistribution\",\n \"TruncatedPolyhedron\",\n \"TsallisQExponentialDistribution\",\n \"TsallisQGaussianDistribution\",\n \"TTest\",\n \"Tube\",\n \"TubeBezierCurveBox\",\n \"TubeBezierCurveBoxOptions\",\n \"TubeBox\",\n \"TubeBoxOptions\",\n \"TubeBSplineCurveBox\",\n \"TubeBSplineCurveBoxOptions\",\n \"Tuesday\",\n \"TukeyLambdaDistribution\",\n \"TukeyWindow\",\n \"TunnelData\",\n \"Tuples\",\n \"TuranGraph\",\n \"TuringMachine\",\n \"TuttePolynomial\",\n \"TwoWayRule\",\n \"Typed\",\n \"TypeSpecifier\",\n \"UnateQ\",\n \"Uncompress\",\n \"UnconstrainedParameters\",\n \"Undefined\",\n \"UnderBar\",\n \"Underflow\",\n \"Underlined\",\n \"Underoverscript\",\n \"UnderoverscriptBox\",\n \"UnderoverscriptBoxOptions\",\n \"Underscript\",\n \"UnderscriptBox\",\n \"UnderscriptBoxOptions\",\n \"UnderseaFeatureData\",\n \"UndirectedEdge\",\n \"UndirectedGraph\",\n \"UndirectedGraphQ\",\n \"UndoOptions\",\n \"UndoTrackedVariables\",\n \"Unequal\",\n \"UnequalTo\",\n \"Unevaluated\",\n \"UniformDistribution\",\n \"UniformGraphDistribution\",\n \"UniformPolyhedron\",\n \"UniformSumDistribution\",\n \"Uninstall\",\n \"Union\",\n \"UnionedEntityClass\",\n \"UnionPlus\",\n \"Unique\",\n \"UnitaryMatrixQ\",\n \"UnitBox\",\n \"UnitConvert\",\n \"UnitDimensions\",\n \"Unitize\",\n \"UnitRootTest\",\n \"UnitSimplify\",\n \"UnitStep\",\n \"UnitSystem\",\n \"UnitTriangle\",\n \"UnitVector\",\n \"UnitVectorLayer\",\n \"UnityDimensions\",\n \"UniverseModelData\",\n \"UniversityData\",\n \"UnixTime\",\n \"Unprotect\",\n \"UnregisterExternalEvaluator\",\n \"UnsameQ\",\n \"UnsavedVariables\",\n \"Unset\",\n \"UnsetShared\",\n \"UntrackedVariables\",\n \"Up\",\n \"UpArrow\",\n \"UpArrowBar\",\n \"UpArrowDownArrow\",\n \"Update\",\n \"UpdateDynamicObjects\",\n \"UpdateDynamicObjectsSynchronous\",\n \"UpdateInterval\",\n \"UpdatePacletSites\",\n \"UpdateSearchIndex\",\n \"UpDownArrow\",\n \"UpEquilibrium\",\n \"UpperCaseQ\",\n \"UpperLeftArrow\",\n \"UpperRightArrow\",\n \"UpperTriangularize\",\n \"UpperTriangularMatrixQ\",\n \"Upsample\",\n \"UpSet\",\n \"UpSetDelayed\",\n \"UpTee\",\n \"UpTeeArrow\",\n \"UpTo\",\n \"UpValues\",\n \"URL\",\n \"URLBuild\",\n \"URLDecode\",\n \"URLDispatcher\",\n \"URLDownload\",\n \"URLDownloadSubmit\",\n \"URLEncode\",\n \"URLExecute\",\n \"URLExpand\",\n \"URLFetch\",\n \"URLFetchAsynchronous\",\n \"URLParse\",\n \"URLQueryDecode\",\n \"URLQueryEncode\",\n \"URLRead\",\n \"URLResponseTime\",\n \"URLSave\",\n \"URLSaveAsynchronous\",\n \"URLShorten\",\n \"URLSubmit\",\n \"UseGraphicsRange\",\n \"UserDefinedWavelet\",\n \"Using\",\n \"UsingFrontEnd\",\n \"UtilityFunction\",\n \"V2Get\",\n \"ValenceErrorHandling\",\n \"ValidationLength\",\n \"ValidationSet\",\n \"Value\",\n \"ValueBox\",\n \"ValueBoxOptions\",\n \"ValueDimensions\",\n \"ValueForm\",\n \"ValuePreprocessingFunction\",\n \"ValueQ\",\n \"Values\",\n \"ValuesData\",\n \"Variables\",\n \"Variance\",\n \"VarianceEquivalenceTest\",\n \"VarianceEstimatorFunction\",\n \"VarianceGammaDistribution\",\n \"VarianceTest\",\n \"VectorAngle\",\n \"VectorAround\",\n \"VectorAspectRatio\",\n \"VectorColorFunction\",\n \"VectorColorFunctionScaling\",\n \"VectorDensityPlot\",\n \"VectorGlyphData\",\n \"VectorGreater\",\n \"VectorGreaterEqual\",\n \"VectorLess\",\n \"VectorLessEqual\",\n \"VectorMarkers\",\n \"VectorPlot\",\n \"VectorPlot3D\",\n \"VectorPoints\",\n \"VectorQ\",\n \"VectorRange\",\n \"Vectors\",\n \"VectorScale\",\n \"VectorScaling\",\n \"VectorSizes\",\n \"VectorStyle\",\n \"Vee\",\n \"Verbatim\",\n \"Verbose\",\n \"VerboseConvertToPostScriptPacket\",\n \"VerificationTest\",\n \"VerifyConvergence\",\n \"VerifyDerivedKey\",\n \"VerifyDigitalSignature\",\n \"VerifyFileSignature\",\n \"VerifyInterpretation\",\n \"VerifySecurityCertificates\",\n \"VerifySolutions\",\n \"VerifyTestAssumptions\",\n \"Version\",\n \"VersionedPreferences\",\n \"VersionNumber\",\n \"VertexAdd\",\n \"VertexCapacity\",\n \"VertexColors\",\n \"VertexComponent\",\n \"VertexConnectivity\",\n \"VertexContract\",\n \"VertexCoordinateRules\",\n \"VertexCoordinates\",\n \"VertexCorrelationSimilarity\",\n \"VertexCosineSimilarity\",\n \"VertexCount\",\n \"VertexCoverQ\",\n \"VertexDataCoordinates\",\n \"VertexDegree\",\n \"VertexDelete\",\n \"VertexDiceSimilarity\",\n \"VertexEccentricity\",\n \"VertexInComponent\",\n \"VertexInDegree\",\n \"VertexIndex\",\n \"VertexJaccardSimilarity\",\n \"VertexLabeling\",\n \"VertexLabels\",\n \"VertexLabelStyle\",\n \"VertexList\",\n \"VertexNormals\",\n \"VertexOutComponent\",\n \"VertexOutDegree\",\n \"VertexQ\",\n \"VertexRenderingFunction\",\n \"VertexReplace\",\n \"VertexShape\",\n \"VertexShapeFunction\",\n \"VertexSize\",\n \"VertexStyle\",\n \"VertexTextureCoordinates\",\n \"VertexWeight\",\n \"VertexWeightedGraphQ\",\n \"Vertical\",\n \"VerticalBar\",\n \"VerticalForm\",\n \"VerticalGauge\",\n \"VerticalSeparator\",\n \"VerticalSlider\",\n \"VerticalTilde\",\n \"Video\",\n \"VideoEncoding\",\n \"VideoExtractFrames\",\n \"VideoFrameList\",\n \"VideoFrameMap\",\n \"VideoPause\",\n \"VideoPlay\",\n \"VideoQ\",\n \"VideoStop\",\n \"VideoStream\",\n \"VideoStreams\",\n \"VideoTimeSeries\",\n \"VideoTracks\",\n \"VideoTrim\",\n \"ViewAngle\",\n \"ViewCenter\",\n \"ViewMatrix\",\n \"ViewPoint\",\n \"ViewPointSelectorSettings\",\n \"ViewPort\",\n \"ViewProjection\",\n \"ViewRange\",\n \"ViewVector\",\n \"ViewVertical\",\n \"VirtualGroupData\",\n \"Visible\",\n \"VisibleCell\",\n \"VoiceStyleData\",\n \"VoigtDistribution\",\n \"VolcanoData\",\n \"Volume\",\n \"VonMisesDistribution\",\n \"VoronoiMesh\",\n \"WaitAll\",\n \"WaitAsynchronousTask\",\n \"WaitNext\",\n \"WaitUntil\",\n \"WakebyDistribution\",\n \"WalleniusHypergeometricDistribution\",\n \"WaringYuleDistribution\",\n \"WarpingCorrespondence\",\n \"WarpingDistance\",\n \"WatershedComponents\",\n \"WatsonUSquareTest\",\n \"WattsStrogatzGraphDistribution\",\n \"WaveletBestBasis\",\n \"WaveletFilterCoefficients\",\n \"WaveletImagePlot\",\n \"WaveletListPlot\",\n \"WaveletMapIndexed\",\n \"WaveletMatrixPlot\",\n \"WaveletPhi\",\n \"WaveletPsi\",\n \"WaveletScale\",\n \"WaveletScalogram\",\n \"WaveletThreshold\",\n \"WeaklyConnectedComponents\",\n \"WeaklyConnectedGraphComponents\",\n \"WeaklyConnectedGraphQ\",\n \"WeakStationarity\",\n \"WeatherData\",\n \"WeatherForecastData\",\n \"WebAudioSearch\",\n \"WebElementObject\",\n \"WeberE\",\n \"WebExecute\",\n \"WebImage\",\n \"WebImageSearch\",\n \"WebSearch\",\n \"WebSessionObject\",\n \"WebSessions\",\n \"WebWindowObject\",\n \"Wedge\",\n \"Wednesday\",\n \"WeibullDistribution\",\n \"WeierstrassE1\",\n \"WeierstrassE2\",\n \"WeierstrassE3\",\n \"WeierstrassEta1\",\n \"WeierstrassEta2\",\n \"WeierstrassEta3\",\n \"WeierstrassHalfPeriods\",\n \"WeierstrassHalfPeriodW1\",\n \"WeierstrassHalfPeriodW2\",\n \"WeierstrassHalfPeriodW3\",\n \"WeierstrassInvariantG2\",\n \"WeierstrassInvariantG3\",\n \"WeierstrassInvariants\",\n \"WeierstrassP\",\n \"WeierstrassPPrime\",\n \"WeierstrassSigma\",\n \"WeierstrassZeta\",\n \"WeightedAdjacencyGraph\",\n \"WeightedAdjacencyMatrix\",\n \"WeightedData\",\n \"WeightedGraphQ\",\n \"Weights\",\n \"WelchWindow\",\n \"WheelGraph\",\n \"WhenEvent\",\n \"Which\",\n \"While\",\n \"White\",\n \"WhiteNoiseProcess\",\n \"WhitePoint\",\n \"Whitespace\",\n \"WhitespaceCharacter\",\n \"WhittakerM\",\n \"WhittakerW\",\n \"WienerFilter\",\n \"WienerProcess\",\n \"WignerD\",\n \"WignerSemicircleDistribution\",\n \"WikidataData\",\n \"WikidataSearch\",\n \"WikipediaData\",\n \"WikipediaSearch\",\n \"WilksW\",\n \"WilksWTest\",\n \"WindDirectionData\",\n \"WindingCount\",\n \"WindingPolygon\",\n \"WindowClickSelect\",\n \"WindowElements\",\n \"WindowFloating\",\n \"WindowFrame\",\n \"WindowFrameElements\",\n \"WindowMargins\",\n \"WindowMovable\",\n \"WindowOpacity\",\n \"WindowPersistentStyles\",\n \"WindowSelected\",\n \"WindowSize\",\n \"WindowStatusArea\",\n \"WindowTitle\",\n \"WindowToolbars\",\n \"WindowWidth\",\n \"WindSpeedData\",\n \"WindVectorData\",\n \"WinsorizedMean\",\n \"WinsorizedVariance\",\n \"WishartMatrixDistribution\",\n \"With\",\n \"WolframAlpha\",\n \"WolframAlphaDate\",\n \"WolframAlphaQuantity\",\n \"WolframAlphaResult\",\n \"WolframLanguageData\",\n \"Word\",\n \"WordBoundary\",\n \"WordCharacter\",\n \"WordCloud\",\n \"WordCount\",\n \"WordCounts\",\n \"WordData\",\n \"WordDefinition\",\n \"WordFrequency\",\n \"WordFrequencyData\",\n \"WordList\",\n \"WordOrientation\",\n \"WordSearch\",\n \"WordSelectionFunction\",\n \"WordSeparators\",\n \"WordSpacings\",\n \"WordStem\",\n \"WordTranslation\",\n \"WorkingPrecision\",\n \"WrapAround\",\n \"Write\",\n \"WriteLine\",\n \"WriteString\",\n \"Wronskian\",\n \"XMLElement\",\n \"XMLObject\",\n \"XMLTemplate\",\n \"Xnor\",\n \"Xor\",\n \"XYZColor\",\n \"Yellow\",\n \"Yesterday\",\n \"YuleDissimilarity\",\n \"ZernikeR\",\n \"ZeroSymmetric\",\n \"ZeroTest\",\n \"ZeroWidthTimes\",\n \"Zeta\",\n \"ZetaZero\",\n \"ZIPCodeData\",\n \"ZipfDistribution\",\n \"ZoomCenter\",\n \"ZoomFactor\",\n \"ZTest\",\n \"ZTransform\",\n \"$Aborted\",\n \"$ActivationGroupID\",\n \"$ActivationKey\",\n \"$ActivationUserRegistered\",\n \"$AddOnsDirectory\",\n \"$AllowDataUpdates\",\n \"$AllowExternalChannelFunctions\",\n \"$AllowInternet\",\n \"$AssertFunction\",\n \"$Assumptions\",\n \"$AsynchronousTask\",\n \"$AudioDecoders\",\n \"$AudioEncoders\",\n \"$AudioInputDevices\",\n \"$AudioOutputDevices\",\n \"$BaseDirectory\",\n \"$BasePacletsDirectory\",\n \"$BatchInput\",\n \"$BatchOutput\",\n \"$BlockchainBase\",\n \"$BoxForms\",\n \"$ByteOrdering\",\n \"$CacheBaseDirectory\",\n \"$Canceled\",\n \"$ChannelBase\",\n \"$CharacterEncoding\",\n \"$CharacterEncodings\",\n \"$CloudAccountName\",\n \"$CloudBase\",\n \"$CloudConnected\",\n \"$CloudConnection\",\n \"$CloudCreditsAvailable\",\n \"$CloudEvaluation\",\n \"$CloudExpressionBase\",\n \"$CloudObjectNameFormat\",\n \"$CloudObjectURLType\",\n \"$CloudRootDirectory\",\n \"$CloudSymbolBase\",\n \"$CloudUserID\",\n \"$CloudUserUUID\",\n \"$CloudVersion\",\n \"$CloudVersionNumber\",\n \"$CloudWolframEngineVersionNumber\",\n \"$CommandLine\",\n \"$CompilationTarget\",\n \"$ConditionHold\",\n \"$ConfiguredKernels\",\n \"$Context\",\n \"$ContextPath\",\n \"$ControlActiveSetting\",\n \"$Cookies\",\n \"$CookieStore\",\n \"$CreationDate\",\n \"$CurrentLink\",\n \"$CurrentTask\",\n \"$CurrentWebSession\",\n \"$DataStructures\",\n \"$DateStringFormat\",\n \"$DefaultAudioInputDevice\",\n \"$DefaultAudioOutputDevice\",\n \"$DefaultFont\",\n \"$DefaultFrontEnd\",\n \"$DefaultImagingDevice\",\n \"$DefaultLocalBase\",\n \"$DefaultMailbox\",\n \"$DefaultNetworkInterface\",\n \"$DefaultPath\",\n \"$DefaultProxyRules\",\n \"$DefaultSystemCredentialStore\",\n \"$Display\",\n \"$DisplayFunction\",\n \"$DistributedContexts\",\n \"$DynamicEvaluation\",\n \"$Echo\",\n \"$EmbedCodeEnvironments\",\n \"$EmbeddableServices\",\n \"$EntityStores\",\n \"$Epilog\",\n \"$EvaluationCloudBase\",\n \"$EvaluationCloudObject\",\n \"$EvaluationEnvironment\",\n \"$ExportFormats\",\n \"$ExternalIdentifierTypes\",\n \"$ExternalStorageBase\",\n \"$Failed\",\n \"$FinancialDataSource\",\n \"$FontFamilies\",\n \"$FormatType\",\n \"$FrontEnd\",\n \"$FrontEndSession\",\n \"$GeoEntityTypes\",\n \"$GeoLocation\",\n \"$GeoLocationCity\",\n \"$GeoLocationCountry\",\n \"$GeoLocationPrecision\",\n \"$GeoLocationSource\",\n \"$HistoryLength\",\n \"$HomeDirectory\",\n \"$HTMLExportRules\",\n \"$HTTPCookies\",\n \"$HTTPRequest\",\n \"$IgnoreEOF\",\n \"$ImageFormattingWidth\",\n \"$ImageResolution\",\n \"$ImagingDevice\",\n \"$ImagingDevices\",\n \"$ImportFormats\",\n \"$IncomingMailSettings\",\n \"$InitialDirectory\",\n \"$Initialization\",\n \"$InitializationContexts\",\n \"$Input\",\n \"$InputFileName\",\n \"$InputStreamMethods\",\n \"$Inspector\",\n \"$InstallationDate\",\n \"$InstallationDirectory\",\n \"$InterfaceEnvironment\",\n \"$InterpreterTypes\",\n \"$IterationLimit\",\n \"$KernelCount\",\n \"$KernelID\",\n \"$Language\",\n \"$LaunchDirectory\",\n \"$LibraryPath\",\n \"$LicenseExpirationDate\",\n \"$LicenseID\",\n \"$LicenseProcesses\",\n \"$LicenseServer\",\n \"$LicenseSubprocesses\",\n \"$LicenseType\",\n \"$Line\",\n \"$Linked\",\n \"$LinkSupported\",\n \"$LoadedFiles\",\n \"$LocalBase\",\n \"$LocalSymbolBase\",\n \"$MachineAddresses\",\n \"$MachineDomain\",\n \"$MachineDomains\",\n \"$MachineEpsilon\",\n \"$MachineID\",\n \"$MachineName\",\n \"$MachinePrecision\",\n \"$MachineType\",\n \"$MaxExtraPrecision\",\n \"$MaxLicenseProcesses\",\n \"$MaxLicenseSubprocesses\",\n \"$MaxMachineNumber\",\n \"$MaxNumber\",\n \"$MaxPiecewiseCases\",\n \"$MaxPrecision\",\n \"$MaxRootDegree\",\n \"$MessageGroups\",\n \"$MessageList\",\n \"$MessagePrePrint\",\n \"$Messages\",\n \"$MinMachineNumber\",\n \"$MinNumber\",\n \"$MinorReleaseNumber\",\n \"$MinPrecision\",\n \"$MobilePhone\",\n \"$ModuleNumber\",\n \"$NetworkConnected\",\n \"$NetworkInterfaces\",\n \"$NetworkLicense\",\n \"$NewMessage\",\n \"$NewSymbol\",\n \"$NotebookInlineStorageLimit\",\n \"$Notebooks\",\n \"$NoValue\",\n \"$NumberMarks\",\n \"$Off\",\n \"$OperatingSystem\",\n \"$Output\",\n \"$OutputForms\",\n \"$OutputSizeLimit\",\n \"$OutputStreamMethods\",\n \"$Packages\",\n \"$ParentLink\",\n \"$ParentProcessID\",\n \"$PasswordFile\",\n \"$PatchLevelID\",\n \"$Path\",\n \"$PathnameSeparator\",\n \"$PerformanceGoal\",\n \"$Permissions\",\n \"$PermissionsGroupBase\",\n \"$PersistenceBase\",\n \"$PersistencePath\",\n \"$PipeSupported\",\n \"$PlotTheme\",\n \"$Post\",\n \"$Pre\",\n \"$PreferencesDirectory\",\n \"$PreInitialization\",\n \"$PrePrint\",\n \"$PreRead\",\n \"$PrintForms\",\n \"$PrintLiteral\",\n \"$Printout3DPreviewer\",\n \"$ProcessID\",\n \"$ProcessorCount\",\n \"$ProcessorType\",\n \"$ProductInformation\",\n \"$ProgramName\",\n \"$PublisherID\",\n \"$RandomState\",\n \"$RecursionLimit\",\n \"$RegisteredDeviceClasses\",\n \"$RegisteredUserName\",\n \"$ReleaseNumber\",\n \"$RequesterAddress\",\n \"$RequesterWolframID\",\n \"$RequesterWolframUUID\",\n \"$RootDirectory\",\n \"$ScheduledTask\",\n \"$ScriptCommandLine\",\n \"$ScriptInputString\",\n \"$SecuredAuthenticationKeyTokens\",\n \"$ServiceCreditsAvailable\",\n \"$Services\",\n \"$SessionID\",\n \"$SetParentLink\",\n \"$SharedFunctions\",\n \"$SharedVariables\",\n \"$SoundDisplay\",\n \"$SoundDisplayFunction\",\n \"$SourceLink\",\n \"$SSHAuthentication\",\n \"$SubtitleDecoders\",\n \"$SubtitleEncoders\",\n \"$SummaryBoxDataSizeLimit\",\n \"$SuppressInputFormHeads\",\n \"$SynchronousEvaluation\",\n \"$SyntaxHandler\",\n \"$System\",\n \"$SystemCharacterEncoding\",\n \"$SystemCredentialStore\",\n \"$SystemID\",\n \"$SystemMemory\",\n \"$SystemShell\",\n \"$SystemTimeZone\",\n \"$SystemWordLength\",\n \"$TemplatePath\",\n \"$TemporaryDirectory\",\n \"$TemporaryPrefix\",\n \"$TestFileName\",\n \"$TextStyle\",\n \"$TimedOut\",\n \"$TimeUnit\",\n \"$TimeZone\",\n \"$TimeZoneEntity\",\n \"$TopDirectory\",\n \"$TraceOff\",\n \"$TraceOn\",\n \"$TracePattern\",\n \"$TracePostAction\",\n \"$TracePreAction\",\n \"$UnitSystem\",\n \"$Urgent\",\n \"$UserAddOnsDirectory\",\n \"$UserAgentLanguages\",\n \"$UserAgentMachine\",\n \"$UserAgentName\",\n \"$UserAgentOperatingSystem\",\n \"$UserAgentString\",\n \"$UserAgentVersion\",\n \"$UserBaseDirectory\",\n \"$UserBasePacletsDirectory\",\n \"$UserDocumentsDirectory\",\n \"$Username\",\n \"$UserName\",\n \"$UserURLBase\",\n \"$Version\",\n \"$VersionNumber\",\n \"$VideoDecoders\",\n \"$VideoEncoders\",\n \"$VoiceStyles\",\n \"$WolframDocumentsDirectory\",\n \"$WolframID\",\n \"$WolframUUID\"\n];\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: Wolfram Language\nDescription: The Wolfram Language is the programming language used in Wolfram Mathematica, a modern technical computing system spanning most areas of technical computing.\nAuthors: Patrick Scheibe <patrick@halirutan.de>, Robert Jacobson <robertjacobson@acm.org>\nWebsite: https://www.wolfram.com/mathematica/\nCategory: scientific\n*/\n\n/** @type LanguageFn */\nfunction mathematica(hljs) {\n /*\n This rather scary looking matching of Mathematica numbers is carefully explained by Robert Jacobson here:\n https://wltools.github.io/LanguageSpec/Specification/Syntax/Number-representations/\n */\n const BASE_RE = /([2-9]|[1-2]\\d|[3][0-5])\\^\\^/;\n const BASE_DIGITS_RE = /(\\w*\\.\\w+|\\w+\\.\\w*|\\w+)/;\n const NUMBER_RE = /(\\d*\\.\\d+|\\d+\\.\\d*|\\d+)/;\n const BASE_NUMBER_RE = either(concat(BASE_RE, BASE_DIGITS_RE), NUMBER_RE);\n\n const ACCURACY_RE = /``[+-]?(\\d*\\.\\d+|\\d+\\.\\d*|\\d+)/;\n const PRECISION_RE = /`([+-]?(\\d*\\.\\d+|\\d+\\.\\d*|\\d+))?/;\n const APPROXIMATE_NUMBER_RE = either(ACCURACY_RE, PRECISION_RE);\n\n const SCIENTIFIC_NOTATION_RE = /\\*\\^[+-]?\\d+/;\n\n const MATHEMATICA_NUMBER_RE = concat(\n BASE_NUMBER_RE,\n optional(APPROXIMATE_NUMBER_RE),\n optional(SCIENTIFIC_NOTATION_RE)\n );\n\n const NUMBERS = {\n className: 'number',\n relevance: 0,\n begin: MATHEMATICA_NUMBER_RE\n };\n\n const SYMBOL_RE = /[a-zA-Z$][a-zA-Z0-9$]*/;\n const SYSTEM_SYMBOLS_SET = new Set(SYSTEM_SYMBOLS);\n /** @type {Mode} */\n const SYMBOLS = {\n variants: [\n {\n className: 'builtin-symbol',\n begin: SYMBOL_RE,\n // for performance out of fear of regex.either(...Mathematica.SYSTEM_SYMBOLS)\n \"on:begin\": (match, response) => {\n if (!SYSTEM_SYMBOLS_SET.has(match[0])) response.ignoreMatch();\n }\n },\n {\n className: 'symbol',\n relevance: 0,\n begin: SYMBOL_RE\n }\n ]\n };\n\n const NAMED_CHARACTER = {\n className: 'named-character',\n begin: /\\\\\\[[$a-zA-Z][$a-zA-Z0-9]+\\]/\n };\n\n const OPERATORS = {\n className: 'operator',\n relevance: 0,\n begin: /[+\\-*/,;.:@~=><&|_`'^?!%]+/\n };\n const PATTERNS = {\n className: 'pattern',\n relevance: 0,\n begin: /([a-zA-Z$][a-zA-Z0-9$]*)?_+([a-zA-Z$][a-zA-Z0-9$]*)?/\n };\n\n const SLOTS = {\n className: 'slot',\n relevance: 0,\n begin: /#[a-zA-Z$][a-zA-Z0-9$]*|#+[0-9]?/\n };\n\n const BRACES = {\n className: 'brace',\n relevance: 0,\n begin: /[[\\](){}]/\n };\n\n const MESSAGES = {\n className: 'message-name',\n relevance: 0,\n begin: concat(\"::\", SYMBOL_RE)\n };\n\n return {\n name: 'Mathematica',\n aliases: [\n 'mma',\n 'wl'\n ],\n classNameAliases: {\n brace: 'punctuation',\n pattern: 'type',\n slot: 'type',\n symbol: 'variable',\n 'named-character': 'variable',\n 'builtin-symbol': 'built_in',\n 'message-name': 'string'\n },\n contains: [\n hljs.COMMENT(/\\(\\*/, /\\*\\)/, {\n contains: [ 'self' ]\n }),\n PATTERNS,\n SLOTS,\n MESSAGES,\n SYMBOLS,\n NAMED_CHARACTER,\n hljs.QUOTE_STRING_MODE,\n NUMBERS,\n OPERATORS,\n BRACES\n ]\n };\n}\n\nmodule.exports = mathematica;\n","/*\nLanguage: Matlab\nAuthor: Denis Bardadym <bardadymchik@gmail.com>\nContributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>, Egor Rogov <e.rogov@postgrespro.ru>\nWebsite: https://www.mathworks.com/products/matlab.html\nCategory: scientific\n*/\n\n/*\n Formal syntax is not published, helpful link:\n https://github.com/kornilova-l/matlab-IntelliJ-plugin/blob/master/src/main/grammar/Matlab.bnf\n*/\nfunction matlab(hljs) {\n\n var TRANSPOSE_RE = '(\\'|\\\\.\\')+';\n var TRANSPOSE = {\n relevance: 0,\n contains: [\n { begin: TRANSPOSE_RE }\n ]\n };\n\n return {\n name: 'Matlab',\n keywords: {\n keyword:\n 'arguments break case catch classdef continue else elseif end enumeration events for function ' +\n 'global if methods otherwise parfor persistent properties return spmd switch try while',\n built_in:\n 'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +\n 'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +\n 'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +\n 'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +\n 'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +\n 'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +\n 'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +\n 'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +\n 'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +\n 'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +\n 'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +\n 'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i|0 inf nan ' +\n 'isnan isinf isfinite j|0 why compan gallery hadamard hankel hilb invhilb magic pascal ' +\n 'rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table ' +\n 'readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun ' +\n 'legend intersect ismember procrustes hold num2cell '\n },\n illegal: '(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',\n contains: [\n {\n className: 'function',\n beginKeywords: 'function', end: '$',\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'params',\n variants: [\n {begin: '\\\\(', end: '\\\\)'},\n {begin: '\\\\[', end: '\\\\]'}\n ]\n }\n ]\n },\n {\n className: 'built_in',\n begin: /true|false/,\n relevance: 0,\n starts: TRANSPOSE\n },\n {\n begin: '[a-zA-Z][a-zA-Z_0-9]*' + TRANSPOSE_RE,\n relevance: 0\n },\n {\n className: 'number',\n begin: hljs.C_NUMBER_RE,\n relevance: 0,\n starts: TRANSPOSE\n },\n {\n className: 'string',\n begin: '\\'', end: '\\'',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n {begin: '\\'\\''}]\n },\n {\n begin: /\\]|\\}|\\)/,\n relevance: 0,\n starts: TRANSPOSE\n },\n {\n className: 'string',\n begin: '\"', end: '\"',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n {begin: '\"\"'}\n ],\n starts: TRANSPOSE\n },\n hljs.COMMENT('^\\\\s*%\\\\{\\\\s*$', '^\\\\s*%\\\\}\\\\s*$'),\n hljs.COMMENT('%', '$')\n ]\n };\n}\n\nmodule.exports = matlab;\n","/*\nLanguage: Maxima\nAuthor: Robert Dodier <robert.dodier@gmail.com>\nWebsite: http://maxima.sourceforge.net\nCategory: scientific\n*/\n\nfunction maxima(hljs) {\n const KEYWORDS =\n 'if then else elseif for thru do while unless step in and or not';\n const LITERALS =\n 'true false unknown inf minf ind und %e %i %pi %phi %gamma';\n const BUILTIN_FUNCTIONS =\n ' abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate' +\n ' addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix' +\n ' adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type' +\n ' alias allroots alphacharp alphanumericp amortization %and annuity_fv' +\n ' annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2' +\n ' applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply' +\n ' arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger' +\n ' asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order' +\n ' asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method' +\n ' av average_degree backtrace bars barsplot barsplot_description base64 base64_decode' +\n ' bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx' +\n ' bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify' +\n ' bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized' +\n ' bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp' +\n ' bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition' +\n ' block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description' +\n ' break bug_report build_info|10 buildq build_sample burn cabs canform canten' +\n ' cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli' +\n ' cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform' +\n ' cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel' +\n ' cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial' +\n ' cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson' +\n ' cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay' +\n ' ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic' +\n ' cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2' +\n ' charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps' +\n ' chinese cholesky christof chromatic_index chromatic_number cint circulant_graph' +\n ' clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph' +\n ' clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse' +\n ' collectterms columnop columnspace columnswap columnvector combination combine' +\n ' comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph' +\n ' complete_graph complex_number_p components compose_functions concan concat' +\n ' conjugate conmetderiv connected_components connect_vertices cons constant' +\n ' constantp constituent constvalue cont2part content continuous_freq contortion' +\n ' contour_plot contract contract_edge contragrad contrib_ode convert coord' +\n ' copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1' +\n ' covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline' +\n ' ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph' +\n ' cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate' +\n ' declare declare_constvalue declare_dimensions declare_fundamental_dimensions' +\n ' declare_fundamental_units declare_qty declare_translated declare_unit_conversion' +\n ' declare_units declare_weights decsym defcon define define_alt_display define_variable' +\n ' defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten' +\n ' delta demo demoivre denom depends derivdegree derivlist describe desolve' +\n ' determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag' +\n ' diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export' +\n ' dimacs_import dimension dimensionless dimensions dimensions_as_list direct' +\n ' directory discrete_freq disjoin disjointp disolate disp dispcon dispform' +\n ' dispfun dispJordan display disprule dispterms distrib divide divisors divsum' +\n ' dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart' +\n ' draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring' +\n ' edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth' +\n ' einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome' +\n ' ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using' +\n ' ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi' +\n ' ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp' +\n ' equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors' +\n ' euler ev eval_string evenp every evolution evolution2d evundiff example exp' +\n ' expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci' +\n ' expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li' +\n ' expintegral_shi expintegral_si explicit explose exponentialize express expt' +\n ' exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum' +\n ' factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements' +\n ' fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge' +\n ' file_search file_type fillarray findde find_root find_root_abs find_root_error' +\n ' find_root_rel first fix flatten flength float floatnump floor flower_snark' +\n ' flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran' +\n ' fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp' +\n ' foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s' +\n ' from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp' +\n ' fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units' +\n ' fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized' +\n ' gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide' +\n ' gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym' +\n ' geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean' +\n ' geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string' +\n ' get_pixel get_plot_option get_tex_environment get_tex_environment_default' +\n ' get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close' +\n ' gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum' +\n ' gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import' +\n ' graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery' +\n ' graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph' +\n ' grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path' +\n ' hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite' +\n ' hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description' +\n ' hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph' +\n ' icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy' +\n ' ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart' +\n ' imetric implicit implicit_derivative implicit_plot indexed_tensor indices' +\n ' induced_subgraph inferencep inference_result infix info_display init_atensor' +\n ' init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions' +\n ' integrate intersect intersection intervalp intopois intosum invariant1 invariant2' +\n ' inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc' +\n ' inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns' +\n ' inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint' +\n ' invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph' +\n ' is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate' +\n ' isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph' +\n ' items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc' +\n ' jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd' +\n ' jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill' +\n ' killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis' +\n ' kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform' +\n ' kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete' +\n ' kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace' +\n ' kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2' +\n ' kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson' +\n ' kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange' +\n ' laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp' +\n ' lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length' +\n ' let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit' +\n ' Lindstedt linear linearinterpol linear_program linear_regression line_graph' +\n ' linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials' +\n ' listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry' +\n ' log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst' +\n ' lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact' +\n ' lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub' +\n ' lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma' +\n ' make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country' +\n ' make_polygon make_random_state make_rgb_picture makeset make_string_input_stream' +\n ' make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom' +\n ' maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display' +\n ' mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker' +\n ' max max_clique max_degree max_flow maximize_lp max_independent_set max_matching' +\n ' maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform' +\n ' mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete' +\n ' mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic' +\n ' mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t' +\n ' mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull' +\n ' median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree' +\n ' min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor' +\n ' minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton' +\n ' mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions' +\n ' multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff' +\n ' multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary' +\n ' natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext' +\n ' newdet new_graph newline newton new_variable next_prime nicedummies niceindices' +\n ' ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp' +\n ' nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst' +\n ' nthroot nullity nullspace num numbered_boundaries numberp number_to_octets' +\n ' num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai' +\n ' nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin' +\n ' oid_to_octets op opena opena_binary openr openr_binary openw openw_binary' +\n ' operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless' +\n ' orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap' +\n ' out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface' +\n ' parg parGosper parse_string parse_timedate part part2cont partfrac partition' +\n ' partition_set partpol path_digraph path_graph pathname_directory pathname_name' +\n ' pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform' +\n ' pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete' +\n ' pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal' +\n ' pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal' +\n ' pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t' +\n ' pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph' +\n ' petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding' +\n ' playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff' +\n ' poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar' +\n ' polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion' +\n ' poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal' +\n ' poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal' +\n ' poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation' +\n ' poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm' +\n ' poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form' +\n ' poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part' +\n ' poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension' +\n ' poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod' +\n ' powerseries powerset prefix prev_prime primep primes principal_components' +\n ' print printf printfile print_graph printpois printprops prodrac product properties' +\n ' propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct' +\n ' puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp' +\n ' quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile' +\n ' quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2' +\n ' quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f' +\n ' quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel' +\n ' quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal' +\n ' quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t' +\n ' quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t' +\n ' quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan' +\n ' radius random random_bernoulli random_beta random_binomial random_bipartite_graph' +\n ' random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform' +\n ' random_exp random_f random_gamma random_general_finite_discrete random_geometric' +\n ' random_graph random_graph1 random_gumbel random_hypergeometric random_laplace' +\n ' random_logistic random_lognormal random_negative_binomial random_network' +\n ' random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto' +\n ' random_permutation random_poisson random_rayleigh random_regular_graph random_student_t' +\n ' random_tournament random_tree random_weibull range rank rat ratcoef ratdenom' +\n ' ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump' +\n ' ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array' +\n ' read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline' +\n ' read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate' +\n ' realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar' +\n ' rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus' +\n ' rem remainder remarray rembox remcomps remcon remcoord remfun remfunction' +\n ' remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions' +\n ' remove_fundamental_units remove_plot_option remove_vertex rempart remrule' +\n ' remsym remvalue rename rename_file reset reset_displays residue resolvante' +\n ' resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein' +\n ' resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer' +\n ' rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann' +\n ' rinvariant risch rk rmdir rncombine romberg room rootscontract round row' +\n ' rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i' +\n ' scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description' +\n ' scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second' +\n ' sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight' +\n ' setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state' +\n ' set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications' +\n ' set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path' +\n ' show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform' +\n ' simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert' +\n ' sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial' +\n ' skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp' +\n ' skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric' +\n ' skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic' +\n ' skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t' +\n ' skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t' +\n ' skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph' +\n ' smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve' +\n ' solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export' +\n ' sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1' +\n ' spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition' +\n ' sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus' +\n ' ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot' +\n ' starplot_description status std std1 std_bernoulli std_beta std_binomial' +\n ' std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma' +\n ' std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace' +\n ' std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t' +\n ' std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull' +\n ' stemplot stirling stirling1 stirling2 strim striml strimr string stringout' +\n ' stringp strong_components struve_h struve_l sublis sublist sublist_indices' +\n ' submatrix subsample subset subsetp subst substinpart subst_parallel substpart' +\n ' substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext' +\n ' symbolp symmdifference symmetricp system take_channel take_inference tan' +\n ' tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract' +\n ' tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference' +\n ' test_normality test_proportion test_proportions_difference test_rank_sum' +\n ' test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display' +\n ' texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter' +\n ' toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep' +\n ' totalfourier totient tpartpol trace tracematrix trace_options transform_sample' +\n ' translate translate_file transpose treefale tree_reduce treillis treinat' +\n ' triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate' +\n ' truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph' +\n ' truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget' +\n ' ultraspherical underlying_graph undiff union unique uniteigenvectors unitp' +\n ' units unit_step unitvector unorder unsum untellrat untimer' +\n ' untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli' +\n ' var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform' +\n ' var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel' +\n ' var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial' +\n ' var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson' +\n ' var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp' +\n ' verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance' +\n ' vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle' +\n ' vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j' +\n ' wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian' +\n ' xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta' +\n ' zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors' +\n ' zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table' +\n ' absboxchar activecontexts adapt_depth additive adim aform algebraic' +\n ' algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic' +\n ' animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar' +\n ' asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top' +\n ' azimuth background background_color backsubst berlefact bernstein_explicit' +\n ' besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest' +\n ' border boundaries_array box boxchar breakup %c capping cauchysum cbrange' +\n ' cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics' +\n ' colorbox columns commutative complex cone context contexts contour contour_levels' +\n ' cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp' +\n ' cube current_let_rule_package cylinder data_file_name debugmode decreasing' +\n ' default_let_rule_package delay dependencies derivabbrev derivsubst detout' +\n ' diagmetric diff dim dimensions dispflag display2d|10 display_format_internal' +\n ' distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor' +\n ' doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules' +\n ' dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart' +\n ' edge_color edge_coloring edge_partition edge_type edge_width %edispflag' +\n ' elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer' +\n ' epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type' +\n ' %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand' +\n ' expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine' +\n ' factlim factorflag factorial_expand factors_only fb feature features' +\n ' file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10' +\n ' file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color' +\n ' fill_density filled_func fixed_vertices flipflag float2bf font font_size' +\n ' fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim' +\n ' gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command' +\n ' gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command' +\n ' gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command' +\n ' gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble' +\n ' gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args' +\n ' Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both' +\n ' head_length head_type height hypergeometric_representation %iargs ibase' +\n ' icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form' +\n ' ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval' +\n ' infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued' +\n ' integrate_use_rootsof integration_constant integration_constant_counter interpolate_color' +\n ' intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr' +\n ' julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment' +\n ' label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max' +\n ' leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear' +\n ' linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params' +\n ' linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname' +\n ' loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx' +\n ' logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros' +\n ' mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult' +\n ' matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10' +\n ' maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint' +\n ' maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp' +\n ' mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver' +\n ' modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag' +\n ' newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc' +\n ' noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np' +\n ' npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties' +\n ' opsubst optimprefix optionset orientation origin orthopoly_returns_intervals' +\n ' outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution' +\n ' %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart' +\n ' png_file pochhammer_max_index points pointsize point_size points_joined point_type' +\n ' poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm' +\n ' poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list' +\n ' poly_secondary_elimination_order poly_top_reduction_only posfun position' +\n ' powerdisp pred prederror primep_number_of_tests product_use_gamma program' +\n ' programmode promote_float_to_bigfloat prompt proportional_axes props psexpand' +\n ' ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof' +\n ' ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann' +\n ' ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw' +\n ' refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs' +\n ' rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy' +\n ' same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck' +\n ' setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width' +\n ' show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type' +\n ' show_vertices show_weight simp simplified_output simplify_products simpproduct' +\n ' simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn' +\n ' solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag' +\n ' stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda' +\n ' subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric' +\n ' tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials' +\n ' tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch' +\n ' tr track transcompile transform transform_xy translate_fast_arrays transparent' +\n ' transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex' +\n ' tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign' +\n ' trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars' +\n ' tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode' +\n ' tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes' +\n ' ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble' +\n ' usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition' +\n ' vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface' +\n ' wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel' +\n ' xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate' +\n ' xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel' +\n ' xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width' +\n ' ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis' +\n ' ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis' +\n ' yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob' +\n ' zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest';\n const SYMBOLS = '_ __ %|0 %%|0';\n\n return {\n name: 'Maxima',\n keywords: {\n $pattern: '[A-Za-z_%][0-9A-Za-z_%]*',\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILTIN_FUNCTIONS,\n symbol: SYMBOLS\n },\n contains: [\n {\n className: 'comment',\n begin: '/\\\\*',\n end: '\\\\*/',\n contains: [ 'self' ]\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'number',\n relevance: 0,\n variants: [\n {\n // float number w/ exponent\n // hmm, I wonder if we ought to include other exponent markers?\n begin: '\\\\b(\\\\d+|\\\\d+\\\\.|\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)[Ee][-+]?\\\\d+\\\\b'\n },\n {\n // bigfloat number\n begin: '\\\\b(\\\\d+|\\\\d+\\\\.|\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)[Bb][-+]?\\\\d+\\\\b',\n relevance: 10\n },\n {\n // float number w/out exponent\n // Doesn't seem to recognize floats which start with '.'\n begin: '\\\\b(\\\\.\\\\d+|\\\\d+\\\\.\\\\d+)\\\\b'\n },\n {\n // integer in base up to 36\n // Doesn't seem to recognize integers which end with '.'\n begin: '\\\\b(\\\\d+|0[0-9A-Za-z]+)\\\\.?\\\\b'\n }\n ]\n }\n ],\n illegal: /@/\n };\n}\n\nmodule.exports = maxima;\n","/*\nLanguage: MEL\nDescription: Maya Embedded Language\nAuthor: Shuen-Huei Guan <drake.guan@gmail.com>\nWebsite: http://www.autodesk.com/products/autodesk-maya/overview\nCategory: graphics\n*/\n\nfunction mel(hljs) {\n return {\n name: 'MEL',\n keywords:\n 'int float string vector matrix if else switch case default while do for in break ' +\n 'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +\n 'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +\n 'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +\n 'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +\n 'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +\n 'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +\n 'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +\n 'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +\n 'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +\n 'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +\n 'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +\n 'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +\n 'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +\n 'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +\n 'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +\n 'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +\n 'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +\n 'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +\n 'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +\n 'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +\n 'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +\n 'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +\n 'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +\n 'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +\n 'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +\n 'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +\n 'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +\n 'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +\n 'constrainValue constructionHistory container containsMultibyte contextInfo control ' +\n 'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +\n 'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +\n 'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +\n 'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +\n 'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +\n 'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +\n 'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +\n 'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +\n 'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +\n 'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +\n 'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +\n 'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +\n 'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +\n 'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +\n 'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +\n 'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +\n 'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +\n 'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +\n 'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +\n 'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +\n 'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +\n 'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +\n 'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +\n 'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +\n 'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +\n 'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +\n 'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +\n 'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +\n 'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +\n 'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +\n 'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +\n 'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +\n 'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +\n 'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +\n 'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +\n 'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +\n 'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +\n 'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +\n 'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +\n 'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +\n 'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +\n 'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +\n 'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +\n 'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +\n 'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +\n 'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +\n 'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +\n 'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +\n 'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +\n 'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +\n 'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +\n 'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +\n 'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +\n 'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +\n 'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +\n 'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +\n 'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +\n 'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +\n 'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +\n 'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +\n 'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +\n 'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +\n 'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +\n 'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +\n 'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +\n 'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +\n 'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +\n 'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +\n 'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +\n 'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +\n 'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +\n 'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +\n 'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +\n 'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +\n 'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +\n 'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +\n 'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +\n 'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +\n 'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +\n 'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +\n 'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +\n 'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +\n 'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +\n 'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +\n 'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +\n 'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +\n 'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +\n 'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +\n 'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +\n 'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +\n 'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +\n 'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +\n 'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +\n 'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +\n 'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +\n 'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +\n 'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +\n 'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +\n 'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +\n 'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +\n 'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +\n 'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +\n 'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +\n 'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +\n 'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +\n 'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +\n 'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +\n 'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +\n 'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +\n 'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +\n 'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +\n 'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +\n 'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +\n 'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +\n 'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +\n 'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +\n 'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +\n 'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +\n 'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +\n 'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +\n 'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +\n 'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +\n 'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +\n 'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +\n 'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +\n 'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +\n 'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +\n 'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +\n 'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +\n 'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +\n 'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +\n 'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +\n 'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +\n 'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +\n 'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +\n 'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +\n 'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +\n 'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +\n 'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +\n 'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +\n 'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +\n 'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +\n 'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +\n 'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +\n 'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +\n 'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +\n 'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +\n 'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +\n 'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +\n 'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +\n 'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +\n 'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +\n 'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +\n 'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +\n 'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +\n 'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +\n 'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +\n 'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +\n 'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +\n 'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +\n 'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +\n 'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +\n 'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +\n 'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +\n 'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +\n 'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +\n 'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +\n 'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +\n 'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +\n 'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +\n 'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +\n 'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +\n 'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',\n illegal: '</',\n contains: [\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n { // eats variables\n begin: /[$%@](\\^\\w\\b|#\\w+|[^\\s\\w{]|\\{\\w+\\}|\\w+)/\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = mel;\n","/*\nLanguage: Mercury\nAuthor: mucaho <mkucko@gmail.com>\nDescription: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.\nWebsite: https://www.mercurylang.org\n*/\n\nfunction mercury(hljs) {\n const KEYWORDS = {\n keyword:\n 'module use_module import_module include_module end_module initialise ' +\n 'mutable initialize finalize finalise interface implementation pred ' +\n 'mode func type inst solver any_pred any_func is semidet det nondet ' +\n 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +\n 'pragma promise external trace atomic or_else require_complete_switch ' +\n 'require_det require_semidet require_multi require_nondet ' +\n 'require_cc_multi require_cc_nondet require_erroneous require_failure',\n meta:\n // pragma\n 'inline no_inline type_spec source_file fact_table obsolete memo ' +\n 'loop_check minimal_model terminates does_not_terminate ' +\n 'check_termination promise_equivalent_clauses ' +\n // preprocessor\n 'foreign_proc foreign_decl foreign_code foreign_type ' +\n 'foreign_import_module foreign_export_enum foreign_export ' +\n 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +\n 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +\n 'tabled_for_io local untrailed trailed attach_to_io_state ' +\n 'can_pass_as_mercury_type stable will_not_throw_exception ' +\n 'may_modify_trail will_not_modify_trail may_duplicate ' +\n 'may_not_duplicate affects_liveness does_not_affect_liveness ' +\n 'doesnt_affect_liveness no_sharing unknown_sharing sharing',\n built_in:\n 'some all not if then else true fail false try catch catch_any ' +\n 'semidet_true semidet_false semidet_fail impure_true impure semipure'\n };\n\n const COMMENT = hljs.COMMENT('%', '$');\n\n const NUMCODE = {\n className: 'number',\n begin: \"0'.\\\\|0[box][0-9a-fA-F]*\"\n };\n\n const ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {\n relevance: 0\n });\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n relevance: 0\n });\n const STRING_FMT = {\n className: 'subst',\n begin: '\\\\\\\\[abfnrtv]\\\\|\\\\\\\\x[0-9a-fA-F]*\\\\\\\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',\n relevance: 0\n };\n STRING.contains = STRING.contains.slice(); // we need our own copy of contains\n STRING.contains.push(STRING_FMT);\n\n const IMPLICATION = {\n className: 'built_in',\n variants: [\n {\n begin: '<=>'\n },\n {\n begin: '<=',\n relevance: 0\n },\n {\n begin: '=>',\n relevance: 0\n },\n {\n begin: '/\\\\\\\\'\n },\n {\n begin: '\\\\\\\\/'\n }\n ]\n };\n\n const HEAD_BODY_CONJUNCTION = {\n className: 'built_in',\n variants: [\n {\n begin: ':-\\\\|-->'\n },\n {\n begin: '=',\n relevance: 0\n }\n ]\n };\n\n return {\n name: 'Mercury',\n aliases: [\n 'm',\n 'moo'\n ],\n keywords: KEYWORDS,\n contains: [\n IMPLICATION,\n HEAD_BODY_CONJUNCTION,\n COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMCODE,\n hljs.NUMBER_MODE,\n ATOM,\n STRING,\n { // relevance booster\n begin: /:-/\n },\n { // relevance booster\n begin: /\\.$/\n }\n ]\n };\n}\n\nmodule.exports = mercury;\n","/*\nLanguage: MIPS Assembly\nAuthor: Nebuleon Fumika <nebuleon.fumika@gmail.com>\nDescription: MIPS Assembly (up to MIPS32R2)\nWebsite: https://en.wikipedia.org/wiki/MIPS_architecture\nCategory: assembler\n*/\n\nfunction mipsasm(hljs) {\n // local labels: %?[FB]?[AT]?\\d{1,2}\\w+\n return {\n name: 'MIPS Assembly',\n case_insensitive: true,\n aliases: [ 'mips' ],\n keywords: {\n $pattern: '\\\\.?' + hljs.IDENT_RE,\n meta:\n // GNU preprocs\n '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ',\n built_in:\n '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers\n '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers\n 'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases\n 't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases\n 'k0 k1 gp sp fp ra ' + // integer register aliases\n '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers\n '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers\n 'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers\n 'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers\n 'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers\n 'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers\n },\n contains: [\n {\n className: 'keyword',\n begin: '\\\\b(' + // mnemonics\n // 32-bit integer instructions\n 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +\n 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\\\\.hb)?|jr(\\\\.hb)?|lbu?|lhu?|' +\n 'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|' +\n 'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +\n 'srlv?|subu?|sw[lr]?|xori?|wsbh|' +\n // floating-point instructions\n 'abs\\\\.[sd]|add\\\\.[sd]|alnv.ps|bc1[ft]l?|' +\n 'c\\\\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\\\\.[sd]|' +\n '(ceil|floor|round|trunc)\\\\.[lw]\\\\.[sd]|cfc1|cvt\\\\.d\\\\.[lsw]|' +\n 'cvt\\\\.l\\\\.[dsw]|cvt\\\\.ps\\\\.s|cvt\\\\.s\\\\.[dlw]|cvt\\\\.s\\\\.p[lu]|cvt\\\\.w\\\\.[dls]|' +\n 'div\\\\.[ds]|ldx?c1|luxc1|lwx?c1|madd\\\\.[sd]|mfc1|mov[fntz]?\\\\.[ds]|' +\n 'msub\\\\.[sd]|mth?c1|mul\\\\.[ds]|neg\\\\.[ds]|nmadd\\\\.[ds]|nmsub\\\\.[ds]|' +\n 'p[lu][lu]\\\\.ps|recip\\\\.fmt|r?sqrt\\\\.[ds]|sdx?c1|sub\\\\.[ds]|suxc1|' +\n 'swx?c1|' +\n // system control instructions\n 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +\n 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +\n 'tlti?u?|tnei?|wait|wrpgpr' +\n ')',\n end: '\\\\s'\n },\n // lines ending with ; or # aren't really comments, probably auto-detect fail\n hljs.COMMENT('[;#](?!\\\\s*$)', '$'),\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '[^\\\\\\\\]\\'',\n relevance: 0\n },\n {\n className: 'title',\n begin: '\\\\|',\n end: '\\\\|',\n illegal: '\\\\n',\n relevance: 0\n },\n {\n className: 'number',\n variants: [\n { // hex\n begin: '0x[0-9a-f]+'\n },\n { // bare number\n begin: '\\\\b-?\\\\d+'\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n { // GNU MIPS syntax\n begin: '^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:'\n },\n { // numbered local labels\n begin: '^\\\\s*[0-9]+:'\n },\n { // number local label reference (backwards, forwards)\n begin: '[0-9]+[bf]'\n }\n ],\n relevance: 0\n }\n ],\n // forward slashes are not allowed\n illegal: /\\//\n };\n}\n\nmodule.exports = mipsasm;\n","/*\nLanguage: Mizar\nDescription: The Mizar Language is a formal language derived from the mathematical vernacular.\nAuthor: Kelley van Evert <kelleyvanevert@gmail.com>\nWebsite: http://mizar.org/language/\nCategory: scientific\n*/\n\nfunction mizar(hljs) {\n return {\n name: 'Mizar',\n keywords:\n 'environ vocabularies notations constructors definitions ' +\n 'registrations theorems schemes requirements begin end definition ' +\n 'registration cluster existence pred func defpred deffunc theorem ' +\n 'proof let take assume then thus hence ex for st holds consider ' +\n 'reconsider such that and in provided of as from be being by means ' +\n 'equals implies iff redefine define now not or attr is mode ' +\n 'suppose per cases set thesis contradiction scheme reserve struct ' +\n 'correctness compatibility coherence symmetry assymetry ' +\n 'reflexivity irreflexivity connectedness uniqueness commutativity ' +\n 'idempotence involutiveness projectivity',\n contains: [\n hljs.COMMENT('::', '$')\n ]\n };\n}\n\nmodule.exports = mizar;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: Perl\nAuthor: Peter Leonov <gojpeg@yandex.ru>\nWebsite: https://www.perl.org\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction perl(hljs) {\n const KEYWORDS = [\n 'abs',\n 'accept',\n 'alarm',\n 'and',\n 'atan2',\n 'bind',\n 'binmode',\n 'bless',\n 'break',\n 'caller',\n 'chdir',\n 'chmod',\n 'chomp',\n 'chop',\n 'chown',\n 'chr',\n 'chroot',\n 'close',\n 'closedir',\n 'connect',\n 'continue',\n 'cos',\n 'crypt',\n 'dbmclose',\n 'dbmopen',\n 'defined',\n 'delete',\n 'die',\n 'do',\n 'dump',\n 'each',\n 'else',\n 'elsif',\n 'endgrent',\n 'endhostent',\n 'endnetent',\n 'endprotoent',\n 'endpwent',\n 'endservent',\n 'eof',\n 'eval',\n 'exec',\n 'exists',\n 'exit',\n 'exp',\n 'fcntl',\n 'fileno',\n 'flock',\n 'for',\n 'foreach',\n 'fork',\n 'format',\n 'formline',\n 'getc',\n 'getgrent',\n 'getgrgid',\n 'getgrnam',\n 'gethostbyaddr',\n 'gethostbyname',\n 'gethostent',\n 'getlogin',\n 'getnetbyaddr',\n 'getnetbyname',\n 'getnetent',\n 'getpeername',\n 'getpgrp',\n 'getpriority',\n 'getprotobyname',\n 'getprotobynumber',\n 'getprotoent',\n 'getpwent',\n 'getpwnam',\n 'getpwuid',\n 'getservbyname',\n 'getservbyport',\n 'getservent',\n 'getsockname',\n 'getsockopt',\n 'given',\n 'glob',\n 'gmtime',\n 'goto',\n 'grep',\n 'gt',\n 'hex',\n 'if',\n 'index',\n 'int',\n 'ioctl',\n 'join',\n 'keys',\n 'kill',\n 'last',\n 'lc',\n 'lcfirst',\n 'length',\n 'link',\n 'listen',\n 'local',\n 'localtime',\n 'log',\n 'lstat',\n 'lt',\n 'ma',\n 'map',\n 'mkdir',\n 'msgctl',\n 'msgget',\n 'msgrcv',\n 'msgsnd',\n 'my',\n 'ne',\n 'next',\n 'no',\n 'not',\n 'oct',\n 'open',\n 'opendir',\n 'or',\n 'ord',\n 'our',\n 'pack',\n 'package',\n 'pipe',\n 'pop',\n 'pos',\n 'print',\n 'printf',\n 'prototype',\n 'push',\n 'q|0',\n 'qq',\n 'quotemeta',\n 'qw',\n 'qx',\n 'rand',\n 'read',\n 'readdir',\n 'readline',\n 'readlink',\n 'readpipe',\n 'recv',\n 'redo',\n 'ref',\n 'rename',\n 'require',\n 'reset',\n 'return',\n 'reverse',\n 'rewinddir',\n 'rindex',\n 'rmdir',\n 'say',\n 'scalar',\n 'seek',\n 'seekdir',\n 'select',\n 'semctl',\n 'semget',\n 'semop',\n 'send',\n 'setgrent',\n 'sethostent',\n 'setnetent',\n 'setpgrp',\n 'setpriority',\n 'setprotoent',\n 'setpwent',\n 'setservent',\n 'setsockopt',\n 'shift',\n 'shmctl',\n 'shmget',\n 'shmread',\n 'shmwrite',\n 'shutdown',\n 'sin',\n 'sleep',\n 'socket',\n 'socketpair',\n 'sort',\n 'splice',\n 'split',\n 'sprintf',\n 'sqrt',\n 'srand',\n 'stat',\n 'state',\n 'study',\n 'sub',\n 'substr',\n 'symlink',\n 'syscall',\n 'sysopen',\n 'sysread',\n 'sysseek',\n 'system',\n 'syswrite',\n 'tell',\n 'telldir',\n 'tie',\n 'tied',\n 'time',\n 'times',\n 'tr',\n 'truncate',\n 'uc',\n 'ucfirst',\n 'umask',\n 'undef',\n 'unless',\n 'unlink',\n 'unpack',\n 'unshift',\n 'untie',\n 'until',\n 'use',\n 'utime',\n 'values',\n 'vec',\n 'wait',\n 'waitpid',\n 'wantarray',\n 'warn',\n 'when',\n 'while',\n 'write',\n 'x|0',\n 'xor',\n 'y|0'\n ];\n\n // https://perldoc.perl.org/perlre#Modifiers\n const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/; // aa and xx are valid, making max length 12\n const PERL_KEYWORDS = {\n $pattern: /[\\w.]+/,\n keyword: KEYWORDS.join(\" \")\n };\n const SUBST = {\n className: 'subst',\n begin: '[$@]\\\\{',\n end: '\\\\}',\n keywords: PERL_KEYWORDS\n };\n const METHOD = {\n begin: /->\\{/,\n end: /\\}/\n // contains defined later\n };\n const VAR = {\n variants: [\n {\n begin: /\\$\\d/\n },\n {\n begin: concat(\n /[$%@](\\^\\w\\b|#\\w+(::\\w+)*|\\{\\w+\\}|\\w+(::\\w*)*)/,\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z])(?![@$%])`\n )\n },\n {\n begin: /[$%@][^\\s\\w{]/,\n relevance: 0\n }\n ]\n };\n const STRING_CONTAINS = [\n hljs.BACKSLASH_ESCAPE,\n SUBST,\n VAR\n ];\n const REGEX_DELIMS = [\n /!/,\n /\\//,\n /\\|/,\n /\\?/,\n /'/,\n /\"/, // valid but infrequent and weird\n /#/ // valid but infrequent and weird\n ];\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_DOUBLE_RE = (prefix, open, close = '\\\\1') => {\n const middle = (close === '\\\\1')\n ? close\n : concat(close, open);\n return concat(\n concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n middle,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n /**\n * @param {string|RegExp} prefix\n * @param {string|RegExp} open\n * @param {string|RegExp} close\n */\n const PAIRED_RE = (prefix, open, close) => {\n return concat(\n concat(\"(?:\", prefix, \")\"),\n open,\n /(?:\\\\.|[^\\\\\\/])*?/,\n close,\n REGEX_MODIFIERS\n );\n };\n const PERL_DEFAULT_CONTAINS = [\n VAR,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT(\n /^=\\w/,\n /=cut/,\n {\n endsWithParent: true\n }\n ),\n METHOD,\n {\n className: 'string',\n contains: STRING_CONTAINS,\n variants: [\n {\n begin: 'q[qwxr]?\\\\s*\\\\(',\n end: '\\\\)',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\[',\n end: '\\\\]',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\{',\n end: '\\\\}',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*\\\\|',\n end: '\\\\|',\n relevance: 5\n },\n {\n begin: 'q[qwxr]?\\\\s*<',\n end: '>',\n relevance: 5\n },\n {\n begin: 'qw\\\\s+q',\n end: 'q',\n relevance: 5\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '`',\n end: '`',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\\{\\w+\\}/,\n relevance: 0\n },\n {\n begin: '-?\\\\w+\\\\s*=>',\n relevance: 0\n }\n ]\n },\n {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n },\n { // regexp container\n begin: '(\\\\/\\\\/|' + hljs.RE_STARTERS_RE + '|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',\n keywords: 'split return print reverse grep',\n relevance: 0,\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'regexp',\n variants: [\n // allow matching common delimiters\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", either(...REGEX_DELIMS)) },\n // and then paired delmis\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\(\", \"\\\\)\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\[\", \"\\\\]\") },\n { begin: PAIRED_DOUBLE_RE(\"s|tr|y\", \"\\\\{\", \"\\\\}\") }\n ],\n relevance: 2\n },\n {\n className: 'regexp',\n variants: [\n {\n // could be a comment in many languages so do not count\n // as relevant\n begin: /(m|qr)\\/\\//,\n relevance: 0\n },\n // prefix is optional with /regex/\n { begin: PAIRED_RE(\"(?:m|qr)?\", /\\//, /\\//)},\n // allow matching common delimiters\n { begin: PAIRED_RE(\"m|qr\", either(...REGEX_DELIMS), /\\1/)},\n // allow common paired delmins\n { begin: PAIRED_RE(\"m|qr\", /\\(/, /\\)/)},\n { begin: PAIRED_RE(\"m|qr\", /\\[/, /\\]/)},\n { begin: PAIRED_RE(\"m|qr\", /\\{/, /\\}/)}\n ]\n }\n ]\n },\n {\n className: 'function',\n beginKeywords: 'sub',\n end: '(\\\\s*\\\\(.*?\\\\))?[;{]',\n excludeEnd: true,\n relevance: 5,\n contains: [ hljs.TITLE_MODE ]\n },\n {\n begin: '-\\\\w\\\\b',\n relevance: 0\n },\n {\n begin: \"^__DATA__$\",\n end: \"^__END__$\",\n subLanguage: 'mojolicious',\n contains: [\n {\n begin: \"^@@.*\",\n end: \"$\",\n className: \"comment\"\n }\n ]\n }\n ];\n SUBST.contains = PERL_DEFAULT_CONTAINS;\n METHOD.contains = PERL_DEFAULT_CONTAINS;\n\n return {\n name: 'Perl',\n aliases: [\n 'pl',\n 'pm'\n ],\n keywords: PERL_KEYWORDS,\n contains: PERL_DEFAULT_CONTAINS\n };\n}\n\nmodule.exports = perl;\n","/*\nLanguage: Mojolicious\nRequires: xml.js, perl.js\nAuthor: Dotan Dimet <dotan@corky.net>\nDescription: Mojolicious .ep (Embedded Perl) templates\nWebsite: https://mojolicious.org\nCategory: template\n*/\nfunction mojolicious(hljs) {\n return {\n name: 'Mojolicious',\n subLanguage: 'xml',\n contains: [\n {\n className: 'meta',\n begin: '^__(END|DATA)__$'\n },\n // mojolicious line\n {\n begin: \"^\\\\s*%{1,2}={0,2}\",\n end: '$',\n subLanguage: 'perl'\n },\n // mojolicious block\n {\n begin: \"<%{1,2}={0,2}\",\n end: \"={0,1}%>\",\n subLanguage: 'perl',\n excludeBegin: true,\n excludeEnd: true\n }\n ]\n };\n}\n\nmodule.exports = mojolicious;\n","/*\nLanguage: Monkey\nDescription: Monkey2 is an easy to use, cross platform, games oriented programming language from Blitz Research.\nAuthor: Arthur Bikmullin <devolonter@gmail.com>\nWebsite: https://blitzresearch.itch.io/monkey2\n*/\n\nfunction monkey(hljs) {\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n begin: '[$][a-fA-F0-9]+'\n },\n hljs.NUMBER_MODE\n ]\n };\n\n return {\n name: 'Monkey',\n case_insensitive: true,\n keywords: {\n keyword: 'public private property continue exit extern new try catch ' +\n 'eachin not abstract final select case default const local global field ' +\n 'end if then else elseif endif while wend repeat until forever for ' +\n 'to step next return module inline throw import',\n\n built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +\n 'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',\n\n literal: 'true false null and or shl shr mod'\n },\n illegal: /\\/\\*/,\n contains: [\n hljs.COMMENT('#rem', '#end'),\n hljs.COMMENT(\n \"'\",\n '$',\n {\n relevance: 0\n }\n ),\n {\n className: 'function',\n beginKeywords: 'function method',\n end: '[(=:]|$',\n illegal: /\\n/,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: '$',\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n className: 'built_in',\n begin: '\\\\b(self|super)\\\\b'\n },\n {\n className: 'meta',\n begin: '\\\\s*#',\n end: '$',\n keywords: {\n 'meta-keyword': 'if else elseif endif end then'\n }\n },\n {\n className: 'meta',\n begin: '^\\\\s*strict\\\\b'\n },\n {\n beginKeywords: 'alias',\n end: '=',\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n hljs.QUOTE_STRING_MODE,\n NUMBER\n ]\n };\n}\n\nmodule.exports = monkey;\n","/*\nLanguage: MoonScript\nAuthor: Billy Quith <chinbillybilbo@gmail.com>\nDescription: MoonScript is a programming language that transcompiles to Lua.\nOrigin: coffeescript.js\nWebsite: http://moonscript.org/\nCategory: scripting\n*/\n\nfunction moonscript(hljs) {\n const KEYWORDS = {\n keyword:\n // Moonscript keywords\n 'if then not for in while do return else elseif break continue switch and or ' +\n 'unless when class extends super local import export from using',\n literal:\n 'true false nil',\n built_in:\n '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +\n 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +\n 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +\n 'io math os package string table'\n };\n const JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\n const SUBST = {\n className: 'subst',\n begin: /#\\{/,\n end: /\\}/,\n keywords: KEYWORDS\n };\n const EXPRESSIONS = [\n hljs.inherit(hljs.C_NUMBER_MODE,\n {\n starts: {\n end: '(\\\\s*/)?',\n relevance: 0\n }\n }), // a number tries to eat the following slash to prevent treating it as a regexp\n {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n }\n ]\n },\n {\n className: 'built_in',\n begin: '@__' + hljs.IDENT_RE\n },\n {\n begin: '@' + hljs.IDENT_RE // relevance booster on par with CoffeeScript\n },\n {\n begin: hljs.IDENT_RE + '\\\\\\\\' + hljs.IDENT_RE // inst\\method\n }\n ];\n SUBST.contains = EXPRESSIONS;\n\n const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n begin: JS_IDENT_RE\n });\n const POSSIBLE_PARAMS_RE = '(\\\\(.*\\\\)\\\\s*)?\\\\B[-=]>';\n const PARAMS = {\n className: 'params',\n begin: '\\\\([^\\\\(]',\n returnBegin: true,\n /* We need another contained nameless mode to not have every nested\n pair of parens to be called \"params\" */\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [ 'self' ].concat(EXPRESSIONS)\n }\n ]\n };\n\n return {\n name: 'MoonScript',\n aliases: [ 'moon' ],\n keywords: KEYWORDS,\n illegal: /\\/\\*/,\n contains: EXPRESSIONS.concat([\n hljs.COMMENT('--', '$'),\n {\n className: 'function', // function: -> =>\n begin: '^\\\\s*' + JS_IDENT_RE + '\\\\s*=\\\\s*' + POSSIBLE_PARAMS_RE,\n end: '[-=]>',\n returnBegin: true,\n contains: [\n TITLE,\n PARAMS\n ]\n },\n {\n begin: /[\\(,:=]\\s*/, // anonymous function start\n relevance: 0,\n contains: [\n {\n className: 'function',\n begin: POSSIBLE_PARAMS_RE,\n end: '[-=]>',\n returnBegin: true,\n contains: [ PARAMS ]\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class',\n end: '$',\n illegal: /[:=\"\\[\\]]/,\n contains: [\n {\n beginKeywords: 'extends',\n endsWithParent: true,\n illegal: /[:=\"\\[\\]]/,\n contains: [ TITLE ]\n },\n TITLE\n ]\n },\n {\n className: 'name', // table\n begin: JS_IDENT_RE + ':',\n end: ':',\n returnBegin: true,\n returnEnd: true,\n relevance: 0\n }\n ])\n };\n}\n\nmodule.exports = moonscript;\n","/*\n Language: N1QL\n Author: Andres Täht <andres.taht@gmail.com>\n Contributors: Rene Saarsoo <nene@triin.net>\n Description: Couchbase query language\n Website: https://www.couchbase.com/products/n1ql\n */\n\nfunction n1ql(hljs) {\n return {\n name: 'N1QL',\n case_insensitive: true,\n contains: [\n {\n beginKeywords:\n 'build create index delete drop explain infer|10 insert merge prepare select update upsert|10',\n end: /;/, endsWithParent: true,\n keywords: {\n // Taken from http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/reservedwords.html\n keyword:\n 'all alter analyze and any array as asc begin between binary boolean break bucket build by call ' +\n 'case cast cluster collate collection commit connect continue correlate cover create database ' +\n 'dataset datastore declare decrement delete derived desc describe distinct do drop each element ' +\n 'else end every except exclude execute exists explain fetch first flatten for force from ' +\n 'function grant group gsi having if ignore ilike in include increment index infer inline inner ' +\n 'insert intersect into is join key keys keyspace known last left let letting like limit lsm map ' +\n 'mapping matched materialized merge minus namespace nest not number object offset on ' +\n 'option or order outer over parse partition password path pool prepare primary private privilege ' +\n 'procedure public raw realm reduce rename return returning revoke right role rollback satisfies ' +\n 'schema select self semi set show some start statistics string system then to transaction trigger ' +\n 'truncate under union unique unknown unnest unset update upsert use user using validate value ' +\n 'valued values via view when where while with within work xor',\n // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/literals.html\n literal:\n 'true false null missing|5',\n // Taken from http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/functions.html\n built_in:\n 'array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length ' +\n 'array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace ' +\n 'array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull ' +\n 'missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis ' +\n 'date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str ' +\n 'duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str ' +\n 'str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode ' +\n 'base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random ' +\n 'round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values ' +\n 'object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position ' +\n 'regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper ' +\n 'isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring'\n },\n contains: [\n {\n className: 'string',\n begin: '\\'', end: '\\'',\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n className: 'string',\n begin: '\"', end: '\"',\n contains: [hljs.BACKSLASH_ESCAPE]\n },\n {\n className: 'symbol',\n begin: '`', end: '`',\n contains: [hljs.BACKSLASH_ESCAPE],\n relevance: 2\n },\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = n1ql;\n","/*\nLanguage: Nginx config\nAuthor: Peter Leonov <gojpeg@yandex.ru>\nContributors: Ivan Sagalaev <maniac@softwaremaniacs.org>\nCategory: common, config\nWebsite: https://www.nginx.com\n*/\n\nfunction nginx(hljs) {\n const VAR = {\n className: 'variable',\n variants: [\n {\n begin: /\\$\\d+/\n },\n {\n begin: /\\$\\{/,\n end: /\\}/\n },\n {\n begin: /[$@]/ + hljs.UNDERSCORE_IDENT_RE\n }\n ]\n };\n const DEFAULT = {\n endsWithParent: true,\n keywords: {\n $pattern: '[a-z/_]+',\n literal:\n 'on off yes no true false none blocked debug info notice warn error crit ' +\n 'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'\n },\n relevance: 0,\n illegal: '=>',\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /'/,\n end: /'/\n }\n ]\n },\n // this swallows entire URLs to avoid detecting numbers within\n {\n begin: '([a-z]+):/',\n end: '\\\\s',\n endsWithParent: true,\n excludeEnd: true,\n contains: [ VAR ]\n },\n {\n className: 'regexp',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR\n ],\n variants: [\n {\n begin: \"\\\\s\\\\^\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // regexp locations (~, ~*)\n {\n begin: \"~\\\\*?\\\\s+\",\n end: \"\\\\s|\\\\{|;\",\n returnEnd: true\n },\n // *.example.com\n {\n begin: \"\\\\*(\\\\.[a-z\\\\-]+)+\"\n },\n // sub.example.*\n {\n begin: \"([a-z\\\\-]+\\\\.)+\\\\*\"\n }\n ]\n },\n // IP\n {\n className: 'number',\n begin: '\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b'\n },\n // units\n {\n className: 'number',\n begin: '\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b',\n relevance: 0\n },\n VAR\n ]\n };\n\n return {\n name: 'Nginx config',\n aliases: [ 'nginxconf' ],\n contains: [\n hljs.HASH_COMMENT_MODE,\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s+\\\\{',\n returnBegin: true,\n end: /\\{/,\n contains: [\n {\n className: 'section',\n begin: hljs.UNDERSCORE_IDENT_RE\n }\n ],\n relevance: 0\n },\n {\n begin: hljs.UNDERSCORE_IDENT_RE + '\\\\s',\n end: ';|\\\\{',\n returnBegin: true,\n contains: [\n {\n className: 'attribute',\n begin: hljs.UNDERSCORE_IDENT_RE,\n starts: DEFAULT\n }\n ],\n relevance: 0\n }\n ],\n illegal: '[^\\\\s\\\\}]'\n };\n}\n\nmodule.exports = nginx;\n","/*\nLanguage: Nim\nDescription: Nim is a statically typed compiled systems programming language.\nWebsite: https://nim-lang.org\nCategory: system\n*/\n\nfunction nim(hljs) {\n return {\n name: 'Nim',\n keywords: {\n keyword:\n 'addr and as asm bind block break case cast const continue converter ' +\n 'discard distinct div do elif else end enum except export finally ' +\n 'for from func generic if import in include interface is isnot iterator ' +\n 'let macro method mixin mod nil not notin object of or out proc ptr ' +\n 'raise ref return shl shr static template try tuple type using var ' +\n 'when while with without xor yield',\n literal:\n 'shared guarded stdin stdout stderr result true false',\n built_in:\n 'int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float ' +\n 'float32 float64 bool char string cstring pointer expr stmt void ' +\n 'auto any range array openarray varargs seq set clong culong cchar ' +\n 'cschar cshort cint csize clonglong cfloat cdouble clongdouble ' +\n 'cuchar cushort cuint culonglong cstringarray semistatic'\n },\n contains: [\n {\n className: 'meta', // Actually pragma\n begin: /\\{\\./,\n end: /\\.\\}/,\n relevance: 10\n },\n {\n className: 'string',\n begin: /[a-zA-Z]\\w*\"/,\n end: /\"/,\n contains: [\n {\n begin: /\"\"/\n }\n ]\n },\n {\n className: 'string',\n begin: /([a-zA-Z]\\w*)?\"\"\"/,\n end: /\"\"\"/\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'type',\n begin: /\\b[A-Z]\\w+\\b/,\n relevance: 0\n },\n {\n className: 'number',\n relevance: 0,\n variants: [\n {\n begin: /\\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/\n },\n {\n begin: /\\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/\n },\n {\n begin: /\\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/\n },\n {\n begin: /\\b(\\d[_\\d]*)('?[iIuUfF](8|16|32|64))?/\n }\n ]\n },\n hljs.HASH_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = nim;\n","/*\nLanguage: Nix\nAuthor: Domen Kožar <domen@dev.si>\nDescription: Nix functional language\nWebsite: http://nixos.org/nix\n*/\n\nfunction nix(hljs) {\n const NIX_KEYWORDS = {\n keyword:\n 'rec with let in inherit assert if else then',\n literal:\n 'true false or and null',\n built_in:\n 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +\n 'toString derivation'\n };\n const ANTIQUOTE = {\n className: 'subst',\n begin: /\\$\\{/,\n end: /\\}/,\n keywords: NIX_KEYWORDS\n };\n const ATTRS = {\n begin: /[a-zA-Z0-9-_]+(\\s*=)/,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: /\\S+/\n }\n ]\n };\n const STRING = {\n className: 'string',\n contains: [ ANTIQUOTE ],\n variants: [\n {\n begin: \"''\",\n end: \"''\"\n },\n {\n begin: '\"',\n end: '\"'\n }\n ]\n };\n const EXPRESSIONS = [\n hljs.NUMBER_MODE,\n hljs.HASH_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n ATTRS\n ];\n ANTIQUOTE.contains = EXPRESSIONS;\n return {\n name: 'Nix',\n aliases: [ \"nixos\" ],\n keywords: NIX_KEYWORDS,\n contains: EXPRESSIONS\n };\n}\n\nmodule.exports = nix;\n","/*\nLanguage: Node REPL\nRequires: javascript.js\nAuthor: Marat Nagayev <nagaevmt@yandex.ru>\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction nodeRepl(hljs) {\n return {\n name: 'Node REPL',\n contains: [\n {\n className: 'meta',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'javascript'\n }\n },\n variants: [\n {\n begin: /^>(?=[ ]|$)/\n },\n {\n begin: /^\\.\\.\\.(?=[ ]|$)/\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = nodeRepl;\n","/*\nLanguage: NSIS\nDescription: Nullsoft Scriptable Install System\nAuthor: Jan T. Sott <jan.sott@gmail.com>\nWebsite: https://nsis.sourceforge.io/Main_Page\n*/\n\nfunction nsis(hljs) {\n const CONSTANTS = {\n className: 'variable',\n begin: /\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/\n };\n\n const DEFINES = {\n // ${defines}\n className: 'variable',\n begin: /\\$+\\{[\\w.:-]+\\}/\n };\n\n const VARIABLES = {\n // $variables\n className: 'variable',\n begin: /\\$+\\w+/,\n illegal: /\\(\\)\\{\\}/\n };\n\n const LANGUAGES = {\n // $(language_strings)\n className: 'variable',\n begin: /\\$+\\([\\w^.:-]+\\)/\n };\n\n const PARAMETERS = {\n // command parameters\n className: 'params',\n begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'\n };\n\n const COMPILER = {\n // !compiler_flags\n className: 'keyword',\n begin: /!(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|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/\n };\n\n const METACHARS = {\n // $\\n, $\\r, $\\t, $$\n className: 'meta',\n begin: /\\$(\\\\[nrt]|\\$)/\n };\n\n const PLUGINS = {\n // plug::ins\n className: 'class',\n begin: /\\w+::\\w+/\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"',\n end: '\"'\n },\n {\n begin: '\\'',\n end: '\\''\n },\n {\n begin: '`',\n end: '`'\n }\n ],\n illegal: /\\n/,\n contains: [\n METACHARS,\n CONSTANTS,\n DEFINES,\n VARIABLES,\n LANGUAGES\n ]\n };\n\n return {\n name: 'NSIS',\n case_insensitive: false,\n keywords: {\n keyword:\n 'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecShellWait ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileWriteUTF16LE FileSeek FileWrite FileWriteByte FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetKnownFolderPath GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfRtlLanguage IfShellVarContextAll IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadAndSetImage LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestLongPathAware ManifestMaxVersionTested ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PEAddResource PEDllCharacteristics PERemoveResource PESubsysVer Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle',\n literal:\n 'admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n {\n className: 'function',\n beginKeywords: 'Function PageEx Section SectionGroup',\n end: '$'\n },\n STRING,\n COMPILER,\n DEFINES,\n VARIABLES,\n LANGUAGES,\n PARAMETERS,\n PLUGINS,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = nsis;\n","/*\nLanguage: Objective-C\nAuthor: Valerii Hiora <valerii.hiora@gmail.com>\nContributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>, Minh Nguyá»…n <mxn@1ec5.org>\nWebsite: https://developer.apple.com/documentation/objectivec\nCategory: common\n*/\n\nfunction objectivec(hljs) {\n const API_CLASS = {\n className: 'built_in',\n begin: '\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'\n };\n const IDENTIFIER_RE = /[a-zA-Z@][a-zA-Z0-9_]*/;\n const OBJC_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword:\n 'int float while char export sizeof typedef const struct for union ' +\n 'unsigned long volatile static bool mutable if do return goto void ' +\n 'enum else break extern asm case short default double register explicit ' +\n 'signed typename this switch continue wchar_t inline readonly assign ' +\n 'readwrite self @synchronized id typeof ' +\n 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +\n 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +\n '@private @protected @public @try @property @end @throw @catch @finally ' +\n '@autoreleasepool @synthesize @dynamic @selector @optional @required ' +\n '@encode @package @import @defs @compatibility_alias ' +\n '__bridge __bridge_transfer __bridge_retained __bridge_retain ' +\n '__covariant __contravariant __kindof ' +\n '_Nonnull _Nullable _Null_unspecified ' +\n '__FUNCTION__ __PRETTY_FUNCTION__ __attribute__ ' +\n 'getter setter retain unsafe_unretained ' +\n 'nonnull nullable null_unspecified null_resettable class instancetype ' +\n 'NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER ' +\n 'NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED ' +\n 'NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE ' +\n 'NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END ' +\n 'NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW ' +\n 'NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN',\n literal:\n 'false true FALSE TRUE nil YES NO NULL',\n built_in:\n 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'\n };\n const CLASS_KEYWORDS = {\n $pattern: IDENTIFIER_RE,\n keyword: '@interface @class @protocol @implementation'\n };\n return {\n name: 'Objective-C',\n aliases: [\n 'mm',\n 'objc',\n 'obj-c',\n 'obj-c++',\n 'objective-c++'\n ],\n keywords: OBJC_KEYWORDS,\n illegal: '</',\n contains: [\n API_CLASS,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n {\n className: 'string',\n variants: [\n {\n begin: '@\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ]\n },\n {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'if else elif endif define undef warning error line ' +\n 'pragma ifdef ifndef include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<.*?>/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n },\n {\n className: 'class',\n begin: '(' + CLASS_KEYWORDS.keyword.split(' ').join('|') + ')\\\\b',\n end: /(\\{|$)/,\n excludeEnd: true,\n keywords: CLASS_KEYWORDS,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n begin: '\\\\.' + hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = objectivec;\n","/*\nLanguage: OCaml\nAuthor: Mehdi Dogguy <mehdi@dogguy.org>\nContributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>\nDescription: OCaml language definition.\nWebsite: https://ocaml.org\nCategory: functional\n*/\n\nfunction ocaml(hljs) {\n /* missing support for heredoc-like string (OCaml 4.0.2+) */\n return {\n name: 'OCaml',\n aliases: ['ml'],\n keywords: {\n $pattern: '[a-z_]\\\\w*!?',\n keyword:\n 'and as assert asr begin class constraint do done downto else end ' +\n 'exception external for fun function functor if in include ' +\n 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +\n 'mod module mutable new object of open! open or private rec sig struct ' +\n 'then to try type val! val virtual when while with ' +\n /* camlp4 */\n 'parser value',\n built_in:\n /* built-in types */\n 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +\n /* (some) types in Pervasives */\n 'in_channel out_channel ref',\n literal:\n 'true false'\n },\n illegal: /\\/\\/|>>/,\n contains: [\n {\n className: 'literal',\n begin: '\\\\[(\\\\|\\\\|)?\\\\]|\\\\(\\\\)',\n relevance: 0\n },\n hljs.COMMENT(\n '\\\\(\\\\*',\n '\\\\*\\\\)',\n {\n contains: ['self']\n }\n ),\n { /* type variable */\n className: 'symbol',\n begin: '\\'[A-Za-z_](?!\\')[\\\\w\\']*'\n /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */\n },\n { /* polymorphic variant */\n className: 'type',\n begin: '`[A-Z][\\\\w\\']*'\n },\n { /* module or constructor */\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*',\n relevance: 0\n },\n { /* don't color identifiers, but safely catch all identifiers with '*/\n begin: '[a-z_]\\\\w*\\'[\\\\w\\']*', relevance: 0\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),\n {\n className: 'number',\n begin:\n '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n '0[oO][0-7_]+[Lln]?|' +\n '0[bB][01_]+[Lln]?|' +\n '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',\n relevance: 0\n },\n {\n begin: /->/ // relevance booster\n }\n ]\n }\n}\n\nmodule.exports = ocaml;\n","/*\nLanguage: OpenSCAD\nAuthor: Dan Panzarella <alsoelp@gmail.com>\nDescription: OpenSCAD is a language for the 3D CAD modeling software of the same name.\nWebsite: https://www.openscad.org\nCategory: scientific\n*/\n\nfunction openscad(hljs) {\n const SPECIAL_VARS = {\n className: 'keyword',\n begin: '\\\\$(f[asn]|t|vp[rtd]|children)'\n };\n const LITERALS = {\n className: 'literal',\n begin: 'false|true|PI|undef'\n };\n const NUMBERS = {\n className: 'number',\n begin: '\\\\b\\\\d+(\\\\.\\\\d+)?(e-?\\\\d+)?', // adds 1e5, 1e-10\n relevance: 0\n };\n const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n });\n const PREPRO = {\n className: 'meta',\n keywords: {\n 'meta-keyword': 'include use'\n },\n begin: 'include|use <',\n end: '>'\n };\n const PARAMS = {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n 'self',\n NUMBERS,\n STRING,\n SPECIAL_VARS,\n LITERALS\n ]\n };\n const MODIFIERS = {\n begin: '[*!#%]',\n relevance: 0\n };\n const FUNCTIONS = {\n className: 'function',\n beginKeywords: 'module function',\n end: /=|\\{/,\n contains: [\n PARAMS,\n hljs.UNDERSCORE_TITLE_MODE\n ]\n };\n\n return {\n name: 'OpenSCAD',\n aliases: [ 'scad' ],\n keywords: {\n keyword: 'function module include use for intersection_for if else \\\\%',\n literal: 'false true PI undef',\n built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n NUMBERS,\n PREPRO,\n STRING,\n SPECIAL_VARS,\n MODIFIERS,\n FUNCTIONS\n ]\n };\n}\n\nmodule.exports = openscad;\n","/*\nLanguage: Oxygene\nAuthor: Carlo Kok <ck@remobjects.com>\nDescription: Oxygene is built on the foundation of Object Pascal, revamped and extended to be a modern language for the twenty-first century.\nWebsite: https://www.elementscompiler.com/elements/default.aspx\n*/\n\nfunction oxygene(hljs) {\n const OXYGENE_KEYWORDS = {\n $pattern: /\\.?\\w+/,\n keyword:\n 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue ' +\n 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false ' +\n 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited ' +\n 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of ' +\n 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly ' +\n 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple ' +\n 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal ' +\n 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained'\n };\n const CURLY_COMMENT = hljs.COMMENT(\n /\\{/,\n /\\}/,\n {\n relevance: 0\n }\n );\n const PAREN_COMMENT = hljs.COMMENT(\n '\\\\(\\\\*',\n '\\\\*\\\\)',\n {\n relevance: 10\n }\n );\n const STRING = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\'\\''\n }\n ]\n };\n const CHAR_STRING = {\n className: 'string',\n begin: '(#\\\\d+)+'\n };\n const FUNCTION = {\n className: 'function',\n beginKeywords: 'function constructor destructor procedure method',\n end: '[:;]',\n keywords: 'function constructor|10 destructor|10 procedure|10 method|10',\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n keywords: OXYGENE_KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING\n ]\n },\n CURLY_COMMENT,\n PAREN_COMMENT\n ]\n };\n return {\n name: 'Oxygene',\n case_insensitive: true,\n keywords: OXYGENE_KEYWORDS,\n illegal: '(\"|\\\\$[G-Zg-z]|\\\\/\\\\*|</|=>|->)',\n contains: [\n CURLY_COMMENT,\n PAREN_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n STRING,\n CHAR_STRING,\n hljs.NUMBER_MODE,\n FUNCTION,\n {\n className: 'class',\n begin: '=\\\\bclass\\\\b',\n end: 'end;',\n keywords: OXYGENE_KEYWORDS,\n contains: [\n STRING,\n CHAR_STRING,\n CURLY_COMMENT,\n PAREN_COMMENT,\n hljs.C_LINE_COMMENT_MODE,\n FUNCTION\n ]\n }\n ]\n };\n}\n\nmodule.exports = oxygene;\n","/*\nLanguage: Parser3\nRequires: xml.js\nAuthor: Oleg Volchkov <oleg@volchkov.net>\nWebsite: https://www.parser.ru/en/\nCategory: template\n*/\n\nfunction parser3(hljs) {\n const CURLY_SUBCOMMENT = hljs.COMMENT(\n /\\{/,\n /\\}/,\n {\n contains: [ 'self' ]\n }\n );\n return {\n name: 'Parser3',\n subLanguage: 'xml',\n relevance: 0,\n contains: [\n hljs.COMMENT('^#', '$'),\n hljs.COMMENT(\n /\\^rem\\{/,\n /\\}/,\n {\n relevance: 10,\n contains: [ CURLY_SUBCOMMENT ]\n }\n ),\n {\n className: 'meta',\n begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',\n relevance: 10\n },\n {\n className: 'title',\n begin: '@[\\\\w\\\\-]+\\\\[[\\\\w^;\\\\-]*\\\\](?:\\\\[[\\\\w^;\\\\-]*\\\\])?(?:.*)$'\n },\n {\n className: 'variable',\n begin: /\\$\\{?[\\w\\-.:]+\\}?/\n },\n {\n className: 'keyword',\n begin: /\\^[\\w\\-.:]+/\n },\n {\n className: 'number',\n begin: '\\\\^#[0-9a-fA-F]+'\n },\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = parser3;\n","/*\nLanguage: Packet Filter config\nDescription: pf.conf — packet filter configuration file (OpenBSD)\nAuthor: Peter Piwowarski <oldlaptop654@aol.com>\nWebsite: http://man.openbsd.org/pf.conf\nCategory: config\n*/\n\nfunction pf(hljs) {\n const MACRO = {\n className: 'variable',\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n };\n const TABLE = {\n className: 'variable',\n begin: /<(?!\\/)/,\n end: />/\n };\n\n return {\n name: 'Packet Filter config',\n aliases: [ 'pf.conf' ],\n keywords: {\n $pattern: /[a-z0-9_<>-]+/,\n built_in: /* block match pass are \"actions\" in pf.conf(5), the rest are\n * lexically similar top-level commands.\n */\n 'block match pass load anchor|5 antispoof|10 set table',\n keyword:\n 'in out log quick on rdomain inet inet6 proto from port os to route ' +\n 'allow-opts divert-packet divert-reply divert-to flags group icmp-type ' +\n 'icmp6-type label once probability recieved-on rtable prio queue ' +\n 'tos tag tagged user keep fragment for os drop ' +\n 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin ' +\n 'source-hash static-port ' +\n 'dup-to reply-to route-to ' +\n 'parent bandwidth default min max qlimit ' +\n 'block-policy debug fingerprints hostid limit loginterface optimization ' +\n 'reassemble ruleset-optimization basic none profile skip state-defaults ' +\n 'state-policy timeout ' +\n 'const counters persist ' +\n 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy ' +\n 'source-track global rule max-src-nodes max-src-states max-src-conn ' +\n 'max-src-conn-rate overload flush ' +\n 'scrub|5 max-mss min-ttl no-df|10 random-id',\n literal:\n 'all any no-route self urpf-failed egress|5 unknown'\n },\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n MACRO,\n TABLE\n ]\n };\n}\n\nmodule.exports = pf;\n","/*\nLanguage: PostgreSQL and PL/pgSQL\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nWebsite: https://www.postgresql.org/docs/11/sql.html\nDescription:\n This language incorporates both PostgreSQL SQL dialect and PL/pgSQL language.\n It is based on PostgreSQL version 11. Some notes:\n - Text in double-dollar-strings is _always_ interpreted as some programming code. Text\n in ordinary quotes is _never_ interpreted that way and highlighted just as a string.\n - There are quite a bit \"special cases\". That's because many keywords are not strictly\n they are keywords in some contexts and ordinary identifiers in others. Only some\n of such cases are handled; you still can get some of your identifiers highlighted\n wrong way.\n - Function names deliberately are not highlighted. There is no way to tell function\n call from other constructs, hence we can't highlight _all_ function names. And\n some names highlighted while others not looks ugly.\n*/\n\nfunction pgsql(hljs) {\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const UNQUOTED_IDENT = '[a-zA-Z_][a-zA-Z_0-9$]*';\n const DOLLAR_STRING = '\\\\$([a-zA-Z_]?|[a-zA-Z_][a-zA-Z_0-9]*)\\\\$';\n const LABEL = '<<\\\\s*' + UNQUOTED_IDENT + '\\\\s*>>';\n\n const SQL_KW =\n // https://www.postgresql.org/docs/11/static/sql-keywords-appendix.html\n // https://www.postgresql.org/docs/11/static/sql-commands.html\n // SQL commands (starting words)\n 'ABORT ALTER ANALYZE BEGIN CALL CHECKPOINT|10 CLOSE CLUSTER COMMENT COMMIT COPY CREATE DEALLOCATE DECLARE ' +\n 'DELETE DISCARD DO DROP END EXECUTE EXPLAIN FETCH GRANT IMPORT INSERT LISTEN LOAD LOCK MOVE NOTIFY ' +\n 'PREPARE REASSIGN|10 REFRESH REINDEX RELEASE RESET REVOKE ROLLBACK SAVEPOINT SECURITY SELECT SET SHOW ' +\n 'START TRUNCATE UNLISTEN|10 UPDATE VACUUM|10 VALUES ' +\n // SQL commands (others)\n 'AGGREGATE COLLATION CONVERSION|10 DATABASE DEFAULT PRIVILEGES DOMAIN TRIGGER EXTENSION FOREIGN ' +\n 'WRAPPER|10 TABLE FUNCTION GROUP LANGUAGE LARGE OBJECT MATERIALIZED VIEW OPERATOR CLASS ' +\n 'FAMILY POLICY PUBLICATION|10 ROLE RULE SCHEMA SEQUENCE SERVER STATISTICS SUBSCRIPTION SYSTEM ' +\n 'TABLESPACE CONFIGURATION DICTIONARY PARSER TEMPLATE TYPE USER MAPPING PREPARED ACCESS ' +\n 'METHOD CAST AS TRANSFORM TRANSACTION OWNED TO INTO SESSION AUTHORIZATION ' +\n 'INDEX PROCEDURE ASSERTION ' +\n // additional reserved key words\n 'ALL ANALYSE AND ANY ARRAY ASC ASYMMETRIC|10 BOTH CASE CHECK ' +\n 'COLLATE COLUMN CONCURRENTLY|10 CONSTRAINT CROSS ' +\n 'DEFERRABLE RANGE ' +\n 'DESC DISTINCT ELSE EXCEPT FOR FREEZE|10 FROM FULL HAVING ' +\n 'ILIKE IN INITIALLY INNER INTERSECT IS ISNULL JOIN LATERAL LEADING LIKE LIMIT ' +\n 'NATURAL NOT NOTNULL NULL OFFSET ON ONLY OR ORDER OUTER OVERLAPS PLACING PRIMARY ' +\n 'REFERENCES RETURNING SIMILAR SOME SYMMETRIC TABLESAMPLE THEN ' +\n 'TRAILING UNION UNIQUE USING VARIADIC|10 VERBOSE WHEN WHERE WINDOW WITH ' +\n // some of non-reserved (which are used in clauses or as PL/pgSQL keyword)\n 'BY RETURNS INOUT OUT SETOF|10 IF STRICT CURRENT CONTINUE OWNER LOCATION OVER PARTITION WITHIN ' +\n 'BETWEEN ESCAPE EXTERNAL INVOKER DEFINER WORK RENAME VERSION CONNECTION CONNECT ' +\n 'TABLES TEMP TEMPORARY FUNCTIONS SEQUENCES TYPES SCHEMAS OPTION CASCADE RESTRICT ADD ADMIN ' +\n 'EXISTS VALID VALIDATE ENABLE DISABLE REPLICA|10 ALWAYS PASSING COLUMNS PATH ' +\n 'REF VALUE OVERRIDING IMMUTABLE STABLE VOLATILE BEFORE AFTER EACH ROW PROCEDURAL ' +\n 'ROUTINE NO HANDLER VALIDATOR OPTIONS STORAGE OIDS|10 WITHOUT INHERIT DEPENDS CALLED ' +\n 'INPUT LEAKPROOF|10 COST ROWS NOWAIT SEARCH UNTIL ENCRYPTED|10 PASSWORD CONFLICT|10 ' +\n 'INSTEAD INHERITS CHARACTERISTICS WRITE CURSOR ALSO STATEMENT SHARE EXCLUSIVE INLINE ' +\n 'ISOLATION REPEATABLE READ COMMITTED SERIALIZABLE UNCOMMITTED LOCAL GLOBAL SQL PROCEDURES ' +\n 'RECURSIVE SNAPSHOT ROLLUP CUBE TRUSTED|10 INCLUDE FOLLOWING PRECEDING UNBOUNDED RANGE GROUPS ' +\n 'UNENCRYPTED|10 SYSID FORMAT DELIMITER HEADER QUOTE ENCODING FILTER OFF ' +\n // some parameters of VACUUM/ANALYZE/EXPLAIN\n 'FORCE_QUOTE FORCE_NOT_NULL FORCE_NULL COSTS BUFFERS TIMING SUMMARY DISABLE_PAGE_SKIPPING ' +\n //\n 'RESTART CYCLE GENERATED IDENTITY DEFERRED IMMEDIATE LEVEL LOGGED UNLOGGED ' +\n 'OF NOTHING NONE EXCLUDE ATTRIBUTE ' +\n // from GRANT (not keywords actually)\n 'USAGE ROUTINES ' +\n // actually literals, but look better this way (due to IS TRUE, IS FALSE, ISNULL etc)\n 'TRUE FALSE NAN INFINITY ';\n\n const ROLE_ATTRS = // only those not in keywrods already\n 'SUPERUSER NOSUPERUSER CREATEDB NOCREATEDB CREATEROLE NOCREATEROLE INHERIT NOINHERIT ' +\n 'LOGIN NOLOGIN REPLICATION NOREPLICATION BYPASSRLS NOBYPASSRLS ';\n\n const PLPGSQL_KW =\n 'ALIAS BEGIN CONSTANT DECLARE END EXCEPTION RETURN PERFORM|10 RAISE GET DIAGNOSTICS ' +\n 'STACKED|10 FOREACH LOOP ELSIF EXIT WHILE REVERSE SLICE DEBUG LOG INFO NOTICE WARNING ASSERT ' +\n 'OPEN ';\n\n const TYPES =\n // https://www.postgresql.org/docs/11/static/datatype.html\n 'BIGINT INT8 BIGSERIAL SERIAL8 BIT VARYING VARBIT BOOLEAN BOOL BOX BYTEA CHARACTER CHAR VARCHAR ' +\n 'CIDR CIRCLE DATE DOUBLE PRECISION FLOAT8 FLOAT INET INTEGER INT INT4 INTERVAL JSON JSONB LINE LSEG|10 ' +\n 'MACADDR MACADDR8 MONEY NUMERIC DEC DECIMAL PATH POINT POLYGON REAL FLOAT4 SMALLINT INT2 ' +\n 'SMALLSERIAL|10 SERIAL2|10 SERIAL|10 SERIAL4|10 TEXT TIME ZONE TIMETZ|10 TIMESTAMP TIMESTAMPTZ|10 TSQUERY|10 TSVECTOR|10 ' +\n 'TXID_SNAPSHOT|10 UUID XML NATIONAL NCHAR ' +\n 'INT4RANGE|10 INT8RANGE|10 NUMRANGE|10 TSRANGE|10 TSTZRANGE|10 DATERANGE|10 ' +\n // pseudotypes\n 'ANYELEMENT ANYARRAY ANYNONARRAY ANYENUM ANYRANGE CSTRING INTERNAL ' +\n 'RECORD PG_DDL_COMMAND VOID UNKNOWN OPAQUE REFCURSOR ' +\n // spec. type\n 'NAME ' +\n // OID-types\n 'OID REGPROC|10 REGPROCEDURE|10 REGOPER|10 REGOPERATOR|10 REGCLASS|10 REGTYPE|10 REGROLE|10 ' +\n 'REGNAMESPACE|10 REGCONFIG|10 REGDICTIONARY|10 ';// +\n\n const TYPES_RE =\n TYPES.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n const SQL_BI =\n 'CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURRENT_CATALOG|10 CURRENT_DATE LOCALTIME LOCALTIMESTAMP ' +\n 'CURRENT_ROLE|10 CURRENT_SCHEMA|10 SESSION_USER PUBLIC ';\n\n const PLPGSQL_BI =\n 'FOUND NEW OLD TG_NAME|10 TG_WHEN|10 TG_LEVEL|10 TG_OP|10 TG_RELID|10 TG_RELNAME|10 ' +\n 'TG_TABLE_NAME|10 TG_TABLE_SCHEMA|10 TG_NARGS|10 TG_ARGV|10 TG_EVENT|10 TG_TAG|10 ' +\n // get diagnostics\n 'ROW_COUNT RESULT_OID|10 PG_CONTEXT|10 RETURNED_SQLSTATE COLUMN_NAME CONSTRAINT_NAME ' +\n 'PG_DATATYPE_NAME|10 MESSAGE_TEXT TABLE_NAME SCHEMA_NAME PG_EXCEPTION_DETAIL|10 ' +\n 'PG_EXCEPTION_HINT|10 PG_EXCEPTION_CONTEXT|10 ';\n\n const PLPGSQL_EXCEPTIONS =\n // exceptions https://www.postgresql.org/docs/current/static/errcodes-appendix.html\n 'SQLSTATE SQLERRM|10 ' +\n 'SUCCESSFUL_COMPLETION WARNING DYNAMIC_RESULT_SETS_RETURNED IMPLICIT_ZERO_BIT_PADDING ' +\n 'NULL_VALUE_ELIMINATED_IN_SET_FUNCTION PRIVILEGE_NOT_GRANTED PRIVILEGE_NOT_REVOKED ' +\n 'STRING_DATA_RIGHT_TRUNCATION DEPRECATED_FEATURE NO_DATA NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED ' +\n 'SQL_STATEMENT_NOT_YET_COMPLETE CONNECTION_EXCEPTION CONNECTION_DOES_NOT_EXIST CONNECTION_FAILURE ' +\n 'SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION ' +\n 'TRANSACTION_RESOLUTION_UNKNOWN PROTOCOL_VIOLATION TRIGGERED_ACTION_EXCEPTION FEATURE_NOT_SUPPORTED ' +\n 'INVALID_TRANSACTION_INITIATION LOCATOR_EXCEPTION INVALID_LOCATOR_SPECIFICATION INVALID_GRANTOR ' +\n 'INVALID_GRANT_OPERATION INVALID_ROLE_SPECIFICATION DIAGNOSTICS_EXCEPTION ' +\n 'STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER CASE_NOT_FOUND CARDINALITY_VIOLATION ' +\n 'DATA_EXCEPTION ARRAY_SUBSCRIPT_ERROR CHARACTER_NOT_IN_REPERTOIRE DATETIME_FIELD_OVERFLOW ' +\n 'DIVISION_BY_ZERO ERROR_IN_ASSIGNMENT ESCAPE_CHARACTER_CONFLICT INDICATOR_OVERFLOW ' +\n 'INTERVAL_FIELD_OVERFLOW INVALID_ARGUMENT_FOR_LOGARITHM INVALID_ARGUMENT_FOR_NTILE_FUNCTION ' +\n 'INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION INVALID_ARGUMENT_FOR_POWER_FUNCTION ' +\n 'INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION INVALID_CHARACTER_VALUE_FOR_CAST ' +\n 'INVALID_DATETIME_FORMAT INVALID_ESCAPE_CHARACTER INVALID_ESCAPE_OCTET INVALID_ESCAPE_SEQUENCE ' +\n 'NONSTANDARD_USE_OF_ESCAPE_CHARACTER INVALID_INDICATOR_PARAMETER_VALUE INVALID_PARAMETER_VALUE ' +\n 'INVALID_REGULAR_EXPRESSION INVALID_ROW_COUNT_IN_LIMIT_CLAUSE ' +\n 'INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE INVALID_TABLESAMPLE_ARGUMENT INVALID_TABLESAMPLE_REPEAT ' +\n 'INVALID_TIME_ZONE_DISPLACEMENT_VALUE INVALID_USE_OF_ESCAPE_CHARACTER MOST_SPECIFIC_TYPE_MISMATCH ' +\n 'NULL_VALUE_NOT_ALLOWED NULL_VALUE_NO_INDICATOR_PARAMETER NUMERIC_VALUE_OUT_OF_RANGE ' +\n 'SEQUENCE_GENERATOR_LIMIT_EXCEEDED STRING_DATA_LENGTH_MISMATCH STRING_DATA_RIGHT_TRUNCATION ' +\n 'SUBSTRING_ERROR TRIM_ERROR UNTERMINATED_C_STRING ZERO_LENGTH_CHARACTER_STRING ' +\n 'FLOATING_POINT_EXCEPTION INVALID_TEXT_REPRESENTATION INVALID_BINARY_REPRESENTATION ' +\n 'BAD_COPY_FILE_FORMAT UNTRANSLATABLE_CHARACTER NOT_AN_XML_DOCUMENT INVALID_XML_DOCUMENT ' +\n 'INVALID_XML_CONTENT INVALID_XML_COMMENT INVALID_XML_PROCESSING_INSTRUCTION ' +\n 'INTEGRITY_CONSTRAINT_VIOLATION RESTRICT_VIOLATION NOT_NULL_VIOLATION FOREIGN_KEY_VIOLATION ' +\n 'UNIQUE_VIOLATION CHECK_VIOLATION EXCLUSION_VIOLATION INVALID_CURSOR_STATE ' +\n 'INVALID_TRANSACTION_STATE ACTIVE_SQL_TRANSACTION BRANCH_TRANSACTION_ALREADY_ACTIVE ' +\n 'HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION ' +\n 'INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION ' +\n 'NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION READ_ONLY_SQL_TRANSACTION ' +\n 'SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED NO_ACTIVE_SQL_TRANSACTION ' +\n 'IN_FAILED_SQL_TRANSACTION IDLE_IN_TRANSACTION_SESSION_TIMEOUT INVALID_SQL_STATEMENT_NAME ' +\n 'TRIGGERED_DATA_CHANGE_VIOLATION INVALID_AUTHORIZATION_SPECIFICATION INVALID_PASSWORD ' +\n 'DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST DEPENDENT_OBJECTS_STILL_EXIST ' +\n 'INVALID_TRANSACTION_TERMINATION SQL_ROUTINE_EXCEPTION FUNCTION_EXECUTED_NO_RETURN_STATEMENT ' +\n 'MODIFYING_SQL_DATA_NOT_PERMITTED PROHIBITED_SQL_STATEMENT_ATTEMPTED ' +\n 'READING_SQL_DATA_NOT_PERMITTED INVALID_CURSOR_NAME EXTERNAL_ROUTINE_EXCEPTION ' +\n 'CONTAINING_SQL_NOT_PERMITTED MODIFYING_SQL_DATA_NOT_PERMITTED ' +\n 'PROHIBITED_SQL_STATEMENT_ATTEMPTED READING_SQL_DATA_NOT_PERMITTED ' +\n 'EXTERNAL_ROUTINE_INVOCATION_EXCEPTION INVALID_SQLSTATE_RETURNED NULL_VALUE_NOT_ALLOWED ' +\n 'TRIGGER_PROTOCOL_VIOLATED SRF_PROTOCOL_VIOLATED EVENT_TRIGGER_PROTOCOL_VIOLATED ' +\n 'SAVEPOINT_EXCEPTION INVALID_SAVEPOINT_SPECIFICATION INVALID_CATALOG_NAME ' +\n 'INVALID_SCHEMA_NAME TRANSACTION_ROLLBACK TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION ' +\n 'SERIALIZATION_FAILURE STATEMENT_COMPLETION_UNKNOWN DEADLOCK_DETECTED ' +\n 'SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION SYNTAX_ERROR INSUFFICIENT_PRIVILEGE CANNOT_COERCE ' +\n 'GROUPING_ERROR WINDOWING_ERROR INVALID_RECURSION INVALID_FOREIGN_KEY INVALID_NAME ' +\n 'NAME_TOO_LONG RESERVED_NAME DATATYPE_MISMATCH INDETERMINATE_DATATYPE COLLATION_MISMATCH ' +\n 'INDETERMINATE_COLLATION WRONG_OBJECT_TYPE GENERATED_ALWAYS UNDEFINED_COLUMN ' +\n 'UNDEFINED_FUNCTION UNDEFINED_TABLE UNDEFINED_PARAMETER UNDEFINED_OBJECT ' +\n 'DUPLICATE_COLUMN DUPLICATE_CURSOR DUPLICATE_DATABASE DUPLICATE_FUNCTION ' +\n 'DUPLICATE_PREPARED_STATEMENT DUPLICATE_SCHEMA DUPLICATE_TABLE DUPLICATE_ALIAS ' +\n 'DUPLICATE_OBJECT AMBIGUOUS_COLUMN AMBIGUOUS_FUNCTION AMBIGUOUS_PARAMETER AMBIGUOUS_ALIAS ' +\n 'INVALID_COLUMN_REFERENCE INVALID_COLUMN_DEFINITION INVALID_CURSOR_DEFINITION ' +\n 'INVALID_DATABASE_DEFINITION INVALID_FUNCTION_DEFINITION ' +\n 'INVALID_PREPARED_STATEMENT_DEFINITION INVALID_SCHEMA_DEFINITION INVALID_TABLE_DEFINITION ' +\n 'INVALID_OBJECT_DEFINITION WITH_CHECK_OPTION_VIOLATION INSUFFICIENT_RESOURCES DISK_FULL ' +\n 'OUT_OF_MEMORY TOO_MANY_CONNECTIONS CONFIGURATION_LIMIT_EXCEEDED PROGRAM_LIMIT_EXCEEDED ' +\n 'STATEMENT_TOO_COMPLEX TOO_MANY_COLUMNS TOO_MANY_ARGUMENTS OBJECT_NOT_IN_PREREQUISITE_STATE ' +\n 'OBJECT_IN_USE CANT_CHANGE_RUNTIME_PARAM LOCK_NOT_AVAILABLE OPERATOR_INTERVENTION ' +\n 'QUERY_CANCELED ADMIN_SHUTDOWN CRASH_SHUTDOWN CANNOT_CONNECT_NOW DATABASE_DROPPED ' +\n 'SYSTEM_ERROR IO_ERROR UNDEFINED_FILE DUPLICATE_FILE SNAPSHOT_TOO_OLD CONFIG_FILE_ERROR ' +\n 'LOCK_FILE_EXISTS FDW_ERROR FDW_COLUMN_NAME_NOT_FOUND FDW_DYNAMIC_PARAMETER_VALUE_NEEDED ' +\n 'FDW_FUNCTION_SEQUENCE_ERROR FDW_INCONSISTENT_DESCRIPTOR_INFORMATION ' +\n 'FDW_INVALID_ATTRIBUTE_VALUE FDW_INVALID_COLUMN_NAME FDW_INVALID_COLUMN_NUMBER ' +\n 'FDW_INVALID_DATA_TYPE FDW_INVALID_DATA_TYPE_DESCRIPTORS ' +\n 'FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER FDW_INVALID_HANDLE FDW_INVALID_OPTION_INDEX ' +\n 'FDW_INVALID_OPTION_NAME FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH ' +\n 'FDW_INVALID_STRING_FORMAT FDW_INVALID_USE_OF_NULL_POINTER FDW_TOO_MANY_HANDLES ' +\n 'FDW_OUT_OF_MEMORY FDW_NO_SCHEMAS FDW_OPTION_NAME_NOT_FOUND FDW_REPLY_HANDLE ' +\n 'FDW_SCHEMA_NOT_FOUND FDW_TABLE_NOT_FOUND FDW_UNABLE_TO_CREATE_EXECUTION ' +\n 'FDW_UNABLE_TO_CREATE_REPLY FDW_UNABLE_TO_ESTABLISH_CONNECTION PLPGSQL_ERROR ' +\n 'RAISE_EXCEPTION NO_DATA_FOUND TOO_MANY_ROWS ASSERT_FAILURE INTERNAL_ERROR DATA_CORRUPTED ' +\n 'INDEX_CORRUPTED ';\n\n const FUNCTIONS =\n // https://www.postgresql.org/docs/11/static/functions-aggregate.html\n 'ARRAY_AGG AVG BIT_AND BIT_OR BOOL_AND BOOL_OR COUNT EVERY JSON_AGG JSONB_AGG JSON_OBJECT_AGG ' +\n 'JSONB_OBJECT_AGG MAX MIN MODE STRING_AGG SUM XMLAGG ' +\n 'CORR COVAR_POP COVAR_SAMP REGR_AVGX REGR_AVGY REGR_COUNT REGR_INTERCEPT REGR_R2 REGR_SLOPE ' +\n 'REGR_SXX REGR_SXY REGR_SYY STDDEV STDDEV_POP STDDEV_SAMP VARIANCE VAR_POP VAR_SAMP ' +\n 'PERCENTILE_CONT PERCENTILE_DISC ' +\n // https://www.postgresql.org/docs/11/static/functions-window.html\n 'ROW_NUMBER RANK DENSE_RANK PERCENT_RANK CUME_DIST NTILE LAG LEAD FIRST_VALUE LAST_VALUE NTH_VALUE ' +\n // https://www.postgresql.org/docs/11/static/functions-comparison.html\n 'NUM_NONNULLS NUM_NULLS ' +\n // https://www.postgresql.org/docs/11/static/functions-math.html\n 'ABS CBRT CEIL CEILING DEGREES DIV EXP FLOOR LN LOG MOD PI POWER RADIANS ROUND SCALE SIGN SQRT ' +\n 'TRUNC WIDTH_BUCKET ' +\n 'RANDOM SETSEED ' +\n 'ACOS ACOSD ASIN ASIND ATAN ATAND ATAN2 ATAN2D COS COSD COT COTD SIN SIND TAN TAND ' +\n // https://www.postgresql.org/docs/11/static/functions-string.html\n 'BIT_LENGTH CHAR_LENGTH CHARACTER_LENGTH LOWER OCTET_LENGTH OVERLAY POSITION SUBSTRING TREAT TRIM UPPER ' +\n 'ASCII BTRIM CHR CONCAT CONCAT_WS CONVERT CONVERT_FROM CONVERT_TO DECODE ENCODE INITCAP ' +\n 'LEFT LENGTH LPAD LTRIM MD5 PARSE_IDENT PG_CLIENT_ENCODING QUOTE_IDENT|10 QUOTE_LITERAL|10 ' +\n 'QUOTE_NULLABLE|10 REGEXP_MATCH REGEXP_MATCHES REGEXP_REPLACE REGEXP_SPLIT_TO_ARRAY ' +\n 'REGEXP_SPLIT_TO_TABLE REPEAT REPLACE REVERSE RIGHT RPAD RTRIM SPLIT_PART STRPOS SUBSTR ' +\n 'TO_ASCII TO_HEX TRANSLATE ' +\n // https://www.postgresql.org/docs/11/static/functions-binarystring.html\n 'OCTET_LENGTH GET_BIT GET_BYTE SET_BIT SET_BYTE ' +\n // https://www.postgresql.org/docs/11/static/functions-formatting.html\n 'TO_CHAR TO_DATE TO_NUMBER TO_TIMESTAMP ' +\n // https://www.postgresql.org/docs/11/static/functions-datetime.html\n 'AGE CLOCK_TIMESTAMP|10 DATE_PART DATE_TRUNC ISFINITE JUSTIFY_DAYS JUSTIFY_HOURS JUSTIFY_INTERVAL ' +\n 'MAKE_DATE MAKE_INTERVAL|10 MAKE_TIME MAKE_TIMESTAMP|10 MAKE_TIMESTAMPTZ|10 NOW STATEMENT_TIMESTAMP|10 ' +\n 'TIMEOFDAY TRANSACTION_TIMESTAMP|10 ' +\n // https://www.postgresql.org/docs/11/static/functions-enum.html\n 'ENUM_FIRST ENUM_LAST ENUM_RANGE ' +\n // https://www.postgresql.org/docs/11/static/functions-geometry.html\n 'AREA CENTER DIAMETER HEIGHT ISCLOSED ISOPEN NPOINTS PCLOSE POPEN RADIUS WIDTH ' +\n 'BOX BOUND_BOX CIRCLE LINE LSEG PATH POLYGON ' +\n // https://www.postgresql.org/docs/11/static/functions-net.html\n 'ABBREV BROADCAST HOST HOSTMASK MASKLEN NETMASK NETWORK SET_MASKLEN TEXT INET_SAME_FAMILY ' +\n 'INET_MERGE MACADDR8_SET7BIT ' +\n // https://www.postgresql.org/docs/11/static/functions-textsearch.html\n 'ARRAY_TO_TSVECTOR GET_CURRENT_TS_CONFIG NUMNODE PLAINTO_TSQUERY PHRASETO_TSQUERY WEBSEARCH_TO_TSQUERY ' +\n 'QUERYTREE SETWEIGHT STRIP TO_TSQUERY TO_TSVECTOR JSON_TO_TSVECTOR JSONB_TO_TSVECTOR TS_DELETE ' +\n 'TS_FILTER TS_HEADLINE TS_RANK TS_RANK_CD TS_REWRITE TSQUERY_PHRASE TSVECTOR_TO_ARRAY ' +\n 'TSVECTOR_UPDATE_TRIGGER TSVECTOR_UPDATE_TRIGGER_COLUMN ' +\n // https://www.postgresql.org/docs/11/static/functions-xml.html\n 'XMLCOMMENT XMLCONCAT XMLELEMENT XMLFOREST XMLPI XMLROOT ' +\n 'XMLEXISTS XML_IS_WELL_FORMED XML_IS_WELL_FORMED_DOCUMENT XML_IS_WELL_FORMED_CONTENT ' +\n 'XPATH XPATH_EXISTS XMLTABLE XMLNAMESPACES ' +\n 'TABLE_TO_XML TABLE_TO_XMLSCHEMA TABLE_TO_XML_AND_XMLSCHEMA ' +\n 'QUERY_TO_XML QUERY_TO_XMLSCHEMA QUERY_TO_XML_AND_XMLSCHEMA ' +\n 'CURSOR_TO_XML CURSOR_TO_XMLSCHEMA ' +\n 'SCHEMA_TO_XML SCHEMA_TO_XMLSCHEMA SCHEMA_TO_XML_AND_XMLSCHEMA ' +\n 'DATABASE_TO_XML DATABASE_TO_XMLSCHEMA DATABASE_TO_XML_AND_XMLSCHEMA ' +\n 'XMLATTRIBUTES ' +\n // https://www.postgresql.org/docs/11/static/functions-json.html\n 'TO_JSON TO_JSONB ARRAY_TO_JSON ROW_TO_JSON JSON_BUILD_ARRAY JSONB_BUILD_ARRAY JSON_BUILD_OBJECT ' +\n 'JSONB_BUILD_OBJECT JSON_OBJECT JSONB_OBJECT JSON_ARRAY_LENGTH JSONB_ARRAY_LENGTH JSON_EACH ' +\n 'JSONB_EACH JSON_EACH_TEXT JSONB_EACH_TEXT JSON_EXTRACT_PATH JSONB_EXTRACT_PATH ' +\n 'JSON_OBJECT_KEYS JSONB_OBJECT_KEYS JSON_POPULATE_RECORD JSONB_POPULATE_RECORD JSON_POPULATE_RECORDSET ' +\n 'JSONB_POPULATE_RECORDSET JSON_ARRAY_ELEMENTS JSONB_ARRAY_ELEMENTS JSON_ARRAY_ELEMENTS_TEXT ' +\n 'JSONB_ARRAY_ELEMENTS_TEXT JSON_TYPEOF JSONB_TYPEOF JSON_TO_RECORD JSONB_TO_RECORD JSON_TO_RECORDSET ' +\n 'JSONB_TO_RECORDSET JSON_STRIP_NULLS JSONB_STRIP_NULLS JSONB_SET JSONB_INSERT JSONB_PRETTY ' +\n // https://www.postgresql.org/docs/11/static/functions-sequence.html\n 'CURRVAL LASTVAL NEXTVAL SETVAL ' +\n // https://www.postgresql.org/docs/11/static/functions-conditional.html\n 'COALESCE NULLIF GREATEST LEAST ' +\n // https://www.postgresql.org/docs/11/static/functions-array.html\n 'ARRAY_APPEND ARRAY_CAT ARRAY_NDIMS ARRAY_DIMS ARRAY_FILL ARRAY_LENGTH ARRAY_LOWER ARRAY_POSITION ' +\n 'ARRAY_POSITIONS ARRAY_PREPEND ARRAY_REMOVE ARRAY_REPLACE ARRAY_TO_STRING ARRAY_UPPER CARDINALITY ' +\n 'STRING_TO_ARRAY UNNEST ' +\n // https://www.postgresql.org/docs/11/static/functions-range.html\n 'ISEMPTY LOWER_INC UPPER_INC LOWER_INF UPPER_INF RANGE_MERGE ' +\n // https://www.postgresql.org/docs/11/static/functions-srf.html\n 'GENERATE_SERIES GENERATE_SUBSCRIPTS ' +\n // https://www.postgresql.org/docs/11/static/functions-info.html\n 'CURRENT_DATABASE CURRENT_QUERY CURRENT_SCHEMA|10 CURRENT_SCHEMAS|10 INET_CLIENT_ADDR INET_CLIENT_PORT ' +\n 'INET_SERVER_ADDR INET_SERVER_PORT ROW_SECURITY_ACTIVE FORMAT_TYPE ' +\n 'TO_REGCLASS TO_REGPROC TO_REGPROCEDURE TO_REGOPER TO_REGOPERATOR TO_REGTYPE TO_REGNAMESPACE TO_REGROLE ' +\n 'COL_DESCRIPTION OBJ_DESCRIPTION SHOBJ_DESCRIPTION ' +\n 'TXID_CURRENT TXID_CURRENT_IF_ASSIGNED TXID_CURRENT_SNAPSHOT TXID_SNAPSHOT_XIP TXID_SNAPSHOT_XMAX ' +\n 'TXID_SNAPSHOT_XMIN TXID_VISIBLE_IN_SNAPSHOT TXID_STATUS ' +\n // https://www.postgresql.org/docs/11/static/functions-admin.html\n 'CURRENT_SETTING SET_CONFIG BRIN_SUMMARIZE_NEW_VALUES BRIN_SUMMARIZE_RANGE BRIN_DESUMMARIZE_RANGE ' +\n 'GIN_CLEAN_PENDING_LIST ' +\n // https://www.postgresql.org/docs/11/static/functions-trigger.html\n 'SUPPRESS_REDUNDANT_UPDATES_TRIGGER ' +\n // ihttps://www.postgresql.org/docs/devel/static/lo-funcs.html\n 'LO_FROM_BYTEA LO_PUT LO_GET LO_CREAT LO_CREATE LO_UNLINK LO_IMPORT LO_EXPORT LOREAD LOWRITE ' +\n //\n 'GROUPING CAST ';\n\n const FUNCTIONS_RE =\n FUNCTIONS.trim()\n .split(' ')\n .map(function(val) { return val.split('|')[0]; })\n .join('|');\n\n return {\n name: 'PostgreSQL',\n aliases: [\n 'postgres',\n 'postgresql'\n ],\n case_insensitive: true,\n keywords: {\n keyword:\n SQL_KW + PLPGSQL_KW + ROLE_ATTRS,\n built_in:\n SQL_BI + PLPGSQL_BI + PLPGSQL_EXCEPTIONS\n },\n // Forbid some cunstructs from other languages to improve autodetect. In fact\n // \"[a-z]:\" is legal (as part of array slice), but improbabal.\n illegal: /:==|\\W\\s*\\(\\*|(^|\\s)\\$[a-z]|\\{\\{|[a-z]:\\s*$|\\.\\.\\.|TO:|DO:/,\n contains: [\n // special handling of some words, which are reserved only in some contexts\n {\n className: 'keyword',\n variants: [\n {\n begin: /\\bTEXT\\s*SEARCH\\b/\n },\n {\n begin: /\\b(PRIMARY|FOREIGN|FOR(\\s+NO)?)\\s+KEY\\b/\n },\n {\n begin: /\\bPARALLEL\\s+(UNSAFE|RESTRICTED|SAFE)\\b/\n },\n {\n begin: /\\bSTORAGE\\s+(PLAIN|EXTERNAL|EXTENDED|MAIN)\\b/\n },\n {\n begin: /\\bMATCH\\s+(FULL|PARTIAL|SIMPLE)\\b/\n },\n {\n begin: /\\bNULLS\\s+(FIRST|LAST)\\b/\n },\n {\n begin: /\\bEVENT\\s+TRIGGER\\b/\n },\n {\n begin: /\\b(MAPPING|OR)\\s+REPLACE\\b/\n },\n {\n begin: /\\b(FROM|TO)\\s+(PROGRAM|STDIN|STDOUT)\\b/\n },\n {\n begin: /\\b(SHARE|EXCLUSIVE)\\s+MODE\\b/\n },\n {\n begin: /\\b(LEFT|RIGHT)\\s+(OUTER\\s+)?JOIN\\b/\n },\n {\n begin: /\\b(FETCH|MOVE)\\s+(NEXT|PRIOR|FIRST|LAST|ABSOLUTE|RELATIVE|FORWARD|BACKWARD)\\b/\n },\n {\n begin: /\\bPRESERVE\\s+ROWS\\b/\n },\n {\n begin: /\\bDISCARD\\s+PLANS\\b/\n },\n {\n begin: /\\bREFERENCING\\s+(OLD|NEW)\\b/\n },\n {\n begin: /\\bSKIP\\s+LOCKED\\b/\n },\n {\n begin: /\\bGROUPING\\s+SETS\\b/\n },\n {\n begin: /\\b(BINARY|INSENSITIVE|SCROLL|NO\\s+SCROLL)\\s+(CURSOR|FOR)\\b/\n },\n {\n begin: /\\b(WITH|WITHOUT)\\s+HOLD\\b/\n },\n {\n begin: /\\bWITH\\s+(CASCADED|LOCAL)\\s+CHECK\\s+OPTION\\b/\n },\n {\n begin: /\\bEXCLUDE\\s+(TIES|NO\\s+OTHERS)\\b/\n },\n {\n begin: /\\bFORMAT\\s+(TEXT|XML|JSON|YAML)\\b/\n },\n {\n begin: /\\bSET\\s+((SESSION|LOCAL)\\s+)?NAMES\\b/\n },\n {\n begin: /\\bIS\\s+(NOT\\s+)?UNKNOWN\\b/\n },\n {\n begin: /\\bSECURITY\\s+LABEL\\b/\n },\n {\n begin: /\\bSTANDALONE\\s+(YES|NO|NO\\s+VALUE)\\b/\n },\n {\n begin: /\\bWITH\\s+(NO\\s+)?DATA\\b/\n },\n {\n begin: /\\b(FOREIGN|SET)\\s+DATA\\b/\n },\n {\n begin: /\\bSET\\s+(CATALOG|CONSTRAINTS)\\b/\n },\n {\n begin: /\\b(WITH|FOR)\\s+ORDINALITY\\b/\n },\n {\n begin: /\\bIS\\s+(NOT\\s+)?DOCUMENT\\b/\n },\n {\n begin: /\\bXML\\s+OPTION\\s+(DOCUMENT|CONTENT)\\b/\n },\n {\n begin: /\\b(STRIP|PRESERVE)\\s+WHITESPACE\\b/\n },\n {\n begin: /\\bNO\\s+(ACTION|MAXVALUE|MINVALUE)\\b/\n },\n {\n begin: /\\bPARTITION\\s+BY\\s+(RANGE|LIST|HASH)\\b/\n },\n {\n begin: /\\bAT\\s+TIME\\s+ZONE\\b/\n },\n {\n begin: /\\bGRANTED\\s+BY\\b/\n },\n {\n begin: /\\bRETURN\\s+(QUERY|NEXT)\\b/\n },\n {\n begin: /\\b(ATTACH|DETACH)\\s+PARTITION\\b/\n },\n {\n begin: /\\bFORCE\\s+ROW\\s+LEVEL\\s+SECURITY\\b/\n },\n {\n begin: /\\b(INCLUDING|EXCLUDING)\\s+(COMMENTS|CONSTRAINTS|DEFAULTS|IDENTITY|INDEXES|STATISTICS|STORAGE|ALL)\\b/\n },\n {\n begin: /\\bAS\\s+(ASSIGNMENT|IMPLICIT|PERMISSIVE|RESTRICTIVE|ENUM|RANGE)\\b/\n }\n ]\n },\n // functions named as keywords, followed by '('\n {\n begin: /\\b(FORMAT|FAMILY|VERSION)\\s*\\(/\n // keywords: { built_in: 'FORMAT FAMILY VERSION' }\n },\n // INCLUDE ( ... ) in index_parameters in CREATE TABLE\n {\n begin: /\\bINCLUDE\\s*\\(/,\n keywords: 'INCLUDE'\n },\n // not highlight RANGE if not in frame_clause (not 100% correct, but seems satisfactory)\n {\n begin: /\\bRANGE(?!\\s*(BETWEEN|UNBOUNDED|CURRENT|[-0-9]+))/\n },\n // disable highlighting in commands CREATE AGGREGATE/COLLATION/DATABASE/OPERTOR/TEXT SEARCH .../TYPE\n // and in PL/pgSQL RAISE ... USING\n {\n begin: /\\b(VERSION|OWNER|TEMPLATE|TABLESPACE|CONNECTION\\s+LIMIT|PROCEDURE|RESTRICT|JOIN|PARSER|COPY|START|END|COLLATION|INPUT|ANALYZE|STORAGE|LIKE|DEFAULT|DELIMITER|ENCODING|COLUMN|CONSTRAINT|TABLE|SCHEMA)\\s*=/\n },\n // PG_smth; HAS_some_PRIVILEGE\n {\n // className: 'built_in',\n begin: /\\b(PG_\\w+?|HAS_[A-Z_]+_PRIVILEGE)\\b/,\n relevance: 10\n },\n // extract\n {\n begin: /\\bEXTRACT\\s*\\(/,\n end: /\\bFROM\\b/,\n returnEnd: true,\n keywords: {\n // built_in: 'EXTRACT',\n type: 'CENTURY DAY DECADE DOW DOY EPOCH HOUR ISODOW ISOYEAR MICROSECONDS ' +\n 'MILLENNIUM MILLISECONDS MINUTE MONTH QUARTER SECOND TIMEZONE TIMEZONE_HOUR ' +\n 'TIMEZONE_MINUTE WEEK YEAR'\n }\n },\n // xmlelement, xmlpi - special NAME\n {\n begin: /\\b(XMLELEMENT|XMLPI)\\s*\\(\\s*NAME/,\n keywords: {\n // built_in: 'XMLELEMENT XMLPI',\n keyword: 'NAME'\n }\n },\n // xmlparse, xmlserialize\n {\n begin: /\\b(XMLPARSE|XMLSERIALIZE)\\s*\\(\\s*(DOCUMENT|CONTENT)/,\n keywords: {\n // built_in: 'XMLPARSE XMLSERIALIZE',\n keyword: 'DOCUMENT CONTENT'\n }\n },\n // Sequences. We actually skip everything between CACHE|INCREMENT|MAXVALUE|MINVALUE and\n // nearest following numeric constant. Without with trick we find a lot of \"keywords\"\n // in 'avrasm' autodetection test...\n {\n beginKeywords: 'CACHE INCREMENT MAXVALUE MINVALUE',\n end: hljs.C_NUMBER_RE,\n returnEnd: true,\n keywords: 'BY CACHE INCREMENT MAXVALUE MINVALUE'\n },\n // WITH|WITHOUT TIME ZONE as part of datatype\n {\n className: 'type',\n begin: /\\b(WITH|WITHOUT)\\s+TIME\\s+ZONE\\b/\n },\n // INTERVAL optional fields\n {\n className: 'type',\n begin: /\\bINTERVAL\\s+(YEAR|MONTH|DAY|HOUR|MINUTE|SECOND)(\\s+TO\\s+(MONTH|HOUR|MINUTE|SECOND))?\\b/\n },\n // Pseudo-types which allowed only as return type\n {\n begin: /\\bRETURNS\\s+(LANGUAGE_HANDLER|TRIGGER|EVENT_TRIGGER|FDW_HANDLER|INDEX_AM_HANDLER|TSM_HANDLER)\\b/,\n keywords: {\n keyword: 'RETURNS',\n type: 'LANGUAGE_HANDLER TRIGGER EVENT_TRIGGER FDW_HANDLER INDEX_AM_HANDLER TSM_HANDLER'\n }\n },\n // Known functions - only when followed by '('\n {\n begin: '\\\\b(' + FUNCTIONS_RE + ')\\\\s*\\\\('\n // keywords: { built_in: FUNCTIONS }\n },\n // Types\n {\n begin: '\\\\.(' + TYPES_RE + ')\\\\b' // prevent highlight as type, say, 'oid' in 'pgclass.oid'\n },\n {\n begin: '\\\\b(' + TYPES_RE + ')\\\\s+PATH\\\\b', // in XMLTABLE\n keywords: {\n keyword: 'PATH', // hopefully no one would use PATH type in XMLTABLE...\n type: TYPES.replace('PATH ', '')\n }\n },\n {\n className: 'type',\n begin: '\\\\b(' + TYPES_RE + ')\\\\b'\n },\n // Strings, see https://www.postgresql.org/docs/11/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS\n {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\'\\''\n }\n ]\n },\n {\n className: 'string',\n begin: '(e|E|u&|U&)\\'',\n end: '\\'',\n contains: [\n {\n begin: '\\\\\\\\.'\n }\n ],\n relevance: 10\n },\n hljs.END_SAME_AS_BEGIN({\n begin: DOLLAR_STRING,\n end: DOLLAR_STRING,\n contains: [\n {\n // actually we want them all except SQL; listed are those with known implementations\n // and XML + JSON just in case\n subLanguage: [\n 'pgsql',\n 'perl',\n 'python',\n 'tcl',\n 'r',\n 'lua',\n 'java',\n 'php',\n 'ruby',\n 'bash',\n 'scheme',\n 'xml',\n 'json'\n ],\n endsWithParent: true\n }\n ]\n }),\n // identifiers in quotes\n {\n begin: '\"',\n end: '\"',\n contains: [\n {\n begin: '\"\"'\n }\n ]\n },\n // numbers\n hljs.C_NUMBER_MODE,\n // comments\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n // PL/pgSQL staff\n // %ROWTYPE, %TYPE, $n\n {\n className: 'meta',\n variants: [\n { // %TYPE, %ROWTYPE\n begin: '%(ROW)?TYPE',\n relevance: 10\n },\n { // $n\n begin: '\\\\$\\\\d+'\n },\n { // #compiler option\n begin: '^#\\\\w',\n end: '$'\n }\n ]\n },\n // <<labeles>>\n {\n className: 'symbol',\n begin: LABEL,\n relevance: 10\n }\n ]\n };\n}\n\nmodule.exports = pgsql;\n","/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*' +\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n `(?![A-Za-z0-9])(?![$])`\n };\n const PREPROCESSOR = {\n className: 'meta',\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?[=]?/ },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n className: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n { begin: /\\{\\$/, end: /\\}/ }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const HEREDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*(\\w+)\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n const STRING = {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],\n variants: [\n hljs.inherit(SINGLE_QUOTED, {\n begin: \"b'\", end: \"'\",\n }),\n hljs.inherit(DOUBLE_QUOTED, {\n begin: 'b\"', end: '\"',\n }),\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC\n ]\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: `\\\\b0b[01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0o[0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0x[\\\\da-f]+(?:_[\\\\da-f]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:e[+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const KEYWORDS = {\n keyword:\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n '__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ ' +\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n 'die echo exit include include_once print require require_once ' +\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n 'array abstract and as binary bool boolean break callable case catch class clone const continue declare ' +\n 'default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends ' +\n 'final finally float for foreach from global goto if implements instanceof insteadof int integer interface ' +\n 'isset iterable list match|0 mixed new object or private protected public real return string switch throw trait ' +\n 'try unset use var void while xor yield',\n literal: 'false null true',\n built_in:\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n 'Error|0 ' + // error is too common a name esp since PHP is case in-sensitive\n 'AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ' +\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n 'ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap ' +\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n 'Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass'\n };\n return {\n aliases: ['php3', 'php4', 'php5', 'php6', 'php7', 'php8'],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$', {contains: [PREPROCESSOR]}),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n {\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n }\n ]\n }\n ),\n hljs.COMMENT(\n '__halt_compiler.+?;',\n false,\n {\n endsWithParent: true,\n keywords: '__halt_compiler'\n }\n ),\n PREPROCESSOR,\n {\n className: 'keyword', begin: /\\$this\\b/\n },\n VARIABLE,\n {\n // swallow composed identifiers to avoid parsing them as keywords\n begin: /(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/\n },\n {\n className: 'function',\n relevance: 0,\n beginKeywords: 'fn function', end: /[;{]/, excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n {\n beginKeywords: 'use',\n },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n className: 'params',\n begin: '\\\\(', end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n VARIABLE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n }\n ]\n },\n {\n className: 'class',\n variants: [\n { beginKeywords: \"enum\", illegal: /[($\"]/ },\n { beginKeywords: \"class interface trait\", illegal: /[:($\"]/ }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n {beginKeywords: 'extends implements'},\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [hljs.UNDERSCORE_TITLE_MODE]\n },\n STRING,\n NUMBER\n ]\n };\n}\n\nmodule.exports = php;\n","/*\nLanguage: PHP Template\nRequires: xml.js, php.js\nAuthor: Josh Goebel <hello@joshgoebel.com>\nWebsite: https://www.php.net\nCategory: common\n*/\n\nfunction phpTemplate(hljs) {\n return {\n name: \"PHP template\",\n subLanguage: 'xml',\n contains: [\n {\n begin: /<\\?(php|=)?/,\n end: /\\?>/,\n subLanguage: 'php',\n contains: [\n // We don't want the php closing tag ?> to close the PHP block when\n // inside any of the following blocks:\n {\n begin: '/\\\\*',\n end: '\\\\*/',\n skip: true\n },\n {\n begin: 'b\"',\n end: '\"',\n skip: true\n },\n {\n begin: 'b\\'',\n end: '\\'',\n skip: true\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n className: null,\n contains: null,\n skip: true\n })\n ]\n }\n ]\n };\n}\n\nmodule.exports = phpTemplate;\n","/*\nLanguage: Plain text\nAuthor: Egor Rogov (e.rogov@postgrespro.ru)\nDescription: Plain text without any highlighting.\nCategory: common\n*/\n\nfunction plaintext(hljs) {\n return {\n name: 'Plain text',\n aliases: [\n 'text',\n 'txt'\n ],\n disableAutodetect: true\n };\n}\n\nmodule.exports = plaintext;\n","/*\nLanguage: Pony\nAuthor: Joe Eli McIlvain <joe.eli.mac@gmail.com>\nDescription: Pony is an open-source, object-oriented, actor-model,\n capabilities-secure, high performance programming language.\nWebsite: https://www.ponylang.io\n*/\n\nfunction pony(hljs) {\n const KEYWORDS = {\n keyword:\n 'actor addressof and as be break class compile_error compile_intrinsic ' +\n 'consume continue delegate digestof do else elseif embed end error ' +\n 'for fun if ifdef in interface is isnt lambda let match new not object ' +\n 'or primitive recover repeat return struct then trait try type until ' +\n 'use var where while with xor',\n meta:\n 'iso val tag trn box ref',\n literal:\n 'this false true'\n };\n\n const TRIPLE_QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 10\n };\n\n const QUOTE_STRING_MODE = {\n className: 'string',\n begin: '\"',\n end: '\"',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n\n const SINGLE_QUOTE_CHAR_MODE = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n relevance: 0\n };\n\n const TYPE_NAME = {\n className: 'type',\n begin: '\\\\b_?[A-Z][\\\\w]*',\n relevance: 0\n };\n\n const PRIMED_NAME = {\n begin: hljs.IDENT_RE + '\\'',\n relevance: 0\n };\n\n const NUMBER_MODE = {\n className: 'number',\n begin: '(-?)(\\\\b0[xX][a-fA-F0-9]+|\\\\b0[bB][01]+|(\\\\b\\\\d+(_\\\\d+)?(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)',\n relevance: 0\n };\n\n /**\n * The `FUNCTION` and `CLASS` modes were intentionally removed to simplify\n * highlighting and fix cases like\n * ```\n * interface Iterator[A: A]\n * fun has_next(): Bool\n * fun next(): A?\n * ```\n * where it is valid to have a function head without a body\n */\n\n return {\n name: 'Pony',\n keywords: KEYWORDS,\n contains: [\n TYPE_NAME,\n TRIPLE_QUOTE_STRING_MODE,\n QUOTE_STRING_MODE,\n SINGLE_QUOTE_CHAR_MODE,\n PRIMED_NAME,\n NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = pony;\n","/*\nLanguage: PowerShell\nDescription: PowerShell is a task-based command-line shell and scripting language built on .NET.\nAuthor: David Mohundro <david@mohundro.com>\nContributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>, Victor Zhou <OiCMudkips@users.noreply.github.com>, Nicolas Le Gall <contact@nlegall.fr>\nWebsite: https://docs.microsoft.com/en-us/powershell/\n*/\n\nfunction powershell(hljs) {\n const TYPES = [\n \"string\",\n \"char\",\n \"byte\",\n \"int\",\n \"long\",\n \"bool\",\n \"decimal\",\n \"single\",\n \"double\",\n \"DateTime\",\n \"xml\",\n \"array\",\n \"hashtable\",\n \"void\"\n ];\n\n // https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands\n const VALID_VERBS =\n 'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|' +\n 'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|' +\n 'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|' +\n 'Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|' +\n 'ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|' +\n 'Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|' +\n 'Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|' +\n 'Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|' +\n 'Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|' +\n 'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|' +\n 'Unprotect|Use|ForEach|Sort|Tee|Where';\n\n const COMPARISON_OPERATORS =\n '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|' +\n '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|' +\n '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|' +\n '-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|' +\n '-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|' +\n '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|' +\n '-split|-wildcard|-xor';\n\n const KEYWORDS = {\n $pattern: /-?[A-z\\.\\-]+\\b/,\n keyword:\n 'if else foreach return do while until elseif begin for trap data dynamicparam ' +\n 'end break throw param continue finally in switch exit filter try process catch ' +\n 'hidden static parameter',\n // \"echo\" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts\n built_in:\n 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp ' +\n 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx ' +\n 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group ' +\n 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi ' +\n 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh ' +\n 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp ' +\n 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp ' +\n 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write'\n // TODO: 'validate[A-Z]+' can't work in keywords\n };\n\n const TITLE_NAME_RE = /\\w[\\w\\d]*((-)[\\w\\d]+)*/;\n\n const BACKTICK_ESCAPE = {\n begin: '`[\\\\s\\\\S]',\n relevance: 0\n };\n\n const VAR = {\n className: 'variable',\n variants: [\n {\n begin: /\\$\\B/\n },\n {\n className: 'keyword',\n begin: /\\$this/\n },\n {\n begin: /\\$[\\w\\d][\\w\\d_:]*/\n }\n ]\n };\n\n const LITERAL = {\n className: 'literal',\n begin: /\\$(null|true|false)\\b/\n };\n\n const QUOTE_STRING = {\n className: \"string\",\n variants: [\n {\n begin: /\"/,\n end: /\"/\n },\n {\n begin: /@\"/,\n end: /^\"@/\n }\n ],\n contains: [\n BACKTICK_ESCAPE,\n VAR,\n {\n className: 'variable',\n begin: /\\$[A-z]/,\n end: /[^A-z]/\n }\n ]\n };\n\n const APOS_STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /@'/,\n end: /^'@/\n }\n ]\n };\n\n const PS_HELPTAGS = {\n className: \"doctag\",\n variants: [\n /* no paramater help tags */\n {\n begin: /\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/\n },\n /* one parameter help tags */\n {\n begin: /\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/\n }\n ]\n };\n\n const PS_COMMENT = hljs.inherit(\n hljs.COMMENT(null, null),\n {\n variants: [\n /* single-line comment */\n {\n begin: /#/,\n end: /$/\n },\n /* multi-line comment */\n {\n begin: /<#/,\n end: /#>/\n }\n ],\n contains: [ PS_HELPTAGS ]\n }\n );\n\n const CMDLETS = {\n className: 'built_in',\n variants: [\n {\n begin: '('.concat(VALID_VERBS, ')+(-)[\\\\w\\\\d]+')\n }\n ]\n };\n\n const PS_CLASS = {\n className: 'class',\n beginKeywords: 'class enum',\n end: /\\s*[{]/,\n excludeEnd: true,\n relevance: 0,\n contains: [ hljs.TITLE_MODE ]\n };\n\n const PS_FUNCTION = {\n className: 'function',\n begin: /function\\s+/,\n end: /\\s*\\{|$/,\n excludeEnd: true,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n begin: \"function\",\n relevance: 0,\n className: \"keyword\"\n },\n {\n className: \"title\",\n begin: TITLE_NAME_RE,\n relevance: 0\n },\n {\n begin: /\\(/,\n end: /\\)/,\n className: \"params\",\n relevance: 0,\n contains: [ VAR ]\n }\n // CMDLETS\n ]\n };\n\n // Using statment, plus type, plus assembly name.\n const PS_USING = {\n begin: /using\\s/,\n end: /$/,\n returnBegin: true,\n contains: [\n QUOTE_STRING,\n APOS_STRING,\n {\n className: 'keyword',\n begin: /(using|assembly|command|module|namespace|type)/\n }\n ]\n };\n\n // Comperison operators & function named parameters.\n const PS_ARGUMENTS = {\n variants: [\n // PS literals are pretty verbose so it's a good idea to accent them a bit.\n {\n className: 'operator',\n begin: '('.concat(COMPARISON_OPERATORS, ')\\\\b')\n },\n {\n className: 'literal',\n begin: /(-)[\\w\\d]+/,\n relevance: 0\n }\n ]\n };\n\n const HASH_SIGNS = {\n className: 'selector-tag',\n begin: /@\\B/,\n relevance: 0\n };\n\n // It's a very general rule so I'll narrow it a bit with some strict boundaries\n // to avoid any possible false-positive collisions!\n const PS_METHODS = {\n className: 'function',\n begin: /\\[.*\\]\\s*[\\w]+[ ]??\\(/,\n end: /$/,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n begin: '('.concat(\n KEYWORDS.keyword.toString().replace(/\\s/g, '|'\n ), ')\\\\b'),\n endsParent: true,\n relevance: 0\n },\n hljs.inherit(hljs.TITLE_MODE, {\n endsParent: true\n })\n ]\n };\n\n const GENTLEMANS_SET = [\n // STATIC_MEMBER,\n PS_METHODS,\n PS_COMMENT,\n BACKTICK_ESCAPE,\n hljs.NUMBER_MODE,\n QUOTE_STRING,\n APOS_STRING,\n // PS_NEW_OBJECT_TYPE,\n CMDLETS,\n VAR,\n LITERAL,\n HASH_SIGNS\n ];\n\n const PS_TYPE = {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [].concat(\n 'self',\n GENTLEMANS_SET,\n {\n begin: \"(\" + TYPES.join(\"|\") + \")\",\n className: \"built_in\",\n relevance: 0\n },\n {\n className: 'type',\n begin: /[\\.\\w\\d]+/,\n relevance: 0\n }\n )\n };\n\n PS_METHODS.contains.unshift(PS_TYPE);\n\n return {\n name: 'PowerShell',\n aliases: [\n \"ps\",\n \"ps1\"\n ],\n case_insensitive: true,\n keywords: KEYWORDS,\n contains: GENTLEMANS_SET.concat(\n PS_CLASS,\n PS_FUNCTION,\n PS_USING,\n PS_ARGUMENTS,\n PS_TYPE\n )\n };\n}\n\nmodule.exports = powershell;\n","/*\nLanguage: Processing\nDescription: Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts.\nAuthor: Erik Paluka <erik.paluka@gmail.com>\nWebsite: https://processing.org\nCategory: graphics\n*/\n\nfunction processing(hljs) {\n return {\n name: 'Processing',\n keywords: {\n keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +\n 'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +\n 'Object StringDict StringList Table TableRow XML ' +\n // Java keywords\n 'false synchronized int abstract float private char boolean static null if const ' +\n 'for true while long throw strictfp finally protected import native final return void ' +\n 'enum else break transient new catch instanceof byte super volatile case assert short ' +\n 'package default double public try this switch continue throws protected public private',\n literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',\n title: 'setup draw',\n built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +\n 'keyCode pixels focused frameCount frameRate height width ' +\n 'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +\n 'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +\n 'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +\n 'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +\n 'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +\n 'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +\n 'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +\n 'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +\n 'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +\n 'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +\n 'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +\n 'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +\n 'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +\n 'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +\n 'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +\n 'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +\n 'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +\n 'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +\n 'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +\n 'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +\n 'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +\n 'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = processing;\n","/*\nLanguage: Python profiler\nDescription: Python profiler results\nAuthor: Brian Beck <exogen@gmail.com>\n*/\n\nfunction profile(hljs) {\n return {\n name: 'Python profiler',\n contains: [\n hljs.C_NUMBER_MODE,\n {\n begin: '[a-zA-Z_][\\\\da-zA-Z_]+\\\\.[\\\\da-zA-Z_]{1,3}',\n end: ':',\n excludeEnd: true\n },\n {\n begin: '(ncalls|tottime|cumtime)',\n end: '$',\n keywords: 'ncalls tottime|10 cumtime|10 filename',\n relevance: 10\n },\n {\n begin: 'function calls',\n end: '$',\n contains: [ hljs.C_NUMBER_MODE ],\n relevance: 10\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\\\(',\n end: '\\\\)$',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = profile;\n","/*\nLanguage: Prolog\nDescription: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.\nAuthor: Raivo Laanemets <raivo@infdot.com>\nWebsite: https://en.wikipedia.org/wiki/Prolog\n*/\n\nfunction prolog(hljs) {\n const ATOM = {\n\n begin: /[a-z][A-Za-z0-9_]*/,\n relevance: 0\n };\n\n const VAR = {\n\n className: 'symbol',\n variants: [\n {\n begin: /[A-Z][a-zA-Z0-9_]*/\n },\n {\n begin: /_[A-Za-z0-9_]*/\n }\n ],\n relevance: 0\n };\n\n const PARENTED = {\n\n begin: /\\(/,\n end: /\\)/,\n relevance: 0\n };\n\n const LIST = {\n\n begin: /\\[/,\n end: /\\]/\n };\n\n const LINE_COMMENT = {\n\n className: 'comment',\n begin: /%/,\n end: /$/,\n contains: [ hljs.PHRASAL_WORDS_MODE ]\n };\n\n const BACKTICK_STRING = {\n\n className: 'string',\n begin: /`/,\n end: /`/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n };\n\n const CHAR_CODE = {\n className: 'string', // 0'a etc.\n begin: /0'(\\\\'|.)/\n };\n\n const SPACE_CODE = {\n className: 'string',\n begin: /0'\\\\s/ // 0'\\s\n };\n\n const PRED_OP = { // relevance booster\n begin: /:-/\n };\n\n const inner = [\n\n ATOM,\n VAR,\n PARENTED,\n PRED_OP,\n LIST,\n LINE_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BACKTICK_STRING,\n CHAR_CODE,\n SPACE_CODE,\n hljs.C_NUMBER_MODE\n ];\n\n PARENTED.contains = inner;\n LIST.contains = inner;\n\n return {\n name: 'Prolog',\n contains: inner.concat([\n { // relevance booster\n begin: /\\.$/\n }\n ])\n };\n}\n\nmodule.exports = prolog;\n","/*\nLanguage: .properties\nContributors: Valentin Aitken <valentin@nalisbg.com>, Egor Rogov <e.rogov@postgrespro.ru>\nWebsite: https://en.wikipedia.org/wiki/.properties\nCategory: common, config\n*/\n\nfunction properties(hljs) {\n\n // whitespaces: space, tab, formfeed\n var WS0 = '[ \\\\t\\\\f]*';\n var WS1 = '[ \\\\t\\\\f]+';\n // delimiter\n var EQUAL_DELIM = WS0+'[:=]'+WS0;\n var WS_DELIM = WS1;\n var DELIM = '(' + EQUAL_DELIM + '|' + WS_DELIM + ')';\n var KEY_ALPHANUM = '([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n var KEY_OTHER = '([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+';\n\n var DELIM_AND_VALUE = {\n // skip DELIM\n end: DELIM,\n relevance: 0,\n starts: {\n // value: everything until end of line (again, taking into account backslashes)\n className: 'string',\n end: /$/,\n relevance: 0,\n contains: [\n { begin: '\\\\\\\\\\\\\\\\'},\n { begin: '\\\\\\\\\\\\n' }\n ]\n }\n };\n\n return {\n name: '.properties',\n case_insensitive: true,\n illegal: /\\S/,\n contains: [\n hljs.COMMENT('^\\\\s*[!#]', '$'),\n // key: everything until whitespace or = or : (taking into account backslashes)\n // case of a \"normal\" key\n {\n returnBegin: true,\n variants: [\n { begin: KEY_ALPHANUM + EQUAL_DELIM, relevance: 1 },\n { begin: KEY_ALPHANUM + WS_DELIM, relevance: 0 }\n ],\n contains: [\n {\n className: 'attr',\n begin: KEY_ALPHANUM,\n endsParent: true,\n relevance: 0\n }\n ],\n starts: DELIM_AND_VALUE\n },\n // case of key containing non-alphanumeric chars => relevance = 0\n {\n begin: KEY_OTHER + DELIM,\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'meta',\n begin: KEY_OTHER,\n endsParent: true,\n relevance: 0\n }\n ],\n starts: DELIM_AND_VALUE\n },\n // case of an empty key\n {\n className: 'attr',\n relevance: 0,\n begin: KEY_OTHER + WS0 + '$'\n }\n ]\n };\n}\n\nmodule.exports = properties;\n","/*\nLanguage: Protocol Buffers\nAuthor: Dan Tao <daniel.tao@gmail.com>\nDescription: Protocol buffer message definition format\nWebsite: https://developers.google.com/protocol-buffers/docs/proto3\nCategory: protocols\n*/\n\nfunction protobuf(hljs) {\n return {\n name: 'Protocol Buffers',\n keywords: {\n keyword: 'package import option optional required repeated group oneof',\n built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +\n 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',\n literal: 'true false'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'message enum service', end: /\\{/,\n illegal: /\\n/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title\n })\n ]\n },\n {\n className: 'function',\n beginKeywords: 'rpc',\n end: /[{;]/, excludeEnd: true,\n keywords: 'rpc returns'\n },\n { // match enum items (relevance)\n // BLAH = ...;\n begin: /^\\s*[A-Z_]+(?=\\s*=[^\\n]+;$)/\n }\n ]\n };\n}\n\nmodule.exports = protobuf;\n","/*\nLanguage: Puppet\nAuthor: Jose Molina Colmenero <gaudy41@gmail.com>\nWebsite: https://puppet.com/docs\nCategory: config\n*/\n\nfunction puppet(hljs) {\n const PUPPET_KEYWORDS = {\n keyword:\n /* language keywords */\n 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',\n literal:\n /* metaparameters */\n 'alias audit before loglevel noop require subscribe tag ' +\n /* normal attributes */\n 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +\n 'en_address ip_address realname command environment hour monute month monthday special target weekday ' +\n 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +\n 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +\n 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ' +\n 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +\n 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +\n 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +\n 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +\n 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +\n 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +\n 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +\n 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +\n 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +\n 'sslverify mounted',\n built_in:\n /* core facts */\n 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +\n 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ' +\n 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +\n 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +\n 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +\n 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease ' +\n 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion ' +\n 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced ' +\n 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime ' +\n 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'\n };\n\n const COMMENT = hljs.COMMENT('#', '$');\n\n const IDENT_RE = '([A-Za-z_]|::)(\\\\w|::)*';\n\n const TITLE = hljs.inherit(hljs.TITLE_MODE, {\n begin: IDENT_RE\n });\n\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + IDENT_RE\n };\n\n const STRING = {\n className: 'string',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VARIABLE\n ],\n variants: [\n {\n begin: /'/,\n end: /'/\n },\n {\n begin: /\"/,\n end: /\"/\n }\n ]\n };\n\n return {\n name: 'Puppet',\n aliases: [ 'pp' ],\n contains: [\n COMMENT,\n VARIABLE,\n STRING,\n {\n beginKeywords: 'class',\n end: '\\\\{|;',\n illegal: /=/,\n contains: [\n TITLE,\n COMMENT\n ]\n },\n {\n beginKeywords: 'define',\n end: /\\{/,\n contains: [\n {\n className: 'section',\n begin: hljs.IDENT_RE,\n endsParent: true\n }\n ]\n },\n {\n begin: hljs.IDENT_RE + '\\\\s+\\\\{',\n returnBegin: true,\n end: /\\S/,\n contains: [\n {\n className: 'keyword',\n begin: hljs.IDENT_RE\n },\n {\n begin: /\\{/,\n end: /\\}/,\n keywords: PUPPET_KEYWORDS,\n relevance: 0,\n contains: [\n STRING,\n COMMENT,\n {\n begin: '[a-zA-Z_]+\\\\s*=>',\n returnBegin: true,\n end: '=>',\n contains: [\n {\n className: 'attr',\n begin: hljs.IDENT_RE\n }\n ]\n },\n {\n className: 'number',\n begin: '(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',\n relevance: 0\n },\n VARIABLE\n ]\n }\n ],\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = puppet;\n","/*\nLanguage: PureBASIC\nAuthor: Tristano Ajmone <tajmone@gmail.com>\nDescription: Syntax highlighting for PureBASIC (v.5.00-5.60). No inline ASM highlighting. (v.1.2, May 2017)\nCredits: I've taken inspiration from the PureBasic language file for GeSHi, created by Gustavo Julio Fiorenza (GuShH).\nWebsite: https://www.purebasic.com\n*/\n\n// Base deafult colors in PB IDE: background: #FFFFDF; foreground: #000000;\n\nfunction purebasic(hljs) {\n const STRINGS = { // PB IDE color: #0080FF (Azure Radiance)\n className: 'string',\n begin: '(~)?\"',\n end: '\"',\n illegal: '\\\\n'\n };\n const CONSTANTS = { // PB IDE color: #924B72 (Cannon Pink)\n // \"#\" + a letter or underscore + letters, digits or underscores + (optional) \"$\"\n className: 'symbol',\n begin: '#[a-zA-Z_]\\\\w*\\\\$?'\n };\n\n return {\n name: 'PureBASIC',\n aliases: [\n 'pb',\n 'pbi'\n ],\n keywords: // PB IDE color: #006666 (Blue Stone) + Bold\n // Keywords from all version of PureBASIC 5.00 upward ...\n 'Align And Array As Break CallDebugger Case CompilerCase CompilerDefault ' +\n 'CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError ' +\n 'CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug ' +\n 'DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default ' +\n 'Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM ' +\n 'EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration ' +\n 'EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect ' +\n 'EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends ' +\n 'FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC ' +\n 'IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount ' +\n 'Map Module NewList NewMap Next Not Or Procedure ProcedureC ' +\n 'ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim ' +\n 'Read Repeat Restore Return Runtime Select Shared Static Step Structure ' +\n 'StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule ' +\n 'UseModule Wend While With XIncludeFile XOr',\n contains: [\n // COMMENTS | PB IDE color: #00AAAA (Persian Green)\n hljs.COMMENT(';', '$', {\n relevance: 0\n }),\n\n { // PROCEDURES DEFINITIONS\n className: 'function',\n begin: '\\\\b(Procedure|Declare)(C|CDLL|DLL)?\\\\b',\n end: '\\\\(',\n excludeEnd: true,\n returnBegin: true,\n contains: [\n { // PROCEDURE KEYWORDS | PB IDE color: #006666 (Blue Stone) + Bold\n className: 'keyword',\n begin: '(Procedure|Declare)(C|CDLL|DLL)?',\n excludeEnd: true\n },\n { // PROCEDURE RETURN TYPE SETTING | PB IDE color: #000000 (Black)\n className: 'type',\n begin: '\\\\.\\\\w*'\n // end: ' ',\n },\n hljs.UNDERSCORE_TITLE_MODE // PROCEDURE NAME | PB IDE color: #006666 (Blue Stone)\n ]\n },\n STRINGS,\n CONSTANTS\n ]\n };\n}\n\n/* ==============================================================================\n CHANGELOG\n ==============================================================================\n - v.1.2 (2017-05-12)\n -- BUG-FIX: Some keywords were accidentally joyned together. Now fixed.\n - v.1.1 (2017-04-30)\n -- Updated to PureBASIC 5.60.\n -- Keywords list now built by extracting them from the PureBASIC SDK's\n \"SyntaxHilighting.dll\" (from each PureBASIC version). Tokens from each\n version are added to the list, and renamed or removed tokens are kept\n for the sake of covering all versions of the language from PureBASIC\n v5.00 upward. (NOTE: currently, there are no renamed or deprecated\n tokens in the keywords list). For more info, see:\n -- http://www.purebasic.fr/english/viewtopic.php?&p=506269\n -- https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/guidelines\n - v.1.0 (April 2016)\n -- First release\n -- Keywords list taken and adapted from GuShH's (Gustavo Julio Fiorenza)\n PureBasic language file for GeSHi:\n -- https://github.com/easybook/geshi/blob/master/geshi/purebasic.php\n*/\n\nmodule.exports = purebasic;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'all',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fF][rR]|[rR][fF]|[fF])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?\\\\b`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: '\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\\\b'\n },\n {\n begin: '\\\\b0[bB](_?[01])+[lL]?\\\\b'\n },\n {\n begin: '\\\\b0[oO](_?[0-7])+[lL]?\\\\b'\n },\n {\n begin: '\\\\b0[xX](_?[0-9a-fA-F])+[lL]?\\\\b'\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ]\\\\b`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n keywords: KEYWORDS,\n illegal: /(<\\/|->|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n begin: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n variants: [\n {\n className: 'function',\n beginKeywords: 'def'\n },\n {\n className: 'class',\n beginKeywords: 'class'\n }\n ],\n end: /:/,\n illegal: /[${=;\\n,]/,\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n PARAMS,\n {\n begin: /->/,\n endsWithParent: true,\n keywords: KEYWORDS\n }\n ]\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nmodule.exports = python;\n","/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel <hello@joshgoebel.com>\nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: [ 'pycon' ],\n contains: [\n {\n className: 'meta',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [\n {\n begin: /^>>>(?=[ ]|$)/\n },\n {\n begin: /^\\.\\.\\.(?=[ ]|$)/\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = pythonRepl;\n","/*\nLanguage: Q\nDescription: Q is a vector-based functional paradigm programming language built into the kdb+ database.\n (K/Q/Kdb+ from Kx Systems)\nAuthor: Sergey Vidyuk <svidyuk@gmail.com>\nWebsite: https://kx.com/connect-with-us/developers/\n*/\n\nfunction q(hljs) {\n const KEYWORDS = {\n $pattern: /(`?)[A-Za-z0-9_]+\\b/,\n keyword:\n 'do while select delete by update from',\n literal:\n '0b 1b',\n built_in:\n 'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum',\n type:\n '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'\n };\n\n return {\n name: 'Q',\n aliases: [\n 'k',\n 'kdb'\n ],\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = q;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: QML\nRequires: javascript.js, xml.js\nAuthor: John Foster <jfoster@esri.com>\nDescription: Syntax highlighting for the Qt Quick QML scripting language, based mostly off\n the JavaScript parser.\nWebsite: https://doc.qt.io/qt-5/qmlapplications.html\nCategory: scripting\n*/\n\nfunction qml(hljs) {\n const KEYWORDS = {\n keyword:\n 'in of on if for while finally var new function do return void else break catch ' +\n 'instanceof with throw case default try this switch continue typeof delete ' +\n 'let yield const export super debugger as async await import',\n literal:\n 'true false null undefined NaN Infinity',\n built_in:\n 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +\n 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +\n 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +\n 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +\n 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +\n 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +\n 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +\n 'Behavior bool color coordinate date double enumeration font geocircle georectangle ' +\n 'geoshape int list matrix4x4 parent point quaternion real rect ' +\n 'size string url variant vector2d vector3d vector4d ' +\n 'Promise'\n };\n\n const QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\\\._]*';\n\n // Isolate property statements. Ends at a :, =, ;, ,, a comment or end of line.\n // Use property class.\n const PROPERTY = {\n className: 'keyword',\n begin: '\\\\bproperty\\\\b',\n starts: {\n className: 'string',\n end: '(:|=|;|,|//|/\\\\*|$)',\n returnEnd: true\n }\n };\n\n // Isolate signal statements. Ends at a ) a comment or end of line.\n // Use property class.\n const SIGNAL = {\n className: 'keyword',\n begin: '\\\\bsignal\\\\b',\n starts: {\n className: 'string',\n end: '(\\\\(|:|=|;|,|//|/\\\\*|$)',\n returnEnd: true\n }\n };\n\n // id: is special in QML. When we see id: we want to mark the id: as attribute and\n // emphasize the token following.\n const ID_ID = {\n className: 'attribute',\n begin: '\\\\bid\\\\s*:',\n starts: {\n className: 'string',\n end: QML_IDENT_RE,\n returnEnd: false\n }\n };\n\n // Find QML object attribute. An attribute is a QML identifier followed by :.\n // Unfortunately it's hard to know where it ends, as it may contain scalars,\n // objects, object definitions, or javascript. The true end is either when the parent\n // ends or the next attribute is detected.\n const QML_ATTRIBUTE = {\n begin: QML_IDENT_RE + '\\\\s*:',\n returnBegin: true,\n contains: [\n {\n className: 'attribute',\n begin: QML_IDENT_RE,\n end: '\\\\s*:',\n excludeEnd: true,\n relevance: 0\n }\n ],\n relevance: 0\n };\n\n // Find QML object. A QML object is a QML identifier followed by { and ends at the matching }.\n // All we really care about is finding IDENT followed by { and just mark up the IDENT and ignore the {.\n const QML_OBJECT = {\n begin: concat(QML_IDENT_RE, /\\s*\\{/),\n end: /\\{/,\n returnBegin: true,\n relevance: 0,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: QML_IDENT_RE\n })\n ]\n };\n\n return {\n name: 'QML',\n aliases: [ 'qt' ],\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n {\n className: 'meta',\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n { // template string\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}'\n }\n ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'number',\n variants: [\n {\n begin: '\\\\b(0[bB][01]+)'\n },\n {\n begin: '\\\\b(0[oO][0-7]+)'\n },\n {\n begin: hljs.C_NUMBER_RE\n }\n ],\n relevance: 0\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.REGEXP_MODE,\n { // E4X / JSX\n begin: /</,\n end: />\\s*[);\\]]/,\n relevance: 0,\n subLanguage: 'xml'\n }\n ],\n relevance: 0\n },\n SIGNAL,\n PROPERTY,\n {\n className: 'function',\n beginKeywords: 'function',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: /[A-Za-z$_][0-9A-Za-z$_]*/\n }),\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n }\n ],\n illegal: /\\[|%/\n },\n {\n // hack: prevents detection of keywords after dots\n begin: '\\\\.' + hljs.IDENT_RE,\n relevance: 0\n },\n ID_ID,\n QML_ATTRIBUTE,\n QML_OBJECT\n ],\n illegal: /#/\n };\n}\n\nmodule.exports = qml;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: R\nDescription: R is a free software environment for statistical computing and graphics.\nAuthor: Joe Cheng <joe@rstudio.org>\nContributors: Konrad Rudolph <konrad.rudolph@gmail.com>\nWebsite: https://www.r-project.org\nCategory: common,scientific\n*/\n\n/** @type LanguageFn */\nfunction r(hljs) {\n // Identifiers in R cannot start with `_`, but they can start with `.` if it\n // is not immediately followed by a digit.\n // R also supports quoted identifiers, which are near-arbitrary sequences\n // delimited by backticks (`…`), which may contain escape sequences. These are\n // handled in a separate mode. See `test/markup/r/names.txt` for examples.\n // FIXME: Support Unicode identifiers.\n const IDENT_RE = /(?:(?:[a-zA-Z]|\\.[._a-zA-Z])[._a-zA-Z0-9]*)|\\.(?!\\d)/;\n const SIMPLE_IDENT = /[a-zA-Z][a-zA-Z_0-9]*/;\n\n return {\n name: 'R',\n\n // only in Haskell, not R\n illegal: /->/,\n keywords: {\n $pattern: IDENT_RE,\n keyword:\n 'function if in break next repeat else for while',\n literal:\n 'NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 ' +\n 'NA_character_|10 NA_complex_|10',\n built_in:\n // Builtin constants\n 'LETTERS letters month.abb month.name pi T F ' +\n // Primitive functions\n // These are all the functions in `base` that are implemented as a\n // `.Primitive`, minus those functions that are also keywords.\n 'abs acos acosh all any anyNA Arg as.call as.character ' +\n 'as.complex as.double as.environment as.integer as.logical ' +\n 'as.null.default as.numeric as.raw asin asinh atan atanh attr ' +\n 'attributes baseenv browser c call ceiling class Conj cos cosh ' +\n 'cospi cummax cummin cumprod cumsum digamma dim dimnames ' +\n 'emptyenv exp expression floor forceAndCall gamma gc.time ' +\n 'globalenv Im interactive invisible is.array is.atomic is.call ' +\n 'is.character is.complex is.double is.environment is.expression ' +\n 'is.finite is.function is.infinite is.integer is.language ' +\n 'is.list is.logical is.matrix is.na is.name is.nan is.null ' +\n 'is.numeric is.object is.pairlist is.raw is.recursive is.single ' +\n 'is.symbol lazyLoadDBfetch length lgamma list log max min ' +\n 'missing Mod names nargs nzchar oldClass on.exit pos.to.env ' +\n 'proc.time prod quote range Re rep retracemem return round ' +\n 'seq_along seq_len seq.int sign signif sin sinh sinpi sqrt ' +\n 'standardGeneric substitute sum switch tan tanh tanpi tracemem ' +\n 'trigamma trunc unclass untracemem UseMethod xtfrm',\n },\n compilerExtensions: [\n // allow beforeMatch to act as a \"qualifier\" for the match\n // the full match begin must be [beforeMatch][begin]\n (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n }\n ],\n contains: [\n // Roxygen comments\n hljs.COMMENT(\n /#'/,\n /$/,\n {\n contains: [\n {\n // Handle `@examples` separately to cause all subsequent code\n // until the next `@`-tag on its own line to be kept as-is,\n // preventing highlighting. This code is example R code, so nested\n // doctags shouldn’t be treated as such. See\n // `test/markup/r/roxygen.txt` for an example.\n className: 'doctag',\n begin: '@examples',\n starts: {\n contains: [\n { begin: /\\n/ },\n {\n begin: /#'\\s*(?=@[a-zA-Z]+)/,\n endsParent: true,\n },\n {\n begin: /#'/,\n end: /$/,\n excludeBegin: true,\n }\n ]\n }\n },\n {\n // Handle `@param` to highlight the parameter name following\n // after.\n className: 'doctag',\n begin: '@param',\n end: /$/,\n contains: [\n {\n className: 'variable',\n variants: [\n { begin: IDENT_RE },\n { begin: /`(?:\\\\.|[^`\\\\])+`/ }\n ],\n endsParent: true\n }\n ]\n },\n {\n className: 'doctag',\n begin: /@[a-zA-Z]+/\n },\n {\n className: 'meta-keyword',\n begin: /\\\\[a-zA-Z]+/,\n }\n ]\n }\n ),\n\n hljs.HASH_COMMENT_MODE,\n\n {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\(/, end: /\\)(-*)\"/ }),\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\{/, end: /\\}(-*)\"/ }),\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]\"(-*)\\[/, end: /\\](-*)\"/ }),\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\(/, end: /\\)(-*)'/ }),\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\{/, end: /\\}(-*)'/ }),\n hljs.END_SAME_AS_BEGIN({ begin: /[rR]'(-*)\\[/, end: /\\](-*)'/ }),\n {begin: '\"', end: '\"', relevance: 0},\n {begin: \"'\", end: \"'\", relevance: 0}\n ],\n },\n {\n className: 'number',\n relevance: 0,\n beforeMatch: /([^a-zA-Z0-9._])/, // not part of an identifier\n variants: [\n // TODO: replace with negative look-behind when available\n // { begin: /(?<![a-zA-Z0-9._])0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/ },\n // { begin: /(?<![a-zA-Z0-9._])0[xX][0-9a-fA-F]+([pP][+-]?\\d+)?[Li]?/ },\n // { begin: /(?<![a-zA-Z0-9._])(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?[Li]?/ }\n {\n // Special case: only hexadecimal binary powers can contain fractions.\n match: /0[xX][0-9a-fA-F]+\\.[0-9a-fA-F]*[pP][+-]?\\d+i?/,\n },\n {\n match: /0[xX][0-9a-fA-F]+([pP][+-]?\\d+)?[Li]?/\n },\n {\n match: /(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?[Li]?/,\n }\n ],\n },\n {\n // infix operator\n begin: '%',\n end: '%'\n },\n // relevance boost for assignment\n {\n begin: concat(SIMPLE_IDENT, \"\\\\s+<-\\\\s+\")\n },\n {\n // escaped identifier\n begin: '`',\n end: '`',\n contains: [\n { begin: /\\\\./ }\n ]\n }\n ]\n };\n}\n\nmodule.exports = r;\n","/*\nLanguage: ReasonML\nDescription: Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.\nWebsite: https://reasonml.github.io\nAuthor: Gidi Meir Morris <oss@gidi.io>\nCategory: functional\n*/\nfunction reasonml(hljs) {\n function orReValues(ops) {\n return ops\n .map(function(op) {\n return op\n .split('')\n .map(function(char) {\n return '\\\\' + char;\n })\n .join('');\n })\n .join('|');\n }\n\n const RE_IDENT = '~?[a-z$_][0-9a-zA-Z$_]*';\n const RE_MODULE_IDENT = '`?[A-Z$_][0-9a-zA-Z$_]*';\n\n const RE_PARAM_TYPEPARAM = '\\'?[a-z$_][0-9a-z$_]*';\n const RE_PARAM_TYPE = '\\\\s*:\\\\s*[a-z$_][0-9a-z$_]*(\\\\(\\\\s*(' + RE_PARAM_TYPEPARAM + '\\\\s*(,' + RE_PARAM_TYPEPARAM + '\\\\s*)*)?\\\\))?';\n const RE_PARAM = RE_IDENT + '(' + RE_PARAM_TYPE + '){0,2}';\n const RE_OPERATOR = \"(\" + orReValues([\n '||',\n '++',\n '**',\n '+.',\n '*',\n '/',\n '*.',\n '/.',\n '...'\n ]) + \"|\\\\|>|&&|==|===)\";\n const RE_OPERATOR_SPACED = \"\\\\s+\" + RE_OPERATOR + \"\\\\s+\";\n\n const KEYWORDS = {\n keyword:\n 'and as asr assert begin class constraint do done downto else end exception external ' +\n 'for fun function functor if in include inherit initializer ' +\n 'land lazy let lor lsl lsr lxor match method mod module mutable new nonrec ' +\n 'object of open or private rec sig struct then to try type val virtual when while with',\n built_in:\n 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ',\n literal:\n 'true false'\n };\n\n const RE_NUMBER = '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n '0[oO][0-7_]+[Lln]?|' +\n '0[bB][01_]+[Lln]?|' +\n '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)';\n\n const NUMBER_MODE = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n begin: RE_NUMBER\n },\n {\n begin: '\\\\(-' + RE_NUMBER + '\\\\)'\n }\n ]\n };\n\n const OPERATOR_MODE = {\n className: 'operator',\n relevance: 0,\n begin: RE_OPERATOR\n };\n const LIST_CONTENTS_MODES = [\n {\n className: 'identifier',\n relevance: 0,\n begin: RE_IDENT\n },\n OPERATOR_MODE,\n NUMBER_MODE\n ];\n\n const MODULE_ACCESS_CONTENTS = [\n hljs.QUOTE_STRING_MODE,\n OPERATOR_MODE,\n {\n className: 'module',\n begin: \"\\\\b\" + RE_MODULE_IDENT,\n returnBegin: true,\n end: \"\\.\",\n contains: [\n {\n className: 'identifier',\n begin: RE_MODULE_IDENT,\n relevance: 0\n }\n ]\n }\n ];\n\n const PARAMS_CONTENTS = [\n {\n className: 'module',\n begin: \"\\\\b\" + RE_MODULE_IDENT,\n returnBegin: true,\n end: \"\\.\",\n relevance: 0,\n contains: [\n {\n className: 'identifier',\n begin: RE_MODULE_IDENT,\n relevance: 0\n }\n ]\n }\n ];\n\n const PARAMS_MODE = {\n begin: RE_IDENT,\n end: '(,|\\\\n|\\\\))',\n relevance: 0,\n contains: [\n OPERATOR_MODE,\n {\n className: 'typing',\n begin: ':',\n end: '(,|\\\\n)',\n returnBegin: true,\n relevance: 0,\n contains: PARAMS_CONTENTS\n }\n ]\n };\n\n const FUNCTION_BLOCK_MODE = {\n className: 'function',\n relevance: 0,\n keywords: KEYWORDS,\n variants: [\n {\n begin: '\\\\s(\\\\(\\\\.?.*?\\\\)|' + RE_IDENT + ')\\\\s*=>',\n end: '\\\\s*=>',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: RE_IDENT\n },\n {\n begin: RE_PARAM\n },\n {\n begin: /\\(\\s*\\)/\n }\n ]\n }\n ]\n },\n {\n begin: '\\\\s\\\\(\\\\.?[^;\\\\|]*\\\\)\\\\s*=>',\n end: '\\\\s=>',\n returnBegin: true,\n relevance: 0,\n contains: [\n {\n className: 'params',\n relevance: 0,\n variants: [ PARAMS_MODE ]\n }\n ]\n },\n {\n begin: '\\\\(\\\\.\\\\s' + RE_IDENT + '\\\\)\\\\s*=>'\n }\n ]\n };\n MODULE_ACCESS_CONTENTS.push(FUNCTION_BLOCK_MODE);\n\n const CONSTRUCTOR_MODE = {\n className: 'constructor',\n begin: RE_MODULE_IDENT + '\\\\(',\n end: '\\\\)',\n illegal: '\\\\n',\n keywords: KEYWORDS,\n contains: [\n hljs.QUOTE_STRING_MODE,\n OPERATOR_MODE,\n {\n className: 'params',\n begin: '\\\\b' + RE_IDENT\n }\n ]\n };\n\n const PATTERN_MATCH_BLOCK_MODE = {\n className: 'pattern-match',\n begin: '\\\\|',\n returnBegin: true,\n keywords: KEYWORDS,\n end: '=>',\n relevance: 0,\n contains: [\n CONSTRUCTOR_MODE,\n OPERATOR_MODE,\n {\n relevance: 0,\n className: 'constructor',\n begin: RE_MODULE_IDENT\n }\n ]\n };\n\n const MODULE_ACCESS_MODE = {\n className: 'module-access',\n keywords: KEYWORDS,\n returnBegin: true,\n variants: [\n {\n begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\" + RE_IDENT\n },\n {\n begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\\\\(\",\n end: \"\\\\)\",\n returnBegin: true,\n contains: [\n FUNCTION_BLOCK_MODE,\n {\n begin: '\\\\(',\n end: '\\\\)',\n skip: true\n }\n ].concat(MODULE_ACCESS_CONTENTS)\n },\n {\n begin: \"\\\\b(\" + RE_MODULE_IDENT + \"\\\\.)+\\\\{\",\n end: /\\}/\n }\n ],\n contains: MODULE_ACCESS_CONTENTS\n };\n\n PARAMS_CONTENTS.push(MODULE_ACCESS_MODE);\n\n return {\n name: 'ReasonML',\n aliases: [ 're' ],\n keywords: KEYWORDS,\n illegal: '(:-|:=|\\\\$\\\\{|\\\\+=)',\n contains: [\n hljs.COMMENT('/\\\\*', '\\\\*/', {\n illegal: '^(#,\\\\/\\\\/)'\n }),\n {\n className: 'character',\n begin: '\\'(\\\\\\\\[^\\']+|[^\\'])\\'',\n illegal: '\\\\n',\n relevance: 0\n },\n hljs.QUOTE_STRING_MODE,\n {\n className: 'literal',\n begin: '\\\\(\\\\)',\n relevance: 0\n },\n {\n className: 'literal',\n begin: '\\\\[\\\\|',\n end: '\\\\|\\\\]',\n relevance: 0,\n contains: LIST_CONTENTS_MODES\n },\n {\n className: 'literal',\n begin: '\\\\[',\n end: '\\\\]',\n relevance: 0,\n contains: LIST_CONTENTS_MODES\n },\n CONSTRUCTOR_MODE,\n {\n className: 'operator',\n begin: RE_OPERATOR_SPACED,\n illegal: '-->',\n relevance: 0\n },\n NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n PATTERN_MATCH_BLOCK_MODE,\n FUNCTION_BLOCK_MODE,\n {\n className: 'module-def',\n begin: \"\\\\bmodule\\\\s+\" + RE_IDENT + \"\\\\s+\" + RE_MODULE_IDENT + \"\\\\s+=\\\\s+\\\\{\",\n end: /\\}/,\n returnBegin: true,\n keywords: KEYWORDS,\n relevance: 0,\n contains: [\n {\n className: 'module',\n relevance: 0,\n begin: RE_MODULE_IDENT\n },\n {\n begin: /\\{/,\n end: /\\}/,\n skip: true\n }\n ].concat(MODULE_ACCESS_CONTENTS)\n },\n MODULE_ACCESS_MODE\n ]\n };\n}\n\nmodule.exports = reasonml;\n","/*\nLanguage: RenderMan RIB\nAuthor: Konstantin Evdokimenko <qewerty@gmail.com>\nContributors: Shuen-Huei Guan <drake.guan@gmail.com>\nWebsite: https://renderman.pixar.com/resources/RenderMan_20/ribBinding.html\nCategory: graphics\n*/\n\nfunction rib(hljs) {\n return {\n name: 'RenderMan RIB',\n keywords:\n 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +\n 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +\n 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +\n 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +\n 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +\n 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +\n 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +\n 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +\n 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +\n 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +\n 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +\n 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +\n 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +\n 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',\n illegal: '</',\n contains: [\n hljs.HASH_COMMENT_MODE,\n hljs.C_NUMBER_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n}\n\nmodule.exports = rib;\n","/*\nLanguage: Roboconf\nAuthor: Vincent Zurczak <vzurczak@linagora.com>\nDescription: Syntax highlighting for Roboconf's DSL\nWebsite: http://roboconf.net\nCategory: config\n*/\n\nfunction roboconf(hljs) {\n const IDENTIFIER = '[a-zA-Z-_][^\\\\n{]+\\\\{';\n\n const PROPERTY = {\n className: 'attribute',\n begin: /[a-zA-Z-_]+/,\n end: /\\s*:/,\n excludeEnd: true,\n starts: {\n end: ';',\n relevance: 0,\n contains: [\n {\n className: 'variable',\n begin: /\\.[a-zA-Z-_]+/\n },\n {\n className: 'keyword',\n begin: /\\(optional\\)/\n }\n ]\n }\n };\n\n return {\n name: 'Roboconf',\n aliases: [\n 'graph',\n 'instances'\n ],\n case_insensitive: true,\n keywords: 'import',\n contains: [\n // Facet sections\n {\n begin: '^facet ' + IDENTIFIER,\n end: /\\}/,\n keywords: 'facet',\n contains: [\n PROPERTY,\n hljs.HASH_COMMENT_MODE\n ]\n },\n\n // Instance sections\n {\n begin: '^\\\\s*instance of ' + IDENTIFIER,\n end: /\\}/,\n keywords: 'name count channels instance-data instance-state instance of',\n illegal: /\\S/,\n contains: [\n 'self',\n PROPERTY,\n hljs.HASH_COMMENT_MODE\n ]\n },\n\n // Component sections\n {\n begin: '^' + IDENTIFIER,\n end: /\\}/,\n contains: [\n PROPERTY,\n hljs.HASH_COMMENT_MODE\n ]\n },\n\n // Comments\n hljs.HASH_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = roboconf;\n","/*\nLanguage: Microtik RouterOS script\nAuthor: Ivan Dementev <ivan_div@mail.ru>\nDescription: Scripting host provides a way to automate some router maintenance tasks by means of executing user-defined scripts bounded to some event occurrence\nWebsite: https://wiki.mikrotik.com/wiki/Manual:Scripting\n*/\n\n// Colors from RouterOS terminal:\n// green - #0E9A00\n// teal - #0C9A9A\n// purple - #99069A\n// light-brown - #9A9900\n\nfunction routeros(hljs) {\n const STATEMENTS = 'foreach do while for if from to step else on-error and or not in';\n\n // Global commands: Every global command should start with \":\" token, otherwise it will be treated as variable.\n const GLOBAL_COMMANDS = 'global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime';\n\n // Common commands: Following commands available from most sub-menus:\n const COMMON_COMMANDS = 'add remove enable disable set get print export edit find run debug error info warning';\n\n const LITERALS = 'true false yes no nothing nil null';\n\n const OBJECTS = 'traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw';\n\n const VAR = {\n className: 'variable',\n variants: [\n {\n begin: /\\$[\\w\\d#@][\\w\\d_]*/\n },\n {\n begin: /\\$\\{(.*?)\\}/\n }\n ]\n };\n\n const QUOTE_STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n VAR,\n {\n className: 'variable',\n begin: /\\$\\(/,\n end: /\\)/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ]\n };\n\n const APOS_STRING = {\n className: 'string',\n begin: /'/,\n end: /'/\n };\n\n return {\n name: 'Microtik RouterOS script',\n aliases: [\n 'mikrotik'\n ],\n case_insensitive: true,\n keywords: {\n $pattern: /:?[\\w-]+/,\n literal: LITERALS,\n keyword: STATEMENTS + ' :' + STATEMENTS.split(' ').join(' :') + ' :' + GLOBAL_COMMANDS.split(' ').join(' :')\n },\n contains: [\n { // illegal syntax\n variants: [\n { // -- comment\n begin: /\\/\\*/,\n end: /\\*\\//\n },\n { // Stan comment\n begin: /\\/\\//,\n end: /$/\n },\n { // HTML tags\n begin: /<\\//,\n end: />/\n }\n ],\n illegal: /./\n },\n hljs.COMMENT('^#', '$'),\n QUOTE_STRING,\n APOS_STRING,\n VAR,\n // attribute=value\n {\n // > is to avoid matches with => in other grammars\n begin: /[\\w-]+=([^\\s{}[\\]()>]+)/,\n relevance: 0,\n returnBegin: true,\n contains: [\n {\n className: 'attribute',\n begin: /[^=]+/\n },\n {\n begin: /=/,\n endsWithParent: true,\n relevance: 0,\n contains: [\n QUOTE_STRING,\n APOS_STRING,\n VAR,\n {\n className: 'literal',\n begin: '\\\\b(' + LITERALS.split(' ').join('|') + ')\\\\b'\n },\n {\n // Do not format unclassified values. Needed to exclude highlighting of values as built_in.\n begin: /(\"[^\"]*\"|[^\\s{}[\\]]+)/\n }\n /*\n {\n // IPv4 addresses and subnets\n className: 'number',\n variants: [\n {begin: IPADDR_wBITMASK+'(,'+IPADDR_wBITMASK+')*'}, //192.168.0.0/24,1.2.3.0/24\n {begin: IPADDR+'-'+IPADDR}, // 192.168.0.1-192.168.0.3\n {begin: IPADDR+'(,'+IPADDR+')*'}, // 192.168.0.1,192.168.0.34,192.168.24.1,192.168.0.1\n ]\n },\n {\n // MAC addresses and DHCP Client IDs\n className: 'number',\n begin: /\\b(1:)?([0-9A-Fa-f]{1,2}[:-]){5}([0-9A-Fa-f]){1,2}\\b/,\n },\n */\n ]\n }\n ]\n },\n {\n // HEX values\n className: 'number',\n begin: /\\*[0-9a-fA-F]+/\n },\n {\n begin: '\\\\b(' + COMMON_COMMANDS.split(' ').join('|') + ')([\\\\s[(\\\\]|])',\n returnBegin: true,\n contains: [\n {\n className: 'builtin-name', // 'function',\n begin: /\\w+/\n }\n ]\n },\n {\n className: 'built_in',\n variants: [\n {\n begin: '(\\\\.\\\\./|/|\\\\s)((' + OBJECTS.split(' ').join('|') + ');?\\\\s)+'\n },\n {\n begin: /\\.\\./,\n relevance: 0\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = routeros;\n","/*\nLanguage: RenderMan RSL\nAuthor: Konstantin Evdokimenko <qewerty@gmail.com>\nContributors: Shuen-Huei Guan <drake.guan@gmail.com>\nWebsite: https://renderman.pixar.com/resources/RenderMan_20/shadingLanguage.html\nCategory: graphics\n*/\n\nfunction rsl(hljs) {\n return {\n name: 'RenderMan RSL',\n keywords: {\n keyword:\n 'float color point normal vector matrix while for if do return else break extern continue',\n built_in:\n 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +\n 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +\n 'faceforward filterstep floor format fresnel incident length lightsource log match ' +\n 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +\n 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +\n 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +\n 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'\n },\n illegal: '</',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '#',\n end: '$'\n },\n {\n className: 'class',\n beginKeywords: 'surface displacement light volume imager',\n end: '\\\\('\n },\n {\n beginKeywords: 'illuminate illuminance gather',\n end: '\\\\('\n }\n ]\n };\n}\n\nmodule.exports = rsl;\n","/*\nLanguage: Oracle Rules Language\nAuthor: Jason Jacobson <jason.a.jacobson@gmail.com>\nDescription: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation. The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.\nWebsite: https://docs.oracle.com/cd/E17904_01/dev.1111/e10227/rlref.htm\nCategory: enterprise\n*/\n\nfunction ruleslanguage(hljs) {\n return {\n name: 'Oracle Rules Language',\n keywords: {\n keyword:\n 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +\n 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +\n 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +\n 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +\n 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +\n 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +\n 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +\n 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +\n 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +\n 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +\n 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +\n 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +\n 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +\n 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +\n 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +\n 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +\n 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +\n 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +\n 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +\n 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +\n 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +\n 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +\n 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +\n 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +\n 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +\n 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +\n 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +\n 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +\n 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +\n 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +\n 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +\n 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +\n 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +\n 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +\n 'NUMDAYS READ_DATE STAGING',\n built_in:\n 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +\n 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +\n 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +\n 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +\n 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'literal',\n variants: [\n { // looks like #-comment\n begin: '#\\\\s+',\n relevance: 0\n },\n {\n begin: '#[a-zA-Z .]+'\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = ruleslanguage;\n","/*\nLanguage: Rust\nAuthor: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>\nContributors: Roman Shmatov <romanshmatov@gmail.com>, Kasper Andersen <kma_untrusted@protonmail.com>\nWebsite: https://www.rust-lang.org\nCategory: common, system\n*/\n\nfunction rust(hljs) {\n const NUM_SUFFIX = '([ui](8|16|32|64|128|size)|f(32|64))\\?';\n const KEYWORDS =\n 'abstract as async await become box break const continue crate do dyn ' +\n 'else enum extern false final fn for if impl in let loop macro match mod ' +\n 'move mut override priv pub ref return self Self static struct super ' +\n 'trait true try type typeof unsafe unsized use virtual where while yield';\n const BUILTINS =\n // functions\n 'drop ' +\n // types\n 'i8 i16 i32 i64 i128 isize ' +\n 'u8 u16 u32 u64 u128 usize ' +\n 'f32 f64 ' +\n 'str char bool ' +\n 'Box Option Result String Vec ' +\n // traits\n 'Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug ' +\n 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +\n 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator ' +\n 'SliceConcatExt ToString ' +\n // macros\n 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +\n 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +\n 'include_bin! include_str! line! local_data_key! module_path! ' +\n 'option_env! print! println! select! stringify! try! unimplemented! ' +\n 'unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!';\n return {\n name: 'Rust',\n aliases: [ 'rs' ],\n keywords: {\n $pattern: hljs.IDENT_RE + '!?',\n keyword:\n KEYWORDS,\n literal:\n 'true false Some None Ok Err',\n built_in:\n BUILTINS\n },\n illegal: '</',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT('/\\\\*', '\\\\*/', {\n contains: [ 'self' ]\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n begin: /b?\"/,\n illegal: null\n }),\n {\n className: 'string',\n variants: [\n {\n begin: /r(#*)\"(.|\\n)*?\"\\1(?!#)/\n },\n {\n begin: /b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/\n }\n ]\n },\n {\n className: 'symbol',\n begin: /'[a-zA-Z_][a-zA-Z0-9_]*/\n },\n {\n className: 'number',\n variants: [\n {\n begin: '\\\\b0b([01_]+)' + NUM_SUFFIX\n },\n {\n begin: '\\\\b0o([0-7_]+)' + NUM_SUFFIX\n },\n {\n begin: '\\\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX\n },\n {\n begin: '\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +\n NUM_SUFFIX\n }\n ],\n relevance: 0\n },\n {\n className: 'function',\n beginKeywords: 'fn',\n end: '(\\\\(|<)',\n excludeEnd: true,\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n {\n className: 'meta',\n begin: '#!?\\\\[',\n end: '\\\\]',\n contains: [\n {\n className: 'meta-string',\n begin: /\"/,\n end: /\"/\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'type',\n end: ';',\n contains: [\n hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {\n endsParent: true\n })\n ],\n illegal: '\\\\S'\n },\n {\n className: 'class',\n beginKeywords: 'trait enum struct union',\n end: /\\{/,\n contains: [\n hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {\n endsParent: true\n })\n ],\n illegal: '[\\\\w\\\\d]'\n },\n {\n begin: hljs.IDENT_RE + '::',\n keywords: {\n built_in: BUILTINS\n }\n },\n {\n begin: '->'\n }\n ]\n };\n}\n\nmodule.exports = rust;\n","/*\nLanguage: SAS\nAuthor: Mauricio Caceres <mauricio.caceres.bravo@gmail.com>\nDescription: Syntax Highlighting for SAS\n*/\n\nfunction sas(hljs) {\n // Data step and PROC SQL statements\n const SAS_KEYWORDS =\n 'do if then else end until while ' +\n '' +\n 'abort array attrib by call cards cards4 catname continue ' +\n 'datalines datalines4 delete delim delimiter display dm drop ' +\n 'endsas error file filename footnote format goto in infile ' +\n 'informat input keep label leave length libname link list ' +\n 'lostcard merge missing modify options output out page put ' +\n 'redirect remove rename replace retain return select set skip ' +\n 'startsas stop title update waitsas where window x systask ' +\n '' +\n 'add and alter as cascade check create delete describe ' +\n 'distinct drop foreign from group having index insert into in ' +\n 'key like message modify msgtype not null on or order primary ' +\n 'references reset restrict select set table unique update ' +\n 'validate view where';\n\n // Built-in SAS functions\n const SAS_FUN =\n 'abs|addr|airy|arcos|arsin|atan|attrc|attrn|band|' +\n 'betainv|blshift|bnot|bor|brshift|bxor|byte|cdf|ceil|' +\n 'cexist|cinv|close|cnonct|collate|compbl|compound|' +\n 'compress|cos|cosh|css|curobs|cv|daccdb|daccdbsl|' +\n 'daccsl|daccsyd|dacctab|dairy|date|datejul|datepart|' +\n 'datetime|day|dclose|depdb|depdbsl|depdbsl|depsl|' +\n 'depsl|depsyd|depsyd|deptab|deptab|dequote|dhms|dif|' +\n 'digamma|dim|dinfo|dnum|dopen|doptname|doptnum|dread|' +\n 'dropnote|dsname|erf|erfc|exist|exp|fappend|fclose|' +\n 'fcol|fdelete|fetch|fetchobs|fexist|fget|fileexist|' +\n 'filename|fileref|finfo|finv|fipname|fipnamel|' +\n 'fipstate|floor|fnonct|fnote|fopen|foptname|foptnum|' +\n 'fpoint|fpos|fput|fread|frewind|frlen|fsep|fuzz|' +\n 'fwrite|gaminv|gamma|getoption|getvarc|getvarn|hbound|' +\n 'hms|hosthelp|hour|ibessel|index|indexc|indexw|input|' +\n 'inputc|inputn|int|intck|intnx|intrr|irr|jbessel|' +\n 'juldate|kurtosis|lag|lbound|left|length|lgamma|' +\n 'libname|libref|log|log10|log2|logpdf|logpmf|logsdf|' +\n 'lowcase|max|mdy|mean|min|minute|mod|month|mopen|' +\n 'mort|n|netpv|nmiss|normal|note|npv|open|ordinal|' +\n 'pathname|pdf|peek|peekc|pmf|point|poisson|poke|' +\n 'probbeta|probbnml|probchi|probf|probgam|probhypr|' +\n 'probit|probnegb|probnorm|probt|put|putc|putn|qtr|' +\n 'quote|ranbin|rancau|ranexp|rangam|range|rank|rannor|' +\n 'ranpoi|rantbl|rantri|ranuni|repeat|resolve|reverse|' +\n 'rewind|right|round|saving|scan|sdf|second|sign|' +\n 'sin|sinh|skewness|soundex|spedis|sqrt|std|stderr|' +\n 'stfips|stname|stnamel|substr|sum|symget|sysget|' +\n 'sysmsg|sysprod|sysrc|system|tan|tanh|time|timepart|' +\n 'tinv|tnonct|today|translate|tranwrd|trigamma|' +\n 'trim|trimn|trunc|uniform|upcase|uss|var|varfmt|' +\n 'varinfmt|varlabel|varlen|varname|varnum|varray|' +\n 'varrayx|vartype|verify|vformat|vformatd|vformatdx|' +\n 'vformatn|vformatnx|vformatw|vformatwx|vformatx|' +\n 'vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|' +\n 'vinformatn|vinformatnx|vinformatw|vinformatwx|' +\n 'vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|' +\n 'vnamex|vtype|vtypex|weekday|year|yyq|zipfips|zipname|' +\n 'zipnamel|zipstate';\n\n // Built-in macro functions\n const SAS_MACRO_FUN =\n 'bquote|nrbquote|cmpres|qcmpres|compstor|' +\n 'datatyp|display|do|else|end|eval|global|goto|' +\n 'if|index|input|keydef|label|left|length|let|' +\n 'local|lowcase|macro|mend|nrbquote|nrquote|' +\n 'nrstr|put|qcmpres|qleft|qlowcase|qscan|' +\n 'qsubstr|qsysfunc|qtrim|quote|qupcase|scan|str|' +\n 'substr|superq|syscall|sysevalf|sysexec|sysfunc|' +\n 'sysget|syslput|sysprod|sysrc|sysrput|then|to|' +\n 'trim|unquote|until|upcase|verify|while|window';\n\n return {\n name: 'SAS',\n case_insensitive: true, // SAS is case-insensitive\n keywords: {\n literal:\n 'null missing _all_ _automatic_ _character_ _infile_ ' +\n '_n_ _name_ _null_ _numeric_ _user_ _webout_',\n meta:\n SAS_KEYWORDS\n },\n contains: [\n {\n // Distinct highlight for proc <proc>, data, run, quit\n className: 'keyword',\n begin: /^\\s*(proc [\\w\\d_]+|data|run|quit)[\\s;]/\n },\n {\n // Macro variables\n className: 'variable',\n begin: /&[a-zA-Z_&][a-zA-Z0-9_]*\\.?/\n },\n {\n // Special emphasis for datalines|cards\n className: 'emphasis',\n begin: /^\\s*datalines|cards.*;/,\n end: /^\\s*;\\s*$/\n },\n { // Built-in macro variables take precedence\n className: 'built_in',\n begin: '%(' + SAS_MACRO_FUN + ')'\n },\n {\n // User-defined macro functions highlighted after\n className: 'name',\n begin: /%[a-zA-Z_][a-zA-Z_0-9]*/\n },\n {\n className: 'meta',\n begin: '[^%](' + SAS_FUN + ')[\\(]'\n },\n {\n className: 'string',\n variants: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n hljs.COMMENT('\\\\*', ';'),\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = sas;\n","/*\nLanguage: Scala\nCategory: functional\nAuthor: Jan Berkel <jan.berkel@gmail.com>\nContributors: Erik Osheim <d_m@plastic-idolatry.com>\nWebsite: https://www.scala-lang.org\n*/\n\nfunction scala(hljs) {\n const ANNOTATION = {\n className: 'meta',\n begin: '@[A-Za-z]+'\n };\n\n // used in strings for escaping/interpolation/substitution\n const SUBST = {\n className: 'subst',\n variants: [\n {\n begin: '\\\\$[A-Za-z0-9_]+'\n },\n {\n begin: /\\$\\{/,\n end: /\\}/\n }\n ]\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: '\"\"\"',\n end: '\"\"\"'\n },\n {\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n begin: '[a-z]+\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n },\n {\n className: 'string',\n begin: '[a-z]+\"\"\"',\n end: '\"\"\"',\n contains: [ SUBST ],\n relevance: 10\n }\n ]\n\n };\n\n const SYMBOL = {\n className: 'symbol',\n begin: '\\'\\\\w[\\\\w\\\\d_]*(?!\\')'\n };\n\n const TYPE = {\n className: 'type',\n begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n relevance: 0\n };\n\n const NAME = {\n className: 'title',\n begin: /[^0-9\\n\\t \"'(),.`{}\\[\\]:;][^\\n\\t \"'(),.`{}\\[\\]:;]+|[^0-9\\n\\t \"'(),.`{}\\[\\]:;=]/,\n relevance: 0\n };\n\n const CLASS = {\n className: 'class',\n beginKeywords: 'class object trait type',\n end: /[:={\\[\\n;]/,\n excludeEnd: true,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n beginKeywords: 'extends with',\n relevance: 10\n },\n {\n begin: /\\[/,\n end: /\\]/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0,\n contains: [ TYPE ]\n },\n NAME\n ]\n };\n\n const METHOD = {\n className: 'function',\n beginKeywords: 'def',\n end: /[:={\\[(\\n;]/,\n excludeEnd: true,\n contains: [ NAME ]\n };\n\n return {\n name: 'Scala',\n keywords: {\n literal: 'true false null',\n keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n SYMBOL,\n TYPE,\n METHOD,\n CLASS,\n hljs.C_NUMBER_MODE,\n ANNOTATION\n ]\n };\n}\n\nmodule.exports = scala;\n","/*\nLanguage: Scheme\nDescription: Scheme is a programming language in the Lisp family.\n (keywords based on http://community.schemewiki.org/?scheme-keywords)\nAuthor: JP Verkamp <me@jverkamp.com>\nContributors: Ivan Sagalaev <maniac@softwaremaniacs.org>\nOrigin: clojure.js\nWebsite: http://community.schemewiki.org/?what-is-scheme\nCategory: lisp\n*/\n\nfunction scheme(hljs) {\n const SCHEME_IDENT_RE = '[^\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}\",\\'`;#|\\\\\\\\\\\\s]+';\n const SCHEME_SIMPLE_NUMBER_RE = '(-|\\\\+)?\\\\d+([./]\\\\d+)?';\n const SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';\n const KEYWORDS = {\n $pattern: SCHEME_IDENT_RE,\n 'builtin-name':\n 'case-lambda call/cc class define-class exit-handler field import ' +\n 'inherit init-field interface let*-values let-values let/ec mixin ' +\n 'opt-lambda override protect provide public rename require ' +\n 'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +\n 'when with-syntax and begin call-with-current-continuation ' +\n 'call-with-input-file call-with-output-file case cond define ' +\n 'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +\n 'let-syntax letrec letrec-syntax map or syntax-rules \\' * + , ,@ - ... / ' +\n '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +\n 'boolean? caar cadr call-with-input-file call-with-output-file ' +\n 'call-with-values car cdddar cddddr cdr ceiling char->integer ' +\n 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +\n 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +\n 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +\n 'char? close-input-port close-output-port complex? cons cos ' +\n 'current-input-port current-output-port denominator display eof-object? ' +\n 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +\n 'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +\n 'integer? interaction-environment lcm length list list->string ' +\n 'list->vector list-ref list-tail list? load log magnitude make-polar ' +\n 'make-rectangular make-string make-vector max member memq memv min ' +\n 'modulo negative? newline not null-environment null? number->string ' +\n 'number? numerator odd? open-input-file open-output-file output-port? ' +\n 'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +\n 'rational? rationalize read read-char real-part real? remainder reverse ' +\n 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +\n 'string->list string->number string->symbol string-append string-ci<=? ' +\n 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +\n 'string-fill! string-length string-ref string-set! string<=? string<? ' +\n 'string=? string>=? string>? string? substring symbol->string symbol? ' +\n 'tan transcript-off transcript-on truncate values vector ' +\n 'vector->list vector-fill! vector-length vector-ref vector-set! ' +\n 'with-input-from-file with-output-to-file write write-char zero?'\n };\n\n const LITERAL = {\n className: 'literal',\n begin: '(#t|#f|#\\\\\\\\' + SCHEME_IDENT_RE + '|#\\\\\\\\.)'\n };\n\n const NUMBER = {\n className: 'number',\n variants: [\n {\n begin: SCHEME_SIMPLE_NUMBER_RE,\n relevance: 0\n },\n {\n begin: SCHEME_COMPLEX_NUMBER_RE,\n relevance: 0\n },\n {\n begin: '#b[0-1]+(/[0-1]+)?'\n },\n {\n begin: '#o[0-7]+(/[0-7]+)?'\n },\n {\n begin: '#x[0-9a-f]+(/[0-9a-f]+)?'\n }\n ]\n };\n\n const STRING = hljs.QUOTE_STRING_MODE;\n\n const COMMENT_MODES = [\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n hljs.COMMENT('#\\\\|', '\\\\|#')\n ];\n\n const IDENT = {\n begin: SCHEME_IDENT_RE,\n relevance: 0\n };\n\n const QUOTED_IDENT = {\n className: 'symbol',\n begin: '\\'' + SCHEME_IDENT_RE\n };\n\n const BODY = {\n endsWithParent: true,\n relevance: 0\n };\n\n const QUOTED_LIST = {\n variants: [\n {\n begin: /'/\n },\n {\n begin: '`'\n }\n ],\n contains: [\n {\n begin: '\\\\(',\n end: '\\\\)',\n contains: [\n 'self',\n LITERAL,\n STRING,\n NUMBER,\n IDENT,\n QUOTED_IDENT\n ]\n }\n ]\n };\n\n const NAME = {\n className: 'name',\n relevance: 0,\n begin: SCHEME_IDENT_RE,\n keywords: KEYWORDS\n };\n\n const LAMBDA = {\n begin: /lambda/,\n endsWithParent: true,\n returnBegin: true,\n contains: [\n NAME,\n {\n endsParent: true,\n variants: [\n {\n begin: /\\(/,\n end: /\\)/\n },\n {\n begin: /\\[/,\n end: /\\]/\n }\n ],\n contains: [ IDENT ]\n }\n ]\n };\n\n const LIST = {\n variants: [\n {\n begin: '\\\\(',\n end: '\\\\)'\n },\n {\n begin: '\\\\[',\n end: '\\\\]'\n }\n ],\n contains: [\n LAMBDA,\n NAME,\n BODY\n ]\n };\n\n BODY.contains = [\n LITERAL,\n NUMBER,\n STRING,\n IDENT,\n QUOTED_IDENT,\n QUOTED_LIST,\n LIST\n ].concat(COMMENT_MODES);\n\n return {\n name: 'Scheme',\n illegal: /\\S/,\n contains: [\n hljs.SHEBANG(),\n NUMBER,\n STRING,\n QUOTED_IDENT,\n QUOTED_LIST,\n LIST\n ].concat(COMMENT_MODES)\n };\n}\n\nmodule.exports = scheme;\n","/*\nLanguage: Scilab\nAuthor: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>\nOrigin: matlab.js\nDescription: Scilab is a port from Matlab\nWebsite: https://www.scilab.org\nCategory: scientific\n*/\n\nfunction scilab(hljs) {\n const COMMON_CONTAINS = [\n hljs.C_NUMBER_MODE,\n {\n className: 'string',\n begin: '\\'|\\\"',\n end: '\\'|\\\"',\n contains: [ hljs.BACKSLASH_ESCAPE,\n {\n begin: '\\'\\''\n } ]\n }\n ];\n\n return {\n name: 'Scilab',\n aliases: [ 'sci' ],\n keywords: {\n $pattern: /%?\\w+/,\n keyword: 'abort break case clear catch continue do elseif else endfunction end for function ' +\n 'global if pause return resume select try then while',\n literal:\n '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',\n built_in: // Scilab has more than 2000 functions. Just list the most commons\n 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error ' +\n 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty ' +\n 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log ' +\n 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real ' +\n 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan ' +\n 'type typename warning zeros matrix'\n },\n illegal: '(\"|#|/\\\\*|\\\\s+/\\\\w+)',\n contains: [\n {\n className: 'function',\n beginKeywords: 'function',\n end: '$',\n contains: [\n hljs.UNDERSCORE_TITLE_MODE,\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)'\n }\n ]\n },\n // seems to be a guard against [ident]' or [ident].\n // perhaps to prevent attributes from flagging as keywords?\n {\n begin: '[a-zA-Z_][a-zA-Z_0-9]*[\\\\.\\']+',\n relevance: 0\n },\n {\n begin: '\\\\[',\n end: '\\\\][\\\\.\\']*',\n relevance: 0,\n contains: COMMON_CONTAINS\n },\n hljs.COMMENT('//', '$')\n ].concat(COMMON_CONTAINS)\n };\n}\n\nmodule.exports = scilab;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n className: 'meta',\n begin: '!important'\n },\n HEXCOLOR: {\n className: 'number',\n begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n },\n ATTRIBUTE_SELECTOR_MODE: {\n className: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'auto',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'border',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'clear',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'content',\n 'counter-increment',\n 'counter-reset',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-variant-ligatures',\n 'font-variation-settings',\n 'font-weight',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inherit',\n 'initial',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'max-height',\n 'max-width',\n 'min-height',\n 'min-width',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-last',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-indent',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'white-space',\n 'widows',\n 'width',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: SCSS\nDescription: Scss is an extension of the syntax of CSS.\nAuthor: Kurt Emch <kurt@kurtemch.com>\nWebsite: https://sass-lang.com\nCategory: common, css\n*/\n\n/** @type LanguageFn */\nfunction scss(hljs) {\n const modes = MODES(hljs);\n const PSEUDO_ELEMENTS$1 = PSEUDO_ELEMENTS;\n const PSEUDO_CLASSES$1 = PSEUDO_CLASSES;\n\n const AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n const AT_MODIFIERS = \"and or not only\";\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const VARIABLE = {\n className: 'variable',\n begin: '(\\\\$' + IDENT_RE + ')\\\\b'\n };\n\n return {\n name: 'SCSS',\n case_insensitive: true,\n illegal: '[=/|\\']',\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'selector-id',\n begin: '#[A-Za-z0-9_-]+',\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.[A-Za-z0-9_-]+',\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b',\n // was there, before, but why?\n relevance: 0\n },\n {\n className: 'selector-pseudo',\n begin: ':(' + PSEUDO_CLASSES$1.join('|') + ')'\n },\n {\n className: 'selector-pseudo',\n begin: '::(' + PSEUDO_ELEMENTS$1.join('|') + ')'\n },\n VARIABLE,\n { // pseudo-selector params\n begin: /\\(/,\n end: /\\)/,\n contains: [ hljs.CSS_NUMBER_MODE ]\n },\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n {\n begin: '\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b'\n },\n {\n begin: ':',\n end: ';',\n contains: [\n VARIABLE,\n modes.HEXCOLOR,\n hljs.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.IMPORTANT\n ]\n },\n // matching these here allows us to treat them more like regular CSS\n // rules so everything between the {} gets regular rule highlighting,\n // which is what we want for page and font-face\n {\n begin: '@(page|font-face)',\n lexemes: AT_IDENTIFIER,\n keywords: '@page @font-face'\n },\n {\n begin: '@',\n end: '[{;]',\n returnBegin: true,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: AT_IDENTIFIER,\n className: \"keyword\"\n },\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n VARIABLE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n modes.HEXCOLOR,\n hljs.CSS_NUMBER_MODE\n ]\n }\n ]\n };\n}\n\nmodule.exports = scss;\n","/*\nLanguage: Shell Session\nRequires: bash.js\nAuthor: TSUYUSATO Kitsune <make.just.on@gmail.com>\nCategory: common\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction shell(hljs) {\n return {\n name: 'Shell Session',\n aliases: [ 'console' ],\n contains: [\n {\n className: 'meta',\n // We cannot add \\s (spaces) in the regular expression otherwise it will be too broad and produce unexpected result.\n // For instance, in the following example, it would match \"echo /path/to/home >\" as a prompt:\n // echo /path/to/home > t.exe\n begin: /^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#]/,\n starts: {\n end: /[^\\\\](?=\\s*$)/,\n subLanguage: 'bash'\n }\n }\n ]\n };\n}\n\nmodule.exports = shell;\n","/*\nLanguage: Smali\nAuthor: Dennis Titze <dennis.titze@gmail.com>\nDescription: Basic Smali highlighting\nWebsite: https://github.com/JesusFreke/smali\n*/\n\nfunction smali(hljs) {\n const smali_instr_low_prio = [\n 'add',\n 'and',\n 'cmp',\n 'cmpg',\n 'cmpl',\n 'const',\n 'div',\n 'double',\n 'float',\n 'goto',\n 'if',\n 'int',\n 'long',\n 'move',\n 'mul',\n 'neg',\n 'new',\n 'nop',\n 'not',\n 'or',\n 'rem',\n 'return',\n 'shl',\n 'shr',\n 'sput',\n 'sub',\n 'throw',\n 'ushr',\n 'xor'\n ];\n const smali_instr_high_prio = [\n 'aget',\n 'aput',\n 'array',\n 'check',\n 'execute',\n 'fill',\n 'filled',\n 'goto/16',\n 'goto/32',\n 'iget',\n 'instance',\n 'invoke',\n 'iput',\n 'monitor',\n 'packed',\n 'sget',\n 'sparse'\n ];\n const smali_keywords = [\n 'transient',\n 'constructor',\n 'abstract',\n 'final',\n 'synthetic',\n 'public',\n 'private',\n 'protected',\n 'static',\n 'bridge',\n 'system'\n ];\n return {\n name: 'Smali',\n contains: [\n {\n className: 'string',\n begin: '\"',\n end: '\"',\n relevance: 0\n },\n hljs.COMMENT(\n '#',\n '$',\n {\n relevance: 0\n }\n ),\n {\n className: 'keyword',\n variants: [\n {\n begin: '\\\\s*\\\\.end\\\\s[a-zA-Z0-9]*'\n },\n {\n begin: '^[ ]*\\\\.[a-zA-Z]*',\n relevance: 0\n },\n {\n begin: '\\\\s:[a-zA-Z_0-9]*',\n relevance: 0\n },\n {\n begin: '\\\\s(' + smali_keywords.join('|') + ')'\n }\n ]\n },\n {\n className: 'built_in',\n variants: [\n {\n begin: '\\\\s(' + smali_instr_low_prio.join('|') + ')\\\\s'\n },\n {\n begin: '\\\\s(' + smali_instr_low_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)+\\\\s',\n relevance: 10\n },\n {\n begin: '\\\\s(' + smali_instr_high_prio.join('|') + ')((-|/)[a-zA-Z0-9]+)*\\\\s',\n relevance: 10\n }\n ]\n },\n {\n className: 'class',\n begin: 'L[^\\(;:\\n]*;',\n relevance: 0\n },\n {\n begin: '[vp][0-9]+'\n }\n ]\n };\n}\n\nmodule.exports = smali;\n","/*\nLanguage: Smalltalk\nDescription: Smalltalk is an object-oriented, dynamically typed reflective programming language.\nAuthor: Vladimir Gubarkov <xonixx@gmail.com>\nWebsite: https://en.wikipedia.org/wiki/Smalltalk\n*/\n\nfunction smalltalk(hljs) {\n const VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';\n const CHAR = {\n className: 'string',\n begin: '\\\\$.{1}'\n };\n const SYMBOL = {\n className: 'symbol',\n begin: '#' + hljs.UNDERSCORE_IDENT_RE\n };\n return {\n name: 'Smalltalk',\n aliases: [ 'st' ],\n keywords: 'self super nil true false thisContext', // only 6\n contains: [\n hljs.COMMENT('\"', '\"'),\n hljs.APOS_STRING_MODE,\n {\n className: 'type',\n begin: '\\\\b[A-Z][A-Za-z0-9_]*',\n relevance: 0\n },\n {\n begin: VAR_IDENT_RE + ':',\n relevance: 0\n },\n hljs.C_NUMBER_MODE,\n SYMBOL,\n CHAR,\n {\n // This looks more complicated than needed to avoid combinatorial\n // explosion under V8. It effectively means `| var1 var2 ... |` with\n // whitespace adjacent to `|` being optional.\n begin: '\\\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\\\|',\n returnBegin: true,\n end: /\\|/,\n illegal: /\\S/,\n contains: [ {\n begin: '(\\\\|[ ]*)?' + VAR_IDENT_RE\n } ]\n },\n {\n begin: '#\\\\(',\n end: '\\\\)',\n contains: [\n hljs.APOS_STRING_MODE,\n CHAR,\n hljs.C_NUMBER_MODE,\n SYMBOL\n ]\n }\n ]\n };\n}\n\nmodule.exports = smalltalk;\n","/*\nLanguage: SML (Standard ML)\nAuthor: Edwin Dalorzo <edwin@dalorzo.org>\nDescription: SML language definition.\nWebsite: https://www.smlnj.org\nOrigin: ocaml.js\nCategory: functional\n*/\nfunction sml(hljs) {\n return {\n name: 'SML (Standard ML)',\n aliases: [ 'ml' ],\n keywords: {\n $pattern: '[a-z_]\\\\w*!?',\n keyword:\n /* according to Definition of Standard ML 97 */\n 'abstype and andalso as case datatype do else end eqtype ' +\n 'exception fn fun functor handle if in include infix infixr ' +\n 'let local nonfix of op open orelse raise rec sharing sig ' +\n 'signature struct structure then type val with withtype where while',\n built_in:\n /* built-in types according to basis library */\n 'array bool char exn int list option order real ref string substring vector unit word',\n literal:\n 'true false NONE SOME LESS EQUAL GREATER nil'\n },\n illegal: /\\/\\/|>>/,\n contains: [\n {\n className: 'literal',\n begin: /\\[(\\|\\|)?\\]|\\(\\)/,\n relevance: 0\n },\n hljs.COMMENT(\n '\\\\(\\\\*',\n '\\\\*\\\\)',\n {\n contains: [ 'self' ]\n }\n ),\n { /* type variable */\n className: 'symbol',\n begin: '\\'[A-Za-z_](?!\\')[\\\\w\\']*'\n /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */\n },\n { /* polymorphic variant */\n className: 'type',\n begin: '`[A-Z][\\\\w\\']*'\n },\n { /* module or constructor */\n className: 'type',\n begin: '\\\\b[A-Z][\\\\w\\']*',\n relevance: 0\n },\n { /* don't color identifiers, but safely catch all identifiers with ' */\n begin: '[a-z_]\\\\w*\\'[\\\\w\\']*'\n },\n hljs.inherit(hljs.APOS_STRING_MODE, {\n className: 'string',\n relevance: 0\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n }),\n {\n className: 'number',\n begin:\n '\\\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +\n '0[oO][0-7_]+[Lln]?|' +\n '0[bB][01_]+[Lln]?|' +\n '[0-9][0-9_]*([Lln]|(\\\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',\n relevance: 0\n },\n {\n begin: /[-=]>/ // relevance booster\n }\n ]\n };\n}\n\nmodule.exports = sml;\n","/*\nLanguage: SQF\nAuthor: Søren Enevoldsen <senevoldsen90@gmail.com>\nContributors: Marvin Saignat <contact@zgmrvn.com>, Dedmen Miller <dedmen@dedmen.de>\nDescription: Scripting language for the Arma game series\nWebsite: https://community.bistudio.com/wiki/SQF_syntax\nCategory: scripting\n*/\n\nfunction sqf(hljs) {\n // In SQF, a variable start with _\n const VARIABLE = {\n className: 'variable',\n begin: /\\b_+[a-zA-Z]\\w*/\n };\n\n // In SQF, a function should fit myTag_fnc_myFunction pattern\n // https://community.bistudio.com/wiki/Functions_Library_(Arma_3)#Adding_a_Function\n const FUNCTION = {\n className: 'title',\n begin: /[a-zA-Z][a-zA-Z0-9]+_fnc_\\w*/\n };\n\n // In SQF strings, quotes matching the start are escaped by adding a consecutive.\n // Example of single escaped quotes: \" \"\" \" and ' '' '.\n const STRINGS = {\n className: 'string',\n variants: [\n {\n begin: '\"',\n end: '\"',\n contains: [ {\n begin: '\"\"',\n relevance: 0\n } ]\n },\n {\n begin: '\\'',\n end: '\\'',\n contains: [ {\n begin: '\\'\\'',\n relevance: 0\n } ]\n }\n ]\n };\n\n // list of keywords from:\n // https://community.bistudio.com/wiki/PreProcessor_Commands\n const PREPROCESSOR = {\n className: 'meta',\n begin: /#\\s*[a-z]+\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'define undef ifdef ifndef else endif include'\n },\n contains: [\n {\n begin: /\\\\\\n/,\n relevance: 0\n },\n hljs.inherit(STRINGS, {\n className: 'meta-string'\n }),\n {\n className: 'meta-string',\n begin: /<[^\\n>]*>/,\n end: /$/,\n illegal: '\\\\n'\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n\n return {\n name: 'SQF',\n case_insensitive: true,\n keywords: {\n keyword:\n 'case catch default do else exit exitWith for forEach from if ' +\n 'private switch then throw to try waitUntil while with',\n built_in:\n 'abs accTime acos action actionIDs actionKeys actionKeysImages actionKeysNames ' +\n 'actionKeysNamesArray actionName actionParams activateAddons activatedAddons activateKey ' +\n 'add3DENConnection add3DENEventHandler add3DENLayer addAction addBackpack addBackpackCargo ' +\n 'addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea ' +\n 'addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler ' +\n 'addForce addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo ' +\n 'addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats ' +\n 'addMagazine addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal ' +\n 'addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler ' +\n 'addMPEventHandler addMusicEventHandler addOwnedMine addPlayerScores addPrimaryWeaponItem ' +\n 'addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem ' +\n 'addSwitchableUnit addTeamMember addToRemainsCollector addTorque addUniform addVehicle addVest ' +\n 'addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponItem ' +\n 'addWeaponPool addWeaponTurret admin agent agents AGLToASL aimedAtTarget aimPos airDensityRTD ' +\n 'airplaneThrottle airportSide AISFinishHeal alive all3DENEntities allAirports allControls ' +\n 'allCurators allCutLayers allDead allDeadMen allDisplays allGroups allMapMarkers allMines ' +\n 'allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage ' +\n 'allowDammage allowFileOperations allowFleeing allowGetIn allowSprint allPlayers allSimpleObjects ' +\n 'allSites allTurrets allUnits allUnitsUAV allVariables ammo ammoOnPylon and animate animateBay ' +\n 'animateDoor animatePylon animateSource animationNames animationPhase animationSourcePhase ' +\n 'animationState append apply armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert ' +\n 'assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret ' +\n 'assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems ' +\n 'assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam ' +\n 'assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject ' +\n 'attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines ' +\n 'backpackSpaceFor behaviour benchmark binocular boundingBox boundingBoxReal boundingCenter ' +\n 'breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode ' +\n 'call callExtension camCommand camCommit camCommitPrepared camCommitted camConstuctionSetParams ' +\n 'camCreate camDestroy cameraEffect cameraEffectEnableHUD cameraInterest cameraOn cameraView ' +\n 'campaignConfigFile camPreload camPreloaded camPrepareBank camPrepareDir camPrepareDive ' +\n 'camPrepareFocus camPrepareFov camPrepareFovRange camPreparePos camPrepareRelPos camPrepareTarget ' +\n 'camSetBank camSetDir camSetDive camSetFocus camSetFov camSetFovRange camSetPos camSetRelPos ' +\n 'camSetTarget camTarget camUseNVG canAdd canAddItemToBackpack canAddItemToUniform canAddItemToVest ' +\n 'cancelSimpleTaskDestination canFire canMove canSlingLoad canStand canSuspend ' +\n 'canTriggerDynamicSimulation canUnloadInCombat canVehicleCargo captive captiveNum cbChecked ' +\n 'cbSetChecked ceil channelEnabled cheatsEnabled checkAIFeature checkVisibility className ' +\n 'clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons ' +\n 'clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal ' +\n 'clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool ' +\n 'clientOwner closeDialog closeDisplay closeOverlay collapseObjectTree collect3DENHistory ' +\n 'collectiveRTD combatMode commandArtilleryFire commandChat commander commandFire commandFollow ' +\n 'commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop ' +\n 'commandSuppressiveFire commandTarget commandWatch comment commitOverlay compile compileFinal ' +\n 'completedFSM composeText configClasses configFile configHierarchy configName configProperties ' +\n 'configSourceAddonList configSourceMod configSourceModList confirmSensorTarget ' +\n 'connectTerminalToUAV controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count ' +\n 'countEnemy countFriendly countSide countType countUnknown create3DENComposition create3DENEntity ' +\n 'createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject ' +\n 'createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker ' +\n 'createMarkerLocal createMenu createMine createMissionDisplay createMPCampaignDisplay ' +\n 'createSimpleObject createSimpleTask createSite createSoundSource createTask createTeam ' +\n 'createTrigger createUnit createVehicle createVehicleCrew createVehicleLocal crew ctAddHeader ' +\n 'ctAddRow ctClear ctCurSel ctData ctFindHeaderRows ctFindRowHeader ctHeaderControls ctHeaderCount ' +\n 'ctRemoveHeaders ctRemoveRows ctrlActivate ctrlAddEventHandler ctrlAngle ctrlAutoScrollDelay ' +\n 'ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ' +\n 'ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ' +\n 'ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ' +\n 'ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ' +\n 'ctrlParent ctrlParentControlsGroup ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ' +\n 'ctrlScale ctrlSetActiveColor ctrlSetAngle ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ' +\n 'ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ' +\n 'ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ' +\n 'ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ' +\n 'ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ' +\n 'ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontHeightSecondary ' +\n 'ctrlSetFontP ctrlSetFontPB ctrlSetFontSecondary ctrlSetForegroundColor ctrlSetModel ' +\n 'ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPixelPrecision ctrlSetPosition ctrlSetScale ' +\n 'ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ' +\n 'ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ' +\n 'ctrlTextWidth ctrlType ctrlVisible ctRowControls ctRowCount ctSetCurSel ctSetData ' +\n 'ctSetHeaderTemplate ctSetRowTemplate ctSetValue ctValue curatorAddons curatorCamera ' +\n 'curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea ' +\n 'curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected ' +\n 'curatorWaypointCost current3DENOperation currentChannel currentCommand currentMagazine ' +\n 'currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle ' +\n 'currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint ' +\n 'currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorObject cursorTarget ' +\n 'customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime ' +\n 'deActivateKey debriefingText debugFSM debugLog deg delete3DENEntities deleteAt deleteCenter ' +\n 'deleteCollection deleteEditorObject deleteGroup deleteGroupWhenEmpty deleteIdentity ' +\n 'deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus ' +\n 'deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines ' +\n 'diag_activeMissionFSMs diag_activeScripts diag_activeSQFScripts diag_activeSQSScripts ' +\n 'diag_captureFrame diag_captureFrameToFile diag_captureSlowFrame diag_codePerformance ' +\n 'diag_drawMode diag_enable diag_enabled diag_fps diag_fpsMin diag_frameNo diag_lightNewLoad ' +\n 'diag_list diag_log diag_logSlowFrame diag_mergeConfigFile diag_recordTurretLimits ' +\n 'diag_setLightNew diag_tickTime diag_toggle dialog diarySubjectExists didJIP didJIPOwner ' +\n 'difficulty difficultyEnabled difficultyEnabledRTD difficultyOption direction directSay disableAI ' +\n 'disableCollisionWith disableConversation disableDebriefingStats disableMapIndicators ' +\n 'disableNVGEquipment disableRemoteSensors disableSerialization disableTIEquipment ' +\n 'disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayParent ' +\n 'displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam ' +\n 'distance distance2D distanceSqr distributionRegion do3DENAction doArtilleryFire doFire doFollow ' +\n 'doFSM doGetOut doMove doorPhase doStop doSuppressiveFire doTarget doWatch drawArrow drawEllipse ' +\n 'drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawPolygon drawRectangle ' +\n 'drawTriangle driver drop dynamicSimulationDistance dynamicSimulationDistanceCoef ' +\n 'dynamicSimulationEnabled dynamicSimulationSystemEnabled echo edit3DENMissionAttributes editObject ' +\n 'editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature ' +\n 'enableAimPrecision enableAttack enableAudioFeature enableAutoStartUpRTD enableAutoTrimRTD ' +\n 'enableCamShake enableCaustics enableChannel enableCollisionWith enableCopilot ' +\n 'enableDebriefingStats enableDiagLegend enableDynamicSimulation enableDynamicSimulationSystem ' +\n 'enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights ' +\n 'enableInfoPanelComponent enableIRLasers enableMimics enablePersonTurret enableRadio enableReload ' +\n 'enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation ' +\n 'enableSimulationGlobal enableStamina enableTeamSwitch enableTraffic enableUAVConnectability ' +\n 'enableUAVWaypoints enableVehicleCargo enableVehicleSensor enableWeaponDisassembly ' +\n 'endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities ' +\n 'environmentEnabled estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack ' +\n 'everyContainer exec execEditorScript execFSM execVM exp expectedDestination exportJIPMessages ' +\n 'eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission ' +\n 'fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition ' +\n 'findEmptyPositionReady findIf findNearestEnemy finishMissionInit finite fire fireAtTarget ' +\n 'firstBackpack flag flagAnimationPhase flagOwner flagSide flagTexture fleeing floor flyInHeight ' +\n 'flyInHeightASL fog fogForecast fogParams forceAddUniform forcedMap forceEnd forceFlagTexture ' +\n 'forceFollowRoad forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange ' +\n 'forEachMember forEachMemberAgent forEachMemberTeam forgetTarget format formation ' +\n 'formationDirection formationLeader formationMembers formationPosition formationTask formatText ' +\n 'formLeader freeLook fromEditor fuel fullCrew gearIDCAmmoCount gearSlotAmmoCount gearSlotData ' +\n 'get3DENActionState get3DENAttribute get3DENCamera get3DENConnections get3DENEntity ' +\n 'get3DENEntityID get3DENGrid get3DENIconsVisible get3DENLayerEntities get3DENLinesVisible ' +\n 'get3DENMissionAttribute get3DENMouseOver get3DENSelected getAimingCoef getAllEnvSoundControllers ' +\n 'getAllHitPointsDamage getAllOwnedMines getAllSoundControllers getAmmoCargo getAnimAimPrecision ' +\n 'getAnimSpeedCoef getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA ' +\n 'getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining ' +\n 'getBurningValue getCameraViewDirection getCargoIndex getCenterOfMass getClientState ' +\n 'getClientStateNumber getCompatiblePylonMagazines getConnectedUAV getContainerMaxLoad ' +\n 'getCursorObjectParams getCustomAimCoef getDammage getDescription getDir getDirVisual ' +\n 'getDLCAssetsUsage getDLCAssetsUsageByName getDLCs getEditorCamera getEditorMode ' +\n 'getEditorObjectScope getElevationOffset getEnvSoundController getFatigue getForcedFlagTexture ' +\n 'getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom ' +\n 'getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos ' +\n 'getMarkerSize getMarkerType getMass getMissionConfig getMissionConfigValue getMissionDLCs ' +\n 'getMissionLayerEntities getModelInfo getMousePosition getMusicPlayedTime getNumber ' +\n 'getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy ' +\n 'getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs ' +\n 'getPilotCameraDirection getPilotCameraPosition getPilotCameraRotation getPilotCameraTarget ' +\n 'getPlateNumber getPlayerChannel getPlayerScores getPlayerUID getPos getPosASL getPosASLVisual ' +\n 'getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getPylonMagazines getRelDir ' +\n 'getRelPos getRemoteSensorsDisabled getRepairCargo getResolution getShadowDistance getShotParents ' +\n 'getSlingLoad getSoundController getSoundControllerResult getSpeed getStamina getStatValue ' +\n 'getSuppression getTerrainGrid getTerrainHeightASL getText getTotalDLCUsageTime getUnitLoadout ' +\n 'getUnitTrait getUserMFDText getUserMFDvalue getVariable getVehicleCargo getWeaponCargo ' +\n 'getWeaponSway getWingsOrientationRTD getWingsPositionRTD getWPPos glanceAt globalChat globalRadio ' +\n 'goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId ' +\n 'groupOwner groupRadio groupSelectedUnits groupSelectUnit gunner gusts halt handgunItems ' +\n 'handgunMagazine handgunWeapon handsHit hasInterface hasPilotCamera hasWeapon hcAllGroups ' +\n 'hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup ' +\n 'hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hideSelection hint hintC ' +\n 'hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups ' +\n 'importance in inArea inAreaArray incapacitatedState inflame inflamed infoPanel ' +\n 'infoPanelComponentEnabled infoPanelComponents infoPanels inGameUISetEventHandler inheritsFrom ' +\n 'initAmbientLife inPolygon inputAction inRangeOfArtillery insertEditorObject intersect is3DEN ' +\n 'is3DENMultiplayer isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest ' +\n 'isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDamageAllowed isDedicated ' +\n 'isDLCAvailable isEngineOn isEqualTo isEqualType isEqualTypeAll isEqualTypeAny isEqualTypeArray ' +\n 'isEqualTypeParams isFilePatchingEnabled isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader ' +\n 'isGroupDeletedWhenEmpty isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn ' +\n 'isKeyActive isKindOf isLaserOn isLightOn isLocalized isManualFire isMarkedForCollection ' +\n 'isMultiplayer isMultiplayerSolo isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad ' +\n 'isPipEnabled isPlayer isRealTime isRemoteExecuted isRemoteExecutedJIP isServer isShowing3DIcons ' +\n 'isSimpleObject isSprintAllowed isStaminaEnabled isSteamMission isStreamFriendlyUIEnabled isText ' +\n 'isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUIContext ' +\n 'isUniformAllowed isVehicleCargo isVehicleRadarOn isVehicleSensorEnabled isWalking ' +\n 'isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent ' +\n 'joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact ' +\n 'kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language ' +\n 'laserTarget lbAdd lbClear lbColor lbColorRight lbCurSel lbData lbDelete lbIsSelected lbPicture ' +\n 'lbPictureRight lbSelection lbSetColor lbSetColorRight lbSetCurSel lbSetData lbSetPicture ' +\n 'lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetPictureRight ' +\n 'lbSetPictureRightColor lbSetPictureRightColorDisabled lbSetPictureRightColorSelected ' +\n 'lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetText lbSetTextRight lbSetTooltip ' +\n 'lbSetValue lbSize lbSort lbSortByValue lbText lbTextRight lbValue leader leaderboardDeInit ' +\n 'leaderboardGetRows leaderboardInit leaderboardRequestRowsFriends leaderboardsRequestUploadScore ' +\n 'leaderboardsRequestUploadScoreKeepBest leaderboardState leaveVehicle libraryCredits ' +\n 'libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed ' +\n 'linearConversion lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith ' +\n 'linkItem list listObjects listRemoteTargets listVehicleSensors ln lnbAddArray lnbAddColumn ' +\n 'lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow ' +\n 'lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData ' +\n 'lnbSetPicture lnbSetText lnbSetValue lnbSize lnbSort lnbSortByValue lnbText lnbValue load loadAbs ' +\n 'loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform ' +\n 'loadVest local localize locationPosition lock lockCameraTo lockCargo lockDriver locked ' +\n 'lockedCargo lockedDriver lockedTurret lockIdentity lockTurret lockWP log logEntities logNetwork ' +\n 'logNetworkTerminate lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo ' +\n 'magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack ' +\n 'magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd ' +\n 'mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam ' +\n 'markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText ' +\n 'markerType max members menuAction menuAdd menuChecked menuClear menuCollapse menuData menuDelete ' +\n 'menuEnable menuEnabled menuExpand menuHover menuPicture menuSetAction menuSetCheck menuSetData ' +\n 'menuSetPicture menuSetValue menuShortcut menuShortcutText menuSize menuSort menuText menuURL ' +\n 'menuValue min mineActive mineDetectedBy missionConfigFile missionDifficulty missionName ' +\n 'missionNamespace missionStart missionVersion mod modelToWorld modelToWorldVisual ' +\n 'modelToWorldVisualWorld modelToWorldWorld modParams moonIntensity moonPhase morale move ' +\n 'move3DENCamera moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret ' +\n 'moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name nameSound ' +\n 'nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing ' +\n 'nearestObject nearestObjects nearestTerrainObjects nearObjects nearObjectsReady nearRoads ' +\n 'nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex ' +\n 'nextWeatherChange nMenuItems not numberOfEnginesRTD numberToDate objectCurators objectFromNetId ' +\n 'objectParent objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch ' +\n 'onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter ' +\n 'onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected ' +\n 'onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch ' +\n 'openCuratorInterface openDLCPage openMap openSteamApp openYoutubeVideo or orderGetIn overcast ' +\n 'overcastForecast owner param params parseNumber parseSimpleArray parseText parsingNamespace ' +\n 'particlesQuality pickWeaponPool pitch pixelGrid pixelGridBase pixelGridNoUIScale pixelH pixelW ' +\n 'playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide ' +\n 'playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission ' +\n 'playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ' +\n 'ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ' +\n 'ppEffectEnabled ppEffectForceInNVG precision preloadCamera preloadObject preloadSound ' +\n 'preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon ' +\n 'primaryWeaponItems primaryWeaponMagazine priority processDiaryLink productVersion profileName ' +\n 'profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition ' +\n 'publicVariable publicVariableClient publicVariableServer pushBack pushBackUnique putWeaponPool ' +\n 'queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate ' +\n 'radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random ' +\n 'rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl ' +\n 'remoteExec remoteExecCall remoteExecutedOwner remove3DENConnection remove3DENEventHandler ' +\n 'remove3DENLayer removeAction removeAll3DENEventHandlers removeAllActions removeAllAssignedItems ' +\n 'removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas ' +\n 'removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems ' +\n 'removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers ' +\n 'removeAllMusicEventHandlers removeAllOwnedMines removeAllPrimaryWeaponItems removeAllWeapons ' +\n 'removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea ' +\n 'removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks ' +\n 'removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem ' +\n 'removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest ' +\n 'removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret ' +\n 'removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler ' +\n 'removeMusicEventHandler removeOwnedMine removePrimaryWeaponItem removeSecondaryWeaponItem ' +\n 'removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon ' +\n 'removeWeaponAttachmentCargo removeWeaponCargo removeWeaponGlobal removeWeaponTurret ' +\n 'reportRemoteTarget requiredVersion resetCamShake resetSubgroupDirection resize resources ' +\n 'respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadAt ' +\n 'roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ' +\n 'ropeAttachTo ropeCreate ropeCut ropeDestroy ropeDetach ropeEndPosition ropeLength ropes ' +\n 'ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW ' +\n 'safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY save3DENInventory saveGame saveIdentity ' +\n 'saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D ' +\n 'scopeName score scoreSide screenshot screenToWorld scriptDone scriptName scudState ' +\n 'secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces ' +\n 'selectDiarySubject selectedEditorObjects selectEditorObject selectionNames selectionPosition ' +\n 'selectLeader selectMax selectMin selectNoPlayer selectPlayer selectRandom selectRandomWeighted ' +\n 'selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult ' +\n 'sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime ' +\n 'set set3DENAttribute set3DENAttributes set3DENGrid set3DENIconsVisible set3DENLayer ' +\n 'set3DENLinesVisible set3DENLogicType set3DENMissionAttribute set3DENMissionAttributes ' +\n 'set3DENModelsVisible set3DENObjectType set3DENSelected setAccTime setActualCollectiveRTD ' +\n 'setAirplaneThrottle setAirportSide setAmmo setAmmoCargo setAmmoOnPylon setAnimSpeedCoef ' +\n 'setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour ' +\n 'setBleedingRemaining setBrakesRTD setCameraInterest setCamShakeDefParams setCamShakeParams ' +\n 'setCamUseTI setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation ' +\n 'setConvoySeparation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType ' +\n 'setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setCustomAimCoef ' +\n 'setCustomWeightRTD setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination ' +\n 'setDetailMapBlendPars setDir setDirection setDrawIcon setDriveOnPath setDropInterval ' +\n 'setDynamicSimulationDistance setDynamicSimulationDistanceCoef setEditorMode setEditorObjectScope ' +\n 'setEffectCondition setEngineRPMRTD setFace setFaceAnimation setFatigue setFeatureType ' +\n 'setFlagAnimationPhase setFlagOwner setFlagSide setFlagTexture setFog setFormation ' +\n 'setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo ' +\n 'setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId ' +\n 'setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage ' +\n 'setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setInfoPanel setLeader ' +\n 'setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight ' +\n 'setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare ' +\n 'setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush ' +\n 'setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal ' +\n 'setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize ' +\n 'setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass ' +\n 'setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound ' +\n 'setObjectArguments setObjectMaterial setObjectMaterialGlobal setObjectProxy setObjectTexture ' +\n 'setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining ' +\n 'setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom ' +\n 'setPilotCameraDirection setPilotCameraRotation setPilotCameraTarget setPilotLight setPiPEffect ' +\n 'setPitch setPlateNumber setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW ' +\n 'setPosATL setPosition setPosWorld setPylonLoadOut setPylonsPriority setRadioMsg setRain ' +\n 'setRainbow setRandomLip setRank setRectangular setRepairCargo setRotorBrakeRTD setShadowDistance ' +\n 'setShotParents setSide setSimpleTaskAlwaysVisible setSimpleTaskCustomData ' +\n 'setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimpleTaskType ' +\n 'setSimulWeatherLayers setSize setSkill setSlingLoad setSoundEffect setSpeaker setSpeech ' +\n 'setSpeedMode setStamina setStaminaScheme setStatValue setSuppression setSystemOfUnits ' +\n 'setTargetAge setTaskMarkerOffset setTaskResult setTaskState setTerrainGrid setText ' +\n 'setTimeMultiplier setTitleEffect setTrafficDensity setTrafficDistance setTrafficGap ' +\n 'setTrafficSpeed setTriggerActivation setTriggerArea setTriggerStatements setTriggerText ' +\n 'setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitLoadout setUnitPos ' +\n 'setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnitTrait setUnloadInCombat ' +\n 'setUserActionText setUserMFDText setUserMFDvalue setVariable setVectorDir setVectorDirAndUp ' +\n 'setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleCargo setVehicleId ' +\n 'setVehicleLock setVehiclePosition setVehicleRadar setVehicleReceiveRemoteTargets ' +\n 'setVehicleReportOwnPosition setVehicleReportRemoteTargets setVehicleTIPars setVehicleVarName ' +\n 'setVelocity setVelocityModelSpace setVelocityTransformation setViewDistance ' +\n 'setVisibleIfTreeCollapsed setWantedRPMRTD setWaves setWaypointBehaviour setWaypointCombatMode ' +\n 'setWaypointCompletionRadius setWaypointDescription setWaypointForceBehaviour setWaypointFormation ' +\n 'setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName ' +\n 'setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout ' +\n 'setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce ' +\n 'setWindStr setWingForceScaleRTD setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu ' +\n 'showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer ' +\n 'shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap ' +\n 'shownPad shownRadio shownScoretable shownUAVFeed shownWarrant shownWatch showPad showRadio ' +\n 'showScoretable showSubtitles showUAVFeed showWarrant showWatch showWaypoint showWaypoints side ' +\n 'sideChat sideEnemy sideFriendly sideRadio simpleTasks simulationEnabled simulCloudDensity ' +\n 'simulCloudOcclusion simulInClouds simulWeatherSync sin size sizeOf skill skillFinal skipTime ' +\n 'sleep sliderPosition sliderRange sliderSetPosition sliderSetRange sliderSetSpeed sliderSpeed ' +\n 'slingLoadAssistantShown soldierMagazines someAmmo sort soundVolume spawn speaker speed speedMode ' +\n 'splitString sqrt squadParams stance startLoadingScreen step stop stopEngineRTD stopped str ' +\n 'sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth ' +\n 'switchableUnits switchAction switchCamera switchGesture switchLight switchMove ' +\n 'synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd ' +\n 'synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint systemChat systemOfUnits tan ' +\n 'targetKnowledge targets targetsAggregate targetsQuery taskAlwaysVisible taskChildren ' +\n 'taskCompleted taskCustomData taskDescription taskDestination taskHint taskMarkerOffset taskParent ' +\n 'taskResult taskState taskType teamMember teamName teams teamSwitch teamSwitchEnabled teamType ' +\n 'terminate terrainIntersect terrainIntersectASL terrainIntersectAtASL text textLog textLogFormat ' +\n 'tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toFixed toLower ' +\n 'toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle ' +\n 'triggerAttachObject triggerAttachVehicle triggerDynamicSimulation triggerStatements triggerText ' +\n 'triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear ' +\n 'tvCollapse tvCollapseAll tvCount tvCurSel tvData tvDelete tvExpand tvExpandAll tvPicture ' +\n 'tvSetColor tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetPictureColorDisabled ' +\n 'tvSetPictureColorSelected tvSetPictureRight tvSetPictureRightColor tvSetPictureRightColorDisabled ' +\n 'tvSetPictureRightColorSelected tvSetText tvSetTooltip tvSetValue tvSort tvSortByValue tvText ' +\n 'tvTooltip tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator ' +\n 'unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems ' +\n 'uniformMagazines unitAddons unitAimPosition unitAimPositionVisual unitBackpack unitIsUAV unitPos ' +\n 'unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement ' +\n 'unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAISteeringComponent ' +\n 'useAudioTimeForMoves userInputDisabled vectorAdd vectorCos vectorCrossProduct vectorDiff ' +\n 'vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo ' +\n 'vectorMagnitude vectorMagnitudeSqr vectorModelToWorld vectorModelToWorldVisual vectorMultiply ' +\n 'vectorNormalized vectorUp vectorUpVisual vectorWorldToModel vectorWorldToModelVisual vehicle ' +\n 'vehicleCargoEnabled vehicleChat vehicleRadio vehicleReceiveRemoteTargets vehicleReportOwnPosition ' +\n 'vehicleReportRemoteTargets vehicles vehicleVarName velocity velocityModelSpace verifySignature ' +\n 'vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap ' +\n 'visiblePosition visiblePositionASL visibleScoretable visibleWatch waves waypointAttachedObject ' +\n 'waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour ' +\n 'waypointCombatMode waypointCompletionRadius waypointDescription waypointForceBehaviour ' +\n 'waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName ' +\n 'waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed ' +\n 'waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible ' +\n 'weaponAccessories weaponAccessoriesCargo weaponCargo weaponDirection weaponInertia weaponLowered ' +\n 'weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD WFSideText wind ',\n literal:\n 'blufor civilian configNull controlNull displayNull east endl false grpNull independent lineBreak ' +\n 'locationNull nil objNull opfor pi resistance scriptNull sideAmbientLife sideEmpty sideLogic ' +\n 'sideUnknown taskNull teamMemberNull true west'\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.NUMBER_MODE,\n VARIABLE,\n FUNCTION,\n STRINGS,\n PREPROCESSOR\n ],\n illegal: /#|^\\$ /\n };\n}\n\nmodule.exports = sqf;\n","/*\n Language: SQL More (mix of MySQL, Oracle, etc)\n Contributors: Nikolay Lisienko <info@neor.ru>, Heiko August <post@auge8472.de>, Travis Odom <travis.a.odom@gmail.com>, Vadimtro <vadimtro@yahoo.com>, Benjamin Auder <benjamin.auder@gmail.com>\n Website: https://en.wikipedia.org/wiki/SQL\n Category: database\n */\n\n/*\n\nThis is a preservation of the old bloated SQL grammar which includes pretty much\nthe kitchen sink because no one was keeping track of which keywords belong to\nwhich databases. This is likely to be removed in the future.\n\n- Oracle SQL should be factored into it's own 3rd party grammar.\n- MySQL should be factored out into it's own 3rd party grammar.\n\n*/\n\nfunction sql_more(hljs) {\n var COMMENT_MODE = hljs.COMMENT('--', '$');\n return {\n name: 'SQL (more)',\n aliases: [\"mysql\", \"oracle\"],\n disableAutodetect: true,\n case_insensitive: true,\n illegal: /[<>{}*]/,\n contains: [\n {\n beginKeywords:\n 'begin end start commit rollback savepoint lock alter create drop rename call ' +\n 'delete do handler insert load replace select truncate update set show pragma grant ' +\n 'merge describe use explain help declare prepare execute deallocate release ' +\n 'unlock purge reset change stop analyze cache flush optimize repair kill ' +\n 'install uninstall checksum restore check backup revoke comment values with',\n end: /;/, endsWithParent: true,\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword:\n 'as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +\n 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +\n 'all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply ' +\n 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +\n 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +\n 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +\n 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +\n 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +\n 'bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel ' +\n 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +\n 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +\n 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +\n 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +\n 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +\n 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +\n 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +\n 'consider consistent constant constraint constraints constructor container content contents context ' +\n 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +\n 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +\n 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +\n 'cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add ' +\n 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +\n 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +\n 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +\n 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +\n 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +\n 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +\n 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +\n 'do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable ' +\n 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +\n 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +\n 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +\n 'execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external ' +\n 'external_1 external_2 externally extract failed failed_login_attempts failover failure far fast ' +\n 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +\n 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign ' +\n 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +\n 'ftp full function general generated get get_format get_lock getdate getutcdate global global_name ' +\n 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +\n 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +\n 'hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified ' +\n 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +\n 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +\n 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +\n 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +\n 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +\n 'keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase ' +\n 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +\n 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +\n 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +\n 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime ' +\n 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +\n 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +\n 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +\n 'minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month ' +\n 'months mount move movement multiset mutex name name_const names nan national native natural nav nchar ' +\n 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +\n 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +\n 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +\n 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +\n 'noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +\n 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +\n 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +\n 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +\n 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +\n 'out outer outfile outline output over overflow overriding package pad parallel parallel_enable ' +\n 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +\n 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +\n 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +\n 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +\n 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +\n 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +\n 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +\n 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +\n 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +\n 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +\n 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +\n 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +\n 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +\n 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +\n 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +\n 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +\n 'sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select ' +\n 'self semi sequence sequential serializable server servererror session session_user sessions_per_user set ' +\n 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +\n 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +\n 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +\n 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +\n 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +\n 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +\n 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +\n 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +\n 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +\n 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +\n 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +\n 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo ' +\n 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +\n 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +\n 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +\n 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +\n 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +\n 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot ' +\n 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +\n 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +\n 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +\n 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +\n 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +\n 'wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped ' +\n 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +\n 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',\n literal:\n 'true false null unknown',\n built_in:\n 'array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number ' +\n 'numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void'\n },\n contains: [\n {\n className: 'string',\n begin: '\\'', end: '\\'',\n contains: [{begin: '\\'\\''}]\n },\n {\n className: 'string',\n begin: '\"', end: '\"',\n contains: [{begin: '\"\"'}]\n },\n {\n className: 'string',\n begin: '`', end: '`'\n },\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n hljs.HASH_COMMENT_MODE\n ]\n },\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n hljs.HASH_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = sql_more;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\n Language: SQL\n Website: https://en.wikipedia.org/wiki/SQL\n Category: common, database\n */\n\nfunction sql(hljs) {\n const COMMENT_MODE = hljs.COMMENT('--', '$');\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /'/,\n end: /'/,\n contains: [\n {begin: /''/ }\n ]\n }\n ]\n };\n const QUOTED_IDENTIFIER = {\n begin: /\"/,\n end: /\"/,\n contains: [ { begin: /\"\"/ } ]\n };\n\n const LITERALS = [\n \"true\",\n \"false\",\n // Not sure it's correct to call NULL literal, and clauses like IS [NOT] NULL look strange that way.\n // \"null\",\n \"unknown\"\n ];\n\n const MULTI_WORD_TYPES = [\n \"double precision\",\n \"large object\",\n \"with timezone\",\n \"without timezone\"\n ];\n\n const TYPES = [\n 'bigint',\n 'binary',\n 'blob',\n 'boolean',\n 'char',\n 'character',\n 'clob',\n 'date',\n 'dec',\n 'decfloat',\n 'decimal',\n 'float',\n 'int',\n 'integer',\n 'interval',\n 'nchar',\n 'nclob',\n 'national',\n 'numeric',\n 'real',\n 'row',\n 'smallint',\n 'time',\n 'timestamp',\n 'varchar',\n 'varying', // modifier (character varying)\n 'varbinary'\n ];\n\n const NON_RESERVED_WORDS = [\n \"add\",\n \"asc\",\n \"collation\",\n \"desc\",\n \"final\",\n \"first\",\n \"last\",\n \"view\"\n ];\n\n // https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#reserved-word\n const RESERVED_WORDS = [\n \"abs\",\n \"acos\",\n \"all\",\n \"allocate\",\n \"alter\",\n \"and\",\n \"any\",\n \"are\",\n \"array\",\n \"array_agg\",\n \"array_max_cardinality\",\n \"as\",\n \"asensitive\",\n \"asin\",\n \"asymmetric\",\n \"at\",\n \"atan\",\n \"atomic\",\n \"authorization\",\n \"avg\",\n \"begin\",\n \"begin_frame\",\n \"begin_partition\",\n \"between\",\n \"bigint\",\n \"binary\",\n \"blob\",\n \"boolean\",\n \"both\",\n \"by\",\n \"call\",\n \"called\",\n \"cardinality\",\n \"cascaded\",\n \"case\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"char\",\n \"char_length\",\n \"character\",\n \"character_length\",\n \"check\",\n \"classifier\",\n \"clob\",\n \"close\",\n \"coalesce\",\n \"collate\",\n \"collect\",\n \"column\",\n \"commit\",\n \"condition\",\n \"connect\",\n \"constraint\",\n \"contains\",\n \"convert\",\n \"copy\",\n \"corr\",\n \"corresponding\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"create\",\n \"cross\",\n \"cube\",\n \"cume_dist\",\n \"current\",\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_row\",\n \"current_schema\",\n \"current_time\",\n \"current_timestamp\",\n \"current_path\",\n \"current_role\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"cursor\",\n \"cycle\",\n \"date\",\n \"day\",\n \"deallocate\",\n \"dec\",\n \"decimal\",\n \"decfloat\",\n \"declare\",\n \"default\",\n \"define\",\n \"delete\",\n \"dense_rank\",\n \"deref\",\n \"describe\",\n \"deterministic\",\n \"disconnect\",\n \"distinct\",\n \"double\",\n \"drop\",\n \"dynamic\",\n \"each\",\n \"element\",\n \"else\",\n \"empty\",\n \"end\",\n \"end_frame\",\n \"end_partition\",\n \"end-exec\",\n \"equals\",\n \"escape\",\n \"every\",\n \"except\",\n \"exec\",\n \"execute\",\n \"exists\",\n \"exp\",\n \"external\",\n \"extract\",\n \"false\",\n \"fetch\",\n \"filter\",\n \"first_value\",\n \"float\",\n \"floor\",\n \"for\",\n \"foreign\",\n \"frame_row\",\n \"free\",\n \"from\",\n \"full\",\n \"function\",\n \"fusion\",\n \"get\",\n \"global\",\n \"grant\",\n \"group\",\n \"grouping\",\n \"groups\",\n \"having\",\n \"hold\",\n \"hour\",\n \"identity\",\n \"in\",\n \"indicator\",\n \"initial\",\n \"inner\",\n \"inout\",\n \"insensitive\",\n \"insert\",\n \"int\",\n \"integer\",\n \"intersect\",\n \"intersection\",\n \"interval\",\n \"into\",\n \"is\",\n \"join\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"language\",\n \"large\",\n \"last_value\",\n \"lateral\",\n \"lead\",\n \"leading\",\n \"left\",\n \"like\",\n \"like_regex\",\n \"listagg\",\n \"ln\",\n \"local\",\n \"localtime\",\n \"localtimestamp\",\n \"log\",\n \"log10\",\n \"lower\",\n \"match\",\n \"match_number\",\n \"match_recognize\",\n \"matches\",\n \"max\",\n \"member\",\n \"merge\",\n \"method\",\n \"min\",\n \"minute\",\n \"mod\",\n \"modifies\",\n \"module\",\n \"month\",\n \"multiset\",\n \"national\",\n \"natural\",\n \"nchar\",\n \"nclob\",\n \"new\",\n \"no\",\n \"none\",\n \"normalize\",\n \"not\",\n \"nth_value\",\n \"ntile\",\n \"null\",\n \"nullif\",\n \"numeric\",\n \"octet_length\",\n \"occurrences_regex\",\n \"of\",\n \"offset\",\n \"old\",\n \"omit\",\n \"on\",\n \"one\",\n \"only\",\n \"open\",\n \"or\",\n \"order\",\n \"out\",\n \"outer\",\n \"over\",\n \"overlaps\",\n \"overlay\",\n \"parameter\",\n \"partition\",\n \"pattern\",\n \"per\",\n \"percent\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"period\",\n \"portion\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"precedes\",\n \"precision\",\n \"prepare\",\n \"primary\",\n \"procedure\",\n \"ptf\",\n \"range\",\n \"rank\",\n \"reads\",\n \"real\",\n \"recursive\",\n \"ref\",\n \"references\",\n \"referencing\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"release\",\n \"result\",\n \"return\",\n \"returns\",\n \"revoke\",\n \"right\",\n \"rollback\",\n \"rollup\",\n \"row\",\n \"row_number\",\n \"rows\",\n \"running\",\n \"savepoint\",\n \"scope\",\n \"scroll\",\n \"search\",\n \"second\",\n \"seek\",\n \"select\",\n \"sensitive\",\n \"session_user\",\n \"set\",\n \"show\",\n \"similar\",\n \"sin\",\n \"sinh\",\n \"skip\",\n \"smallint\",\n \"some\",\n \"specific\",\n \"specifictype\",\n \"sql\",\n \"sqlexception\",\n \"sqlstate\",\n \"sqlwarning\",\n \"sqrt\",\n \"start\",\n \"static\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"submultiset\",\n \"subset\",\n \"substring\",\n \"substring_regex\",\n \"succeeds\",\n \"sum\",\n \"symmetric\",\n \"system\",\n \"system_time\",\n \"system_user\",\n \"table\",\n \"tablesample\",\n \"tan\",\n \"tanh\",\n \"then\",\n \"time\",\n \"timestamp\",\n \"timezone_hour\",\n \"timezone_minute\",\n \"to\",\n \"trailing\",\n \"translate\",\n \"translate_regex\",\n \"translation\",\n \"treat\",\n \"trigger\",\n \"trim\",\n \"trim_array\",\n \"true\",\n \"truncate\",\n \"uescape\",\n \"union\",\n \"unique\",\n \"unknown\",\n \"unnest\",\n \"update \",\n \"upper\",\n \"user\",\n \"using\",\n \"value\",\n \"values\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"varbinary\",\n \"varchar\",\n \"varying\",\n \"versioning\",\n \"when\",\n \"whenever\",\n \"where\",\n \"width_bucket\",\n \"window\",\n \"with\",\n \"within\",\n \"without\",\n \"year\",\n ];\n\n // these are reserved words we have identified to be functions\n // and should only be highlighted in a dispatch-like context\n // ie, array_agg(...), etc.\n const RESERVED_FUNCTIONS = [\n \"abs\",\n \"acos\",\n \"array_agg\",\n \"asin\",\n \"atan\",\n \"avg\",\n \"cast\",\n \"ceil\",\n \"ceiling\",\n \"coalesce\",\n \"corr\",\n \"cos\",\n \"cosh\",\n \"count\",\n \"covar_pop\",\n \"covar_samp\",\n \"cume_dist\",\n \"dense_rank\",\n \"deref\",\n \"element\",\n \"exp\",\n \"extract\",\n \"first_value\",\n \"floor\",\n \"json_array\",\n \"json_arrayagg\",\n \"json_exists\",\n \"json_object\",\n \"json_objectagg\",\n \"json_query\",\n \"json_table\",\n \"json_table_primitive\",\n \"json_value\",\n \"lag\",\n \"last_value\",\n \"lead\",\n \"listagg\",\n \"ln\",\n \"log\",\n \"log10\",\n \"lower\",\n \"max\",\n \"min\",\n \"mod\",\n \"nth_value\",\n \"ntile\",\n \"nullif\",\n \"percent_rank\",\n \"percentile_cont\",\n \"percentile_disc\",\n \"position\",\n \"position_regex\",\n \"power\",\n \"rank\",\n \"regr_avgx\",\n \"regr_avgy\",\n \"regr_count\",\n \"regr_intercept\",\n \"regr_r2\",\n \"regr_slope\",\n \"regr_sxx\",\n \"regr_sxy\",\n \"regr_syy\",\n \"row_number\",\n \"sin\",\n \"sinh\",\n \"sqrt\",\n \"stddev_pop\",\n \"stddev_samp\",\n \"substring\",\n \"substring_regex\",\n \"sum\",\n \"tan\",\n \"tanh\",\n \"translate\",\n \"translate_regex\",\n \"treat\",\n \"trim\",\n \"trim_array\",\n \"unnest\",\n \"upper\",\n \"value_of\",\n \"var_pop\",\n \"var_samp\",\n \"width_bucket\",\n ];\n\n // these functions can\n const POSSIBLE_WITHOUT_PARENS = [\n \"current_catalog\",\n \"current_date\",\n \"current_default_transform_group\",\n \"current_path\",\n \"current_role\",\n \"current_schema\",\n \"current_transform_group_for_type\",\n \"current_user\",\n \"session_user\",\n \"system_time\",\n \"system_user\",\n \"current_time\",\n \"localtime\",\n \"current_timestamp\",\n \"localtimestamp\"\n ];\n\n // those exist to boost relevance making these very\n // \"SQL like\" keyword combos worth +1 extra relevance\n const COMBOS = [\n \"create table\",\n \"insert into\",\n \"primary key\",\n \"foreign key\",\n \"not null\",\n \"alter table\",\n \"add constraint\",\n \"grouping sets\",\n \"on overflow\",\n \"character set\",\n \"respect nulls\",\n \"ignore nulls\",\n \"nulls first\",\n \"nulls last\",\n \"depth first\",\n \"breadth first\"\n ];\n\n const FUNCTIONS = RESERVED_FUNCTIONS;\n\n const KEYWORDS = [...RESERVED_WORDS, ...NON_RESERVED_WORDS].filter((keyword) => {\n return !RESERVED_FUNCTIONS.includes(keyword);\n });\n\n const VARIABLE = {\n className: \"variable\",\n begin: /@[a-z0-9]+/,\n };\n\n const OPERATOR = {\n className: \"operator\",\n begin: /[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\n relevance: 0,\n };\n\n const FUNCTION_CALL = {\n begin: concat(/\\b/, either(...FUNCTIONS), /\\s*\\(/),\n keywords: {\n built_in: FUNCTIONS\n }\n };\n\n // keywords with less than 3 letters are reduced in relevancy\n function reduceRelevancy(list, {exceptions, when} = {}) {\n const qualifyFn = when;\n exceptions = exceptions || [];\n return list.map((item) => {\n if (item.match(/\\|\\d+$/) || exceptions.includes(item)) {\n return item;\n } else if (qualifyFn(item)) {\n return `${item}|0`;\n } else {\n return item;\n }\n });\n }\n\n return {\n name: 'SQL',\n case_insensitive: true,\n // does not include {} or HTML tags `</`\n illegal: /[{}]|<\\//,\n keywords: {\n $pattern: /\\b[\\w\\.]+/,\n keyword:\n reduceRelevancy(KEYWORDS, { when: (x) => x.length < 3 }),\n literal: LITERALS,\n type: TYPES,\n built_in: POSSIBLE_WITHOUT_PARENS\n },\n contains: [\n {\n begin: either(...COMBOS),\n keywords: {\n $pattern: /[\\w\\.]+/,\n keyword: KEYWORDS.concat(COMBOS),\n literal: LITERALS,\n type: TYPES\n },\n },\n {\n className: \"type\",\n begin: either(...MULTI_WORD_TYPES)\n },\n FUNCTION_CALL,\n VARIABLE,\n STRING,\n QUOTED_IDENTIFIER,\n hljs.C_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n COMMENT_MODE,\n OPERATOR\n ]\n };\n}\n\nmodule.exports = sql;\n","/*\nLanguage: Stan\nDescription: The Stan probabilistic programming language\nAuthor: Jeffrey B. Arnold <jeffrey.arnold@gmail.com>\nWebsite: http://mc-stan.org/\nCategory: scientific\n*/\n\nfunction stan(hljs) {\n // variable names cannot conflict with block identifiers\n const BLOCKS = [\n 'functions',\n 'model',\n 'data',\n 'parameters',\n 'quantities',\n 'transformed',\n 'generated'\n ];\n const STATEMENTS = [\n 'for',\n 'in',\n 'if',\n 'else',\n 'while',\n 'break',\n 'continue',\n 'return'\n ];\n const SPECIAL_FUNCTIONS = [\n 'print',\n 'reject',\n 'increment_log_prob|10',\n 'integrate_ode|10',\n 'integrate_ode_rk45|10',\n 'integrate_ode_bdf|10',\n 'algebra_solver'\n ];\n const VAR_TYPES = [\n 'int',\n 'real',\n 'vector',\n 'ordered',\n 'positive_ordered',\n 'simplex',\n 'unit_vector',\n 'row_vector',\n 'matrix',\n 'cholesky_factor_corr|10',\n 'cholesky_factor_cov|10',\n 'corr_matrix|10',\n 'cov_matrix|10',\n 'void'\n ];\n const FUNCTIONS = [\n 'Phi',\n 'Phi_approx',\n 'abs',\n 'acos',\n 'acosh',\n 'algebra_solver',\n 'append_array',\n 'append_col',\n 'append_row',\n 'asin',\n 'asinh',\n 'atan',\n 'atan2',\n 'atanh',\n 'bernoulli_cdf',\n 'bernoulli_lccdf',\n 'bernoulli_lcdf',\n 'bernoulli_logit_lpmf',\n 'bernoulli_logit_rng',\n 'bernoulli_lpmf',\n 'bernoulli_rng',\n 'bessel_first_kind',\n 'bessel_second_kind',\n 'beta_binomial_cdf',\n 'beta_binomial_lccdf',\n 'beta_binomial_lcdf',\n 'beta_binomial_lpmf',\n 'beta_binomial_rng',\n 'beta_cdf',\n 'beta_lccdf',\n 'beta_lcdf',\n 'beta_lpdf',\n 'beta_rng',\n 'binary_log_loss',\n 'binomial_cdf',\n 'binomial_coefficient_log',\n 'binomial_lccdf',\n 'binomial_lcdf',\n 'binomial_logit_lpmf',\n 'binomial_lpmf',\n 'binomial_rng',\n 'block',\n 'categorical_logit_lpmf',\n 'categorical_logit_rng',\n 'categorical_lpmf',\n 'categorical_rng',\n 'cauchy_cdf',\n 'cauchy_lccdf',\n 'cauchy_lcdf',\n 'cauchy_lpdf',\n 'cauchy_rng',\n 'cbrt',\n 'ceil',\n 'chi_square_cdf',\n 'chi_square_lccdf',\n 'chi_square_lcdf',\n 'chi_square_lpdf',\n 'chi_square_rng',\n 'cholesky_decompose',\n 'choose',\n 'col',\n 'cols',\n 'columns_dot_product',\n 'columns_dot_self',\n 'cos',\n 'cosh',\n 'cov_exp_quad',\n 'crossprod',\n 'csr_extract_u',\n 'csr_extract_v',\n 'csr_extract_w',\n 'csr_matrix_times_vector',\n 'csr_to_dense_matrix',\n 'cumulative_sum',\n 'determinant',\n 'diag_matrix',\n 'diag_post_multiply',\n 'diag_pre_multiply',\n 'diagonal',\n 'digamma',\n 'dims',\n 'dirichlet_lpdf',\n 'dirichlet_rng',\n 'distance',\n 'dot_product',\n 'dot_self',\n 'double_exponential_cdf',\n 'double_exponential_lccdf',\n 'double_exponential_lcdf',\n 'double_exponential_lpdf',\n 'double_exponential_rng',\n 'e',\n 'eigenvalues_sym',\n 'eigenvectors_sym',\n 'erf',\n 'erfc',\n 'exp',\n 'exp2',\n 'exp_mod_normal_cdf',\n 'exp_mod_normal_lccdf',\n 'exp_mod_normal_lcdf',\n 'exp_mod_normal_lpdf',\n 'exp_mod_normal_rng',\n 'expm1',\n 'exponential_cdf',\n 'exponential_lccdf',\n 'exponential_lcdf',\n 'exponential_lpdf',\n 'exponential_rng',\n 'fabs',\n 'falling_factorial',\n 'fdim',\n 'floor',\n 'fma',\n 'fmax',\n 'fmin',\n 'fmod',\n 'frechet_cdf',\n 'frechet_lccdf',\n 'frechet_lcdf',\n 'frechet_lpdf',\n 'frechet_rng',\n 'gamma_cdf',\n 'gamma_lccdf',\n 'gamma_lcdf',\n 'gamma_lpdf',\n 'gamma_p',\n 'gamma_q',\n 'gamma_rng',\n 'gaussian_dlm_obs_lpdf',\n 'get_lp',\n 'gumbel_cdf',\n 'gumbel_lccdf',\n 'gumbel_lcdf',\n 'gumbel_lpdf',\n 'gumbel_rng',\n 'head',\n 'hypergeometric_lpmf',\n 'hypergeometric_rng',\n 'hypot',\n 'inc_beta',\n 'int_step',\n 'integrate_ode',\n 'integrate_ode_bdf',\n 'integrate_ode_rk45',\n 'inv',\n 'inv_Phi',\n 'inv_chi_square_cdf',\n 'inv_chi_square_lccdf',\n 'inv_chi_square_lcdf',\n 'inv_chi_square_lpdf',\n 'inv_chi_square_rng',\n 'inv_cloglog',\n 'inv_gamma_cdf',\n 'inv_gamma_lccdf',\n 'inv_gamma_lcdf',\n 'inv_gamma_lpdf',\n 'inv_gamma_rng',\n 'inv_logit',\n 'inv_sqrt',\n 'inv_square',\n 'inv_wishart_lpdf',\n 'inv_wishart_rng',\n 'inverse',\n 'inverse_spd',\n 'is_inf',\n 'is_nan',\n 'lbeta',\n 'lchoose',\n 'lgamma',\n 'lkj_corr_cholesky_lpdf',\n 'lkj_corr_cholesky_rng',\n 'lkj_corr_lpdf',\n 'lkj_corr_rng',\n 'lmgamma',\n 'lmultiply',\n 'log',\n 'log10',\n 'log1m',\n 'log1m_exp',\n 'log1m_inv_logit',\n 'log1p',\n 'log1p_exp',\n 'log2',\n 'log_determinant',\n 'log_diff_exp',\n 'log_falling_factorial',\n 'log_inv_logit',\n 'log_mix',\n 'log_rising_factorial',\n 'log_softmax',\n 'log_sum_exp',\n 'logistic_cdf',\n 'logistic_lccdf',\n 'logistic_lcdf',\n 'logistic_lpdf',\n 'logistic_rng',\n 'logit',\n 'lognormal_cdf',\n 'lognormal_lccdf',\n 'lognormal_lcdf',\n 'lognormal_lpdf',\n 'lognormal_rng',\n 'machine_precision',\n 'matrix_exp',\n 'max',\n 'mdivide_left_spd',\n 'mdivide_left_tri_low',\n 'mdivide_right_spd',\n 'mdivide_right_tri_low',\n 'mean',\n 'min',\n 'modified_bessel_first_kind',\n 'modified_bessel_second_kind',\n 'multi_gp_cholesky_lpdf',\n 'multi_gp_lpdf',\n 'multi_normal_cholesky_lpdf',\n 'multi_normal_cholesky_rng',\n 'multi_normal_lpdf',\n 'multi_normal_prec_lpdf',\n 'multi_normal_rng',\n 'multi_student_t_lpdf',\n 'multi_student_t_rng',\n 'multinomial_lpmf',\n 'multinomial_rng',\n 'multiply_log',\n 'multiply_lower_tri_self_transpose',\n 'neg_binomial_2_cdf',\n 'neg_binomial_2_lccdf',\n 'neg_binomial_2_lcdf',\n 'neg_binomial_2_log_lpmf',\n 'neg_binomial_2_log_rng',\n 'neg_binomial_2_lpmf',\n 'neg_binomial_2_rng',\n 'neg_binomial_cdf',\n 'neg_binomial_lccdf',\n 'neg_binomial_lcdf',\n 'neg_binomial_lpmf',\n 'neg_binomial_rng',\n 'negative_infinity',\n 'normal_cdf',\n 'normal_lccdf',\n 'normal_lcdf',\n 'normal_lpdf',\n 'normal_rng',\n 'not_a_number',\n 'num_elements',\n 'ordered_logistic_lpmf',\n 'ordered_logistic_rng',\n 'owens_t',\n 'pareto_cdf',\n 'pareto_lccdf',\n 'pareto_lcdf',\n 'pareto_lpdf',\n 'pareto_rng',\n 'pareto_type_2_cdf',\n 'pareto_type_2_lccdf',\n 'pareto_type_2_lcdf',\n 'pareto_type_2_lpdf',\n 'pareto_type_2_rng',\n 'pi',\n 'poisson_cdf',\n 'poisson_lccdf',\n 'poisson_lcdf',\n 'poisson_log_lpmf',\n 'poisson_log_rng',\n 'poisson_lpmf',\n 'poisson_rng',\n 'positive_infinity',\n 'pow',\n 'print',\n 'prod',\n 'qr_Q',\n 'qr_R',\n 'quad_form',\n 'quad_form_diag',\n 'quad_form_sym',\n 'rank',\n 'rayleigh_cdf',\n 'rayleigh_lccdf',\n 'rayleigh_lcdf',\n 'rayleigh_lpdf',\n 'rayleigh_rng',\n 'reject',\n 'rep_array',\n 'rep_matrix',\n 'rep_row_vector',\n 'rep_vector',\n 'rising_factorial',\n 'round',\n 'row',\n 'rows',\n 'rows_dot_product',\n 'rows_dot_self',\n 'scaled_inv_chi_square_cdf',\n 'scaled_inv_chi_square_lccdf',\n 'scaled_inv_chi_square_lcdf',\n 'scaled_inv_chi_square_lpdf',\n 'scaled_inv_chi_square_rng',\n 'sd',\n 'segment',\n 'sin',\n 'singular_values',\n 'sinh',\n 'size',\n 'skew_normal_cdf',\n 'skew_normal_lccdf',\n 'skew_normal_lcdf',\n 'skew_normal_lpdf',\n 'skew_normal_rng',\n 'softmax',\n 'sort_asc',\n 'sort_desc',\n 'sort_indices_asc',\n 'sort_indices_desc',\n 'sqrt',\n 'sqrt2',\n 'square',\n 'squared_distance',\n 'step',\n 'student_t_cdf',\n 'student_t_lccdf',\n 'student_t_lcdf',\n 'student_t_lpdf',\n 'student_t_rng',\n 'sub_col',\n 'sub_row',\n 'sum',\n 'tail',\n 'tan',\n 'tanh',\n 'target',\n 'tcrossprod',\n 'tgamma',\n 'to_array_1d',\n 'to_array_2d',\n 'to_matrix',\n 'to_row_vector',\n 'to_vector',\n 'trace',\n 'trace_gen_quad_form',\n 'trace_quad_form',\n 'trigamma',\n 'trunc',\n 'uniform_cdf',\n 'uniform_lccdf',\n 'uniform_lcdf',\n 'uniform_lpdf',\n 'uniform_rng',\n 'variance',\n 'von_mises_lpdf',\n 'von_mises_rng',\n 'weibull_cdf',\n 'weibull_lccdf',\n 'weibull_lcdf',\n 'weibull_lpdf',\n 'weibull_rng',\n 'wiener_lpdf',\n 'wishart_lpdf',\n 'wishart_rng'\n ];\n const DISTRIBUTIONS = [\n 'bernoulli',\n 'bernoulli_logit',\n 'beta',\n 'beta_binomial',\n 'binomial',\n 'binomial_logit',\n 'categorical',\n 'categorical_logit',\n 'cauchy',\n 'chi_square',\n 'dirichlet',\n 'double_exponential',\n 'exp_mod_normal',\n 'exponential',\n 'frechet',\n 'gamma',\n 'gaussian_dlm_obs',\n 'gumbel',\n 'hypergeometric',\n 'inv_chi_square',\n 'inv_gamma',\n 'inv_wishart',\n 'lkj_corr',\n 'lkj_corr_cholesky',\n 'logistic',\n 'lognormal',\n 'multi_gp',\n 'multi_gp_cholesky',\n 'multi_normal',\n 'multi_normal_cholesky',\n 'multi_normal_prec',\n 'multi_student_t',\n 'multinomial',\n 'neg_binomial',\n 'neg_binomial_2',\n 'neg_binomial_2_log',\n 'normal',\n 'ordered_logistic',\n 'pareto',\n 'pareto_type_2',\n 'poisson',\n 'poisson_log',\n 'rayleigh',\n 'scaled_inv_chi_square',\n 'skew_normal',\n 'student_t',\n 'uniform',\n 'von_mises',\n 'weibull',\n 'wiener',\n 'wishart'\n ];\n\n return {\n name: 'Stan',\n aliases: [ 'stanfuncs' ],\n keywords: {\n $pattern: hljs.IDENT_RE,\n title: BLOCKS,\n keyword: STATEMENTS.concat(VAR_TYPES).concat(SPECIAL_FUNCTIONS),\n built_in: FUNCTIONS\n },\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT(\n /#/,\n /$/,\n {\n relevance: 0,\n keywords: {\n 'meta-keyword': 'include'\n }\n }\n ),\n hljs.COMMENT(\n /\\/\\*/,\n /\\*\\//,\n {\n relevance: 0,\n // highlight doc strings mentioned in Stan reference\n contains: [\n {\n className: 'doctag',\n begin: /@(return|param)/\n }\n ]\n }\n ),\n {\n // hack: in range constraints, lower must follow \"<\"\n begin: /<\\s*lower\\s*=/,\n keywords: 'lower'\n },\n {\n // hack: in range constraints, upper must follow either , or <\n // <lower = ..., upper = ...> or <upper = ...>\n begin: /[<,]\\s*upper\\s*=/,\n keywords: 'upper'\n },\n {\n className: 'keyword',\n begin: /\\btarget\\s*\\+=/,\n relevance: 10\n },\n {\n begin: '~\\\\s*(' + hljs.IDENT_RE + ')\\\\s*\\\\(',\n keywords: DISTRIBUTIONS\n },\n {\n className: 'number',\n variants: [\n {\n begin: /\\b\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?/\n },\n {\n begin: /\\.\\d+(?:[eE][+-]?\\d+)?\\b/\n }\n ],\n relevance: 0\n },\n {\n className: 'string',\n begin: '\"',\n end: '\"',\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = stan;\n","/*\nLanguage: Stata\nAuthor: Brian Quistorff <bquistorff@gmail.com>\nContributors: Drew McDonald <drewmcdo@gmail.com>\nDescription: Stata is a general-purpose statistical software package created in 1985 by StataCorp.\nWebsite: https://en.wikipedia.org/wiki/Stata\nCategory: scientific\n*/\n\n/*\n This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.\n*/\n\nfunction stata(hljs) {\n return {\n name: 'Stata',\n aliases: [\n 'do',\n 'ado'\n ],\n case_insensitive: true,\n keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey bias binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 bubble bubbleplot ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error esize est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 forest forestplot form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate funnel funnelplot g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labbe labbeplot labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize menl meqparse mer merg merge meta mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trimfill trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5',\n contains: [\n {\n className: 'symbol',\n begin: /`[a-zA-Z0-9_]+'/\n },\n {\n className: 'variable',\n begin: /\\$\\{?[a-zA-Z0-9_]+\\}?/\n },\n {\n className: 'string',\n variants: [\n {\n begin: '`\"[^\\r\\n]*?\"\\''\n },\n {\n begin: '\"[^\\r\\n\"]*\"'\n }\n ]\n },\n\n {\n className: 'built_in',\n variants: [\n {\n begin: '\\\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\\\()'\n }\n ]\n },\n\n hljs.COMMENT('^[ \\t]*\\\\*.*$', false),\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE\n ]\n };\n}\n\nmodule.exports = stata;\n","/*\nLanguage: STEP Part 21\nContributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>\nDescription: Syntax highlighter for STEP Part 21 files (ISO 10303-21).\nWebsite: https://en.wikipedia.org/wiki/ISO_10303-21\n*/\n\nfunction step21(hljs) {\n const STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';\n const STEP21_KEYWORDS = {\n $pattern: STEP21_IDENT_RE,\n keyword: 'HEADER ENDSEC DATA'\n };\n const STEP21_START = {\n className: 'meta',\n begin: 'ISO-10303-21;',\n relevance: 10\n };\n const STEP21_CLOSE = {\n className: 'meta',\n begin: 'END-ISO-10303-21;',\n relevance: 10\n };\n\n return {\n name: 'STEP Part 21',\n aliases: [\n 'p21',\n 'step',\n 'stp'\n ],\n case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.\n keywords: STEP21_KEYWORDS,\n contains: [\n STEP21_START,\n STEP21_CLOSE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.COMMENT('/\\\\*\\\\*!', '\\\\*/'),\n hljs.C_NUMBER_MODE,\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n }),\n {\n className: 'string',\n begin: \"'\",\n end: \"'\"\n },\n {\n className: 'symbol',\n variants: [\n {\n begin: '#',\n end: '\\\\d+',\n illegal: '\\\\W'\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = step21;\n","const MODES = (hljs) => {\n return {\n IMPORTANT: {\n className: 'meta',\n begin: '!important'\n },\n HEXCOLOR: {\n className: 'number',\n begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'\n },\n ATTRIBUTE_SELECTOR_MODE: {\n className: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'auto',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'border',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'clear',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'content',\n 'counter-increment',\n 'counter-reset',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-variant-ligatures',\n 'font-variation-settings',\n 'font-weight',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'inherit',\n 'initial',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'max-height',\n 'max-width',\n 'min-height',\n 'min-width',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'right',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-last',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-indent',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'white-space',\n 'widows',\n 'width',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: Stylus\nAuthor: Bryant Williams <b.n.williams@gmail.com>\nDescription: Stylus is an expressive, robust, feature-rich CSS language built for nodejs.\nWebsite: https://github.com/stylus/stylus\nCategory: css\n*/\n\n/** @type LanguageFn */\nfunction stylus(hljs) {\n const modes = MODES(hljs);\n\n const AT_MODIFIERS = \"and or not only\";\n const VARIABLE = {\n className: 'variable',\n begin: '\\\\$' + hljs.IDENT_RE\n };\n\n const AT_KEYWORDS = [\n 'charset',\n 'css',\n 'debug',\n 'extend',\n 'font-face',\n 'for',\n 'import',\n 'include',\n 'keyframes',\n 'media',\n 'mixin',\n 'page',\n 'warn',\n 'while'\n ];\n\n const LOOKAHEAD_TAG_END = '(?=[.\\\\s\\\\n[:,(])';\n\n // illegals\n const ILLEGAL = [\n '\\\\?',\n '(\\\\bReturn\\\\b)', // monkey\n '(\\\\bEnd\\\\b)', // monkey\n '(\\\\bend\\\\b)', // vbscript\n '(\\\\bdef\\\\b)', // gradle\n ';', // a whole lot of languages\n '#\\\\s', // markdown\n '\\\\*\\\\s', // markdown\n '===\\\\s', // markdown\n '\\\\|',\n '%' // prolog\n ];\n\n return {\n name: 'Stylus',\n aliases: [ 'styl' ],\n case_insensitive: false,\n keywords: 'if else for in',\n illegal: '(' + ILLEGAL.join('|') + ')',\n contains: [\n\n // strings\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n\n // comments\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n\n // hex colors\n modes.HEXCOLOR,\n\n // class tag\n {\n begin: '\\\\.[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,\n className: 'selector-class'\n },\n\n // id tag\n {\n begin: '#[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,\n className: 'selector-id'\n },\n\n // tags\n {\n begin: '\\\\b(' + TAGS.join('|') + ')' + LOOKAHEAD_TAG_END,\n className: 'selector-tag'\n },\n\n // psuedo selectors\n {\n className: 'selector-pseudo',\n begin: '&?:(' + PSEUDO_CLASSES.join('|') + ')' + LOOKAHEAD_TAG_END\n },\n {\n className: 'selector-pseudo',\n begin: '&?::(' + PSEUDO_ELEMENTS.join('|') + ')' + LOOKAHEAD_TAG_END\n },\n\n modes.ATTRIBUTE_SELECTOR_MODE,\n\n {\n className: \"keyword\",\n begin: /@media/,\n starts: {\n end: /[{;}]/,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [ hljs.CSS_NUMBER_MODE ]\n }\n },\n\n // @ keywords\n {\n className: 'keyword',\n begin: '\\@((-(o|moz|ms|webkit)-)?(' + AT_KEYWORDS.join('|') + '))\\\\b'\n },\n\n // variables\n VARIABLE,\n\n // dimension\n hljs.CSS_NUMBER_MODE,\n\n // functions\n // - only from beginning of line + whitespace\n {\n className: 'function',\n begin: '^[a-zA-Z][a-zA-Z0-9_\\-]*\\\\(.*\\\\)',\n illegal: '[\\\\n]',\n returnBegin: true,\n contains: [\n {\n className: 'title',\n begin: '\\\\b[a-zA-Z][a-zA-Z0-9_\\-]*'\n },\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n contains: [\n modes.HEXCOLOR,\n VARIABLE,\n hljs.APOS_STRING_MODE,\n hljs.CSS_NUMBER_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n }\n ]\n },\n\n // attributes\n // - only from beginning of line + whitespace\n // - must have whitespace after it\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b',\n starts: {\n // value container\n end: /;|$/,\n contains: [\n modes.HEXCOLOR,\n VARIABLE,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.CSS_NUMBER_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n modes.IMPORTANT\n ],\n illegal: /\\./,\n relevance: 0\n }\n }\n ]\n };\n}\n\nmodule.exports = stylus;\n","/*\nLanguage: SubUnit\nAuthor: Sergey Bronnikov <sergeyb@bronevichok.ru>\nWebsite: https://pypi.org/project/python-subunit/\n*/\n\nfunction subunit(hljs) {\n const DETAILS = {\n className: 'string',\n begin: '\\\\[\\n(multipart)?',\n end: '\\\\]\\n'\n };\n const TIME = {\n className: 'string',\n begin: '\\\\d{4}-\\\\d{2}-\\\\d{2}(\\\\s+)\\\\d{2}:\\\\d{2}:\\\\d{2}\\.\\\\d+Z'\n };\n const PROGRESSVALUE = {\n className: 'string',\n begin: '(\\\\+|-)\\\\d+'\n };\n const KEYWORDS = {\n className: 'keyword',\n relevance: 10,\n variants: [\n {\n begin: '^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\\\s+(test)?'\n },\n {\n begin: '^progress(:?)(\\\\s+)?(pop|push)?'\n },\n {\n begin: '^tags:'\n },\n {\n begin: '^time:'\n }\n ]\n };\n return {\n name: 'SubUnit',\n case_insensitive: true,\n contains: [\n DETAILS,\n TIME,\n PROGRESSVALUE,\n KEYWORDS\n ]\n };\n}\n\nmodule.exports = subunit;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\nconst keywordWrapper = keyword => concat(\n /\\b/,\n keyword,\n /\\w$/.test(keyword) ? /\\b/ : /\\B/\n);\n\n// Keywords that require a leading dot.\nconst dotKeywords = [\n 'Protocol', // contextual\n 'Type' // contextual\n].map(keywordWrapper);\n\n// Keywords that may have a leading dot.\nconst optionalDotKeywords = [\n 'init',\n 'self'\n].map(keywordWrapper);\n\n// should register as keyword, not type\nconst keywordTypes = [\n 'Any',\n 'Self'\n];\n\n// Regular keywords and literals.\nconst keywords = [\n // strings below will be fed into the regular `keywords` engine while regex\n // will result in additional modes being created to scan for those keywords to\n // avoid conflicts with other rules\n 'associatedtype',\n 'async',\n 'await',\n /as\\?/, // operator\n /as!/, // operator\n 'as', // operator\n 'break',\n 'case',\n 'catch',\n 'class',\n 'continue',\n 'convenience', // contextual\n 'default',\n 'defer',\n 'deinit',\n 'didSet', // contextual\n 'do',\n 'dynamic', // contextual\n 'else',\n 'enum',\n 'extension',\n 'fallthrough',\n /fileprivate\\(set\\)/,\n 'fileprivate',\n 'final', // contextual\n 'for',\n 'func',\n 'get', // contextual\n 'guard',\n 'if',\n 'import',\n 'indirect', // contextual\n 'infix', // contextual\n /init\\?/,\n /init!/,\n 'inout',\n /internal\\(set\\)/,\n 'internal',\n 'in',\n 'is', // operator\n 'lazy', // contextual\n 'let',\n 'mutating', // contextual\n 'nonmutating', // contextual\n /open\\(set\\)/, // contextual\n 'open', // contextual\n 'operator',\n 'optional', // contextual\n 'override', // contextual\n 'postfix', // contextual\n 'precedencegroup',\n 'prefix', // contextual\n /private\\(set\\)/,\n 'private',\n 'protocol',\n /public\\(set\\)/,\n 'public',\n 'repeat',\n 'required', // contextual\n 'rethrows',\n 'return',\n 'set', // contextual\n 'some', // contextual\n 'static',\n 'struct',\n 'subscript',\n 'super',\n 'switch',\n 'throws',\n 'throw',\n /try\\?/, // operator\n /try!/, // operator\n 'try', // operator\n 'typealias',\n /unowned\\(safe\\)/, // contextual\n /unowned\\(unsafe\\)/, // contextual\n 'unowned', // contextual\n 'var',\n 'weak', // contextual\n 'where',\n 'while',\n 'willSet' // contextual\n];\n\n// NOTE: Contextual keywords are reserved only in specific contexts.\n// Ideally, these should be matched using modes to avoid false positives.\n\n// Literals.\nconst literals = [\n 'false',\n 'nil',\n 'true'\n];\n\n// Keywords used in precedence groups.\nconst precedencegroupKeywords = [\n 'assignment',\n 'associativity',\n 'higherThan',\n 'left',\n 'lowerThan',\n 'none',\n 'right'\n];\n\n// Keywords that start with a number sign (#).\n// #available is handled separately.\nconst numberSignKeywords = [\n '#colorLiteral',\n '#column',\n '#dsohandle',\n '#else',\n '#elseif',\n '#endif',\n '#error',\n '#file',\n '#fileID',\n '#fileLiteral',\n '#filePath',\n '#function',\n '#if',\n '#imageLiteral',\n '#keyPath',\n '#line',\n '#selector',\n '#sourceLocation',\n '#warn_unqualified_access',\n '#warning'\n];\n\n// Global functions in the Standard Library.\nconst builtIns = [\n 'abs',\n 'all',\n 'any',\n 'assert',\n 'assertionFailure',\n 'debugPrint',\n 'dump',\n 'fatalError',\n 'getVaList',\n 'isKnownUniquelyReferenced',\n 'max',\n 'min',\n 'numericCast',\n 'pointwiseMax',\n 'pointwiseMin',\n 'precondition',\n 'preconditionFailure',\n 'print',\n 'readLine',\n 'repeatElement',\n 'sequence',\n 'stride',\n 'swap',\n 'swift_unboxFromSwiftValueWithType',\n 'transcode',\n 'type',\n 'unsafeBitCast',\n 'unsafeDowncast',\n 'withExtendedLifetime',\n 'withUnsafeMutablePointer',\n 'withUnsafePointer',\n 'withVaList',\n 'withoutActuallyEscaping',\n 'zip'\n];\n\n// Valid first characters for operators.\nconst operatorHead = either(\n /[/=\\-+!*%<>&|^~?]/,\n /[\\u00A1-\\u00A7]/,\n /[\\u00A9\\u00AB]/,\n /[\\u00AC\\u00AE]/,\n /[\\u00B0\\u00B1]/,\n /[\\u00B6\\u00BB\\u00BF\\u00D7\\u00F7]/,\n /[\\u2016-\\u2017]/,\n /[\\u2020-\\u2027]/,\n /[\\u2030-\\u203E]/,\n /[\\u2041-\\u2053]/,\n /[\\u2055-\\u205E]/,\n /[\\u2190-\\u23FF]/,\n /[\\u2500-\\u2775]/,\n /[\\u2794-\\u2BFF]/,\n /[\\u2E00-\\u2E7F]/,\n /[\\u3001-\\u3003]/,\n /[\\u3008-\\u3020]/,\n /[\\u3030]/\n);\n\n// Valid characters for operators.\nconst operatorCharacter = either(\n operatorHead,\n /[\\u0300-\\u036F]/,\n /[\\u1DC0-\\u1DFF]/,\n /[\\u20D0-\\u20FF]/,\n /[\\uFE00-\\uFE0F]/,\n /[\\uFE20-\\uFE2F]/\n // TODO: The following characters are also allowed, but the regex isn't supported yet.\n // /[\\u{E0100}-\\u{E01EF}]/u\n);\n\n// Valid operator.\nconst operator = concat(operatorHead, operatorCharacter, '*');\n\n// Valid first characters for identifiers.\nconst identifierHead = either(\n /[a-zA-Z_]/,\n /[\\u00A8\\u00AA\\u00AD\\u00AF\\u00B2-\\u00B5\\u00B7-\\u00BA]/,\n /[\\u00BC-\\u00BE\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/,\n /[\\u0100-\\u02FF\\u0370-\\u167F\\u1681-\\u180D\\u180F-\\u1DBF]/,\n /[\\u1E00-\\u1FFF]/,\n /[\\u200B-\\u200D\\u202A-\\u202E\\u203F-\\u2040\\u2054\\u2060-\\u206F]/,\n /[\\u2070-\\u20CF\\u2100-\\u218F\\u2460-\\u24FF\\u2776-\\u2793]/,\n /[\\u2C00-\\u2DFF\\u2E80-\\u2FFF]/,\n /[\\u3004-\\u3007\\u3021-\\u302F\\u3031-\\u303F\\u3040-\\uD7FF]/,\n /[\\uF900-\\uFD3D\\uFD40-\\uFDCF\\uFDF0-\\uFE1F\\uFE30-\\uFE44]/,\n /[\\uFE47-\\uFEFE\\uFF00-\\uFFFD]/ // Should be /[\\uFE47-\\uFFFD]/, but we have to exclude FEFF.\n // The following characters are also allowed, but the regexes aren't supported yet.\n // /[\\u{10000}-\\u{1FFFD}\\u{20000-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}]/u,\n // /[\\u{50000}-\\u{5FFFD}\\u{60000-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}]/u,\n // /[\\u{90000}-\\u{9FFFD}\\u{A0000-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}]/u,\n // /[\\u{D0000}-\\u{DFFFD}\\u{E0000-\\u{EFFFD}]/u\n);\n\n// Valid characters for identifiers.\nconst identifierCharacter = either(\n identifierHead,\n /\\d/,\n /[\\u0300-\\u036F\\u1DC0-\\u1DFF\\u20D0-\\u20FF\\uFE20-\\uFE2F]/\n);\n\n// Valid identifier.\nconst identifier = concat(identifierHead, identifierCharacter, '*');\n\n// Valid type identifier.\nconst typeIdentifier = concat(/[A-Z]/, identifierCharacter, '*');\n\n// Built-in attributes, which are highlighted as keywords.\n// @available is handled separately.\nconst keywordAttributes = [\n 'autoclosure',\n concat(/convention\\(/, either('swift', 'block', 'c'), /\\)/),\n 'discardableResult',\n 'dynamicCallable',\n 'dynamicMemberLookup',\n 'escaping',\n 'frozen',\n 'GKInspectable',\n 'IBAction',\n 'IBDesignable',\n 'IBInspectable',\n 'IBOutlet',\n 'IBSegueAction',\n 'inlinable',\n 'main',\n 'nonobjc',\n 'NSApplicationMain',\n 'NSCopying',\n 'NSManaged',\n concat(/objc\\(/, identifier, /\\)/),\n 'objc',\n 'objcMembers',\n 'propertyWrapper',\n 'requires_stored_property_inits',\n 'testable',\n 'UIApplicationMain',\n 'unknown',\n 'usableFromInline'\n];\n\n// Contextual keywords used in @available and #available.\nconst availabilityKeywords = [\n 'iOS',\n 'iOSApplicationExtension',\n 'macOS',\n 'macOSApplicationExtension',\n 'macCatalyst',\n 'macCatalystApplicationExtension',\n 'watchOS',\n 'watchOSApplicationExtension',\n 'tvOS',\n 'tvOSApplicationExtension',\n 'swift'\n];\n\n/*\nLanguage: Swift\nDescription: Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.\nAuthor: Steven Van Impe <steven.vanimpe@icloud.com>\nContributors: Chris Eidhof <chris@eidhof.nl>, Nate Cook <natecook@gmail.com>, Alexander Lichter <manniL@gmx.net>, Richard Gibson <gibson042@github>\nWebsite: https://swift.org\nCategory: common, system\n*/\n\n/** @type LanguageFn */\nfunction swift(hljs) {\n const WHITESPACE = {\n match: /\\s+/,\n relevance: 0\n };\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID411\n const BLOCK_COMMENT = hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n {\n contains: [ 'self' ]\n }\n );\n const COMMENTS = [\n hljs.C_LINE_COMMENT_MODE,\n BLOCK_COMMENT\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html\n const DOT_KEYWORD = {\n className: 'keyword',\n begin: concat(/\\./, lookahead(either(...dotKeywords, ...optionalDotKeywords))),\n end: either(...dotKeywords, ...optionalDotKeywords),\n excludeBegin: true\n };\n const KEYWORD_GUARD = {\n // Consume .keyword to prevent highlighting properties and methods as keywords.\n match: concat(/\\./, either(...keywords)),\n relevance: 0\n };\n const PLAIN_KEYWORDS = keywords\n .filter(kw => typeof kw === 'string')\n .concat([ \"_|0\" ]); // seems common, so 0 relevance\n const REGEX_KEYWORDS = keywords\n .filter(kw => typeof kw !== 'string') // find regex\n .concat(keywordTypes)\n .map(keywordWrapper);\n const KEYWORD = {\n variants: [\n {\n className: 'keyword',\n match: either(...REGEX_KEYWORDS, ...optionalDotKeywords)\n }\n ]\n };\n // find all the regular keywords\n const KEYWORDS = {\n $pattern: either(\n /\\b\\w+/, // regular keywords\n /#\\w+/ // number keywords\n ),\n keyword: PLAIN_KEYWORDS\n .concat(numberSignKeywords),\n literal: literals\n };\n const KEYWORD_MODES = [\n DOT_KEYWORD,\n KEYWORD_GUARD,\n KEYWORD\n ];\n\n // https://github.com/apple/swift/tree/main/stdlib/public/core\n const BUILT_IN_GUARD = {\n // Consume .built_in to prevent highlighting properties and methods.\n match: concat(/\\./, either(...builtIns)),\n relevance: 0\n };\n const BUILT_IN = {\n className: 'built_in',\n match: concat(/\\b/, either(...builtIns), /(?=\\()/)\n };\n const BUILT_INS = [\n BUILT_IN_GUARD,\n BUILT_IN\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418\n const OPERATOR_GUARD = {\n // Prevent -> from being highlighting as an operator.\n match: /->/,\n relevance: 0\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n variants: [\n {\n match: operator\n },\n {\n // dot-operator: only operators that start with a dot are allowed to use dots as\n // characters (..., ...<, .*, etc). So there rule here is: a dot followed by one or more\n // characters that may also include dots.\n match: `\\\\.(\\\\.|${operatorCharacter})+`\n }\n ]\n };\n const OPERATORS = [\n OPERATOR_GUARD,\n OPERATOR\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_numeric-literal\n // TODO: Update for leading `-` after lookbehind is supported everywhere\n const decimalDigits = '([0-9]_*)+';\n const hexDigits = '([0-9a-fA-F]_*)+';\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // decimal floating-point-literal (subsumes decimal-literal)\n {\n match: `\\\\b(${decimalDigits})(\\\\.(${decimalDigits}))?` + `([eE][+-]?(${decimalDigits}))?\\\\b`\n },\n // hexadecimal floating-point-literal (subsumes hexadecimal-literal)\n {\n match: `\\\\b0x(${hexDigits})(\\\\.(${hexDigits}))?` + `([pP][+-]?(${decimalDigits}))?\\\\b`\n },\n // octal-literal\n {\n match: /\\b0o([0-7]_*)+\\b/\n },\n // binary-literal\n {\n match: /\\b0b([01]_*)+\\b/\n }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_string-literal\n const ESCAPED_CHARACTER = (rawDelimiter = \"\") => ({\n className: 'subst',\n variants: [\n {\n match: concat(/\\\\/, rawDelimiter, /[0\\\\tnr\"']/)\n },\n {\n match: concat(/\\\\/, rawDelimiter, /u\\{[0-9a-fA-F]{1,8}\\}/)\n }\n ]\n });\n const ESCAPED_NEWLINE = (rawDelimiter = \"\") => ({\n className: 'subst',\n match: concat(/\\\\/, rawDelimiter, /[\\t ]*(?:[\\r\\n]|\\r\\n)/)\n });\n const INTERPOLATION = (rawDelimiter = \"\") => ({\n className: 'subst',\n label: \"interpol\",\n begin: concat(/\\\\/, rawDelimiter, /\\(/),\n end: /\\)/\n });\n const MULTILINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"\"\"/),\n end: concat(/\"\"\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n ESCAPED_NEWLINE(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const SINGLE_LINE_STRING = (rawDelimiter = \"\") => ({\n begin: concat(rawDelimiter, /\"/),\n end: concat(/\"/, rawDelimiter),\n contains: [\n ESCAPED_CHARACTER(rawDelimiter),\n INTERPOLATION(rawDelimiter)\n ]\n });\n const STRING = {\n className: 'string',\n variants: [\n MULTILINE_STRING(),\n MULTILINE_STRING(\"#\"),\n MULTILINE_STRING(\"##\"),\n MULTILINE_STRING(\"###\"),\n SINGLE_LINE_STRING(),\n SINGLE_LINE_STRING(\"#\"),\n SINGLE_LINE_STRING(\"##\"),\n SINGLE_LINE_STRING(\"###\")\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID412\n const QUOTED_IDENTIFIER = {\n match: concat(/`/, identifier, /`/)\n };\n const IMPLICIT_PARAMETER = {\n className: 'variable',\n match: /\\$\\d+/\n };\n const PROPERTY_WRAPPER_PROJECTION = {\n className: 'variable',\n match: `\\\\$${identifierCharacter}+`\n };\n const IDENTIFIERS = [\n QUOTED_IDENTIFIER,\n IMPLICIT_PARAMETER,\n PROPERTY_WRAPPER_PROJECTION\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Attributes.html\n const AVAILABLE_ATTRIBUTE = {\n match: /(@|#)available/,\n className: \"keyword\",\n starts: {\n contains: [\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: availabilityKeywords,\n contains: [\n ...OPERATORS,\n NUMBER,\n STRING\n ]\n }\n ]\n }\n };\n const KEYWORD_ATTRIBUTE = {\n className: 'keyword',\n match: concat(/@/, either(...keywordAttributes))\n };\n const USER_DEFINED_ATTRIBUTE = {\n className: 'meta',\n match: concat(/@/, identifier)\n };\n const ATTRIBUTES = [\n AVAILABLE_ATTRIBUTE,\n KEYWORD_ATTRIBUTE,\n USER_DEFINED_ATTRIBUTE\n ];\n\n // https://docs.swift.org/swift-book/ReferenceManual/Types.html\n const TYPE = {\n match: lookahead(/\\b[A-Z]/),\n relevance: 0,\n contains: [\n { // Common Apple frameworks, for relevance boost\n className: 'type',\n match: concat(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/, identifierCharacter, '+')\n },\n { // Type identifier\n className: 'type',\n match: typeIdentifier,\n relevance: 0\n },\n { // Optional type\n match: /[?!]+/,\n relevance: 0\n },\n { // Variadic parameter\n match: /\\.\\.\\./,\n relevance: 0\n },\n { // Protocol composition\n match: concat(/\\s+&\\s+/, lookahead(typeIdentifier)),\n relevance: 0\n }\n ]\n };\n const GENERIC_ARGUMENTS = {\n begin: /</,\n end: />/,\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...ATTRIBUTES,\n OPERATOR_GUARD,\n TYPE\n ]\n };\n TYPE.contains.push(GENERIC_ARGUMENTS);\n\n // https://docs.swift.org/swift-book/ReferenceManual/Expressions.html#ID552\n // Prevents element names from being highlighted as keywords.\n const TUPLE_ELEMENT_NAME = {\n match: concat(identifier, /\\s*:/),\n keywords: \"_|0\",\n relevance: 0\n };\n // Matches tuples as well as the parameter list of a function type.\n const TUPLE = {\n begin: /\\(/,\n end: /\\)/,\n relevance: 0,\n keywords: KEYWORDS,\n contains: [\n 'self',\n TUPLE_ELEMENT_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID362\n // Matches both the keyword func and the function title.\n // Grouping these lets us differentiate between the operator function <\n // and the start of the generic parameter clause (also <).\n const FUNC_PLUS_TITLE = {\n beginKeywords: 'func',\n contains: [\n {\n className: 'title',\n match: either(QUOTED_IDENTIFIER.match, identifier, operator),\n // Required to make sure the opening < of the generic parameter clause\n // isn't parsed as a second title.\n endsParent: true,\n relevance: 0\n },\n WHITESPACE\n ]\n };\n const GENERIC_PARAMETERS = {\n begin: /</,\n end: />/,\n contains: [\n ...COMMENTS,\n TYPE\n ]\n };\n const FUNCTION_PARAMETER_NAME = {\n begin: either(\n lookahead(concat(identifier, /\\s*:/)),\n lookahead(concat(identifier, /\\s+/, identifier, /\\s*:/))\n ),\n end: /:/,\n relevance: 0,\n contains: [\n {\n className: 'keyword',\n match: /\\b_\\b/\n },\n {\n className: 'params',\n match: identifier\n }\n ]\n };\n const FUNCTION_PARAMETERS = {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n FUNCTION_PARAMETER_NAME,\n ...COMMENTS,\n ...KEYWORD_MODES,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ],\n endsParent: true,\n illegal: /[\"']/\n };\n const FUNCTION = {\n className: 'function',\n match: lookahead(/\\bfunc\\b/),\n contains: [\n FUNC_PLUS_TITLE,\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: [\n /\\[/,\n /%/\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID375\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID379\n const INIT_SUBSCRIPT = {\n className: 'function',\n match: /\\b(subscript|init[?!]?)\\s*(?=[<(])/,\n keywords: {\n keyword: \"subscript init init? init!\",\n $pattern: /\\w+[?!]?/\n },\n contains: [\n GENERIC_PARAMETERS,\n FUNCTION_PARAMETERS,\n WHITESPACE\n ],\n illegal: /\\[|%/\n };\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID380\n const OPERATOR_DECLARATION = {\n beginKeywords: 'operator',\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n className: 'title',\n match: operator,\n endsParent: true,\n relevance: 0\n }\n ]\n };\n\n // https://docs.swift.org/swift-book/ReferenceManual/Declarations.html#ID550\n const PRECEDENCEGROUP = {\n beginKeywords: 'precedencegroup',\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n className: 'title',\n match: typeIdentifier,\n relevance: 0\n },\n {\n begin: /{/,\n end: /}/,\n relevance: 0,\n endsParent: true,\n keywords: [\n ...precedencegroupKeywords,\n ...literals\n ],\n contains: [ TYPE ]\n }\n ]\n };\n\n // Add supported submodes to string interpolation.\n for (const variant of STRING.variants) {\n const interpolation = variant.contains.find(mode => mode.label === \"interpol\");\n // TODO: Interpolation can contain any expression, so there's room for improvement here.\n interpolation.keywords = KEYWORDS;\n const submodes = [\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS\n ];\n interpolation.contains = [\n ...submodes,\n {\n begin: /\\(/,\n end: /\\)/,\n contains: [\n 'self',\n ...submodes\n ]\n }\n ];\n }\n\n return {\n name: 'Swift',\n keywords: KEYWORDS,\n contains: [\n ...COMMENTS,\n FUNCTION,\n INIT_SUBSCRIPT,\n {\n className: 'class',\n beginKeywords: 'struct protocol class extension enum',\n end: '\\\\{',\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n begin: /[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/\n }),\n ...KEYWORD_MODES\n ]\n },\n OPERATOR_DECLARATION,\n PRECEDENCEGROUP,\n {\n beginKeywords: 'import',\n end: /$/,\n contains: [ ...COMMENTS ],\n relevance: 0\n },\n ...KEYWORD_MODES,\n ...BUILT_INS,\n ...OPERATORS,\n NUMBER,\n STRING,\n ...IDENTIFIERS,\n ...ATTRIBUTES,\n TYPE,\n TUPLE\n ]\n };\n}\n\nmodule.exports = swift;\n","/*\nLanguage: Tagger Script\nAuthor: Philipp Wolfer <ph.wolfer@gmail.com>\nDescription: Syntax Highlighting for the Tagger Script as used by MusicBrainz Picard.\nWebsite: https://picard.musicbrainz.org\n */\nfunction taggerscript(hljs) {\n const COMMENT = {\n className: 'comment',\n begin: /\\$noop\\(/,\n end: /\\)/,\n contains: [ {\n begin: /\\(/,\n end: /\\)/,\n contains: [ 'self',\n {\n begin: /\\\\./\n } ]\n } ],\n relevance: 10\n };\n\n const FUNCTION = {\n className: 'keyword',\n begin: /\\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,\n end: /\\(/,\n excludeEnd: true\n };\n\n const VARIABLE = {\n className: 'variable',\n begin: /%[_a-zA-Z0-9:]*/,\n end: '%'\n };\n\n const ESCAPE_SEQUENCE = {\n className: 'symbol',\n begin: /\\\\./\n };\n\n return {\n name: 'Tagger Script',\n contains: [\n COMMENT,\n FUNCTION,\n VARIABLE,\n ESCAPE_SEQUENCE\n ]\n };\n}\n\nmodule.exports = taggerscript;\n","/*\nLanguage: YAML\nDescription: Yet Another Markdown Language\nAuthor: Stefan Wienert <stwienert@gmail.com>\nContributors: Carl Baxter <carl@cbax.tech>\nRequires: ruby.js\nWebsite: https://yaml.org\nCategory: common, config\n*/\nfunction yaml(hljs) {\n var LITERALS = 'true false yes no null';\n\n // YAML spec allows non-reserved URI characters in tags.\n var URI_CHARACTERS = '[\\\\w#;/?:@&=+$,.~*\\'()[\\\\]]+';\n\n // Define keys as starting with a word character\n // ...containing word chars, spaces, colons, forward-slashes, hyphens and periods\n // ...and ending with a colon followed immediately by a space, tab or newline.\n // The YAML spec allows for much more than this, but this covers most use-cases.\n var KEY = {\n className: 'attr',\n variants: [\n { begin: '\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)' },\n { begin: '\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)' }, // double quoted keys\n { begin: '\\'\\\\w[\\\\w :\\\\/.-]*\\':(?=[ \\t]|$)' } // single quoted keys\n ]\n };\n\n var TEMPLATE_VARIABLES = {\n className: 'template-variable',\n variants: [\n { begin: /\\{\\{/, end: /\\}\\}/ }, // jinja templates Ansible\n { begin: /%\\{/, end: /\\}/ } // Ruby i18n\n ]\n };\n var STRING = {\n className: 'string',\n relevance: 0,\n variants: [\n { begin: /'/, end: /'/ },\n { begin: /\"/, end: /\"/ },\n { begin: /\\S+/ }\n ],\n contains: [\n hljs.BACKSLASH_ESCAPE,\n TEMPLATE_VARIABLES\n ]\n };\n\n // Strings inside of value containers (objects) can't contain braces,\n // brackets, or commas\n var CONTAINER_STRING = hljs.inherit(STRING, {\n variants: [\n { begin: /'/, end: /'/ },\n { begin: /\"/, end: /\"/ },\n { begin: /[^\\s,{}[\\]]+/ }\n ]\n });\n\n var DATE_RE = '[0-9]{4}(-[0-9][0-9]){0,2}';\n var TIME_RE = '([Tt \\\\t][0-9][0-9]?(:[0-9][0-9]){2})?';\n var FRACTION_RE = '(\\\\.[0-9]*)?';\n var ZONE_RE = '([ \\\\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?';\n var TIMESTAMP = {\n className: 'number',\n begin: '\\\\b' + DATE_RE + TIME_RE + FRACTION_RE + ZONE_RE + '\\\\b'\n };\n\n var VALUE_CONTAINER = {\n end: ',',\n endsWithParent: true,\n excludeEnd: true,\n keywords: LITERALS,\n relevance: 0\n };\n var OBJECT = {\n begin: /\\{/,\n end: /\\}/,\n contains: [VALUE_CONTAINER],\n illegal: '\\\\n',\n relevance: 0\n };\n var ARRAY = {\n begin: '\\\\[',\n end: '\\\\]',\n contains: [VALUE_CONTAINER],\n illegal: '\\\\n',\n relevance: 0\n };\n\n var MODES = [\n KEY,\n {\n className: 'meta',\n begin: '^---\\\\s*$',\n relevance: 10\n },\n { // multi line string\n // Blocks start with a | or > followed by a newline\n //\n // Indentation of subsequent lines must be the same to\n // be considered part of the block\n className: 'string',\n begin: '[\\\\|>]([1-9]?[+-])?[ ]*\\\\n( +)[^ ][^\\\\n]*\\\\n(\\\\2[^\\\\n]+\\\\n?)*'\n },\n { // Ruby/Rails erb\n begin: '<%[%=-]?',\n end: '[%-]?%>',\n subLanguage: 'ruby',\n excludeBegin: true,\n excludeEnd: true,\n relevance: 0\n },\n { // named tags\n className: 'type',\n begin: '!\\\\w+!' + URI_CHARACTERS\n },\n // https://yaml.org/spec/1.2/spec.html#id2784064\n { // verbatim tags\n className: 'type',\n begin: '!<' + URI_CHARACTERS + \">\"\n },\n { // primary tags\n className: 'type',\n begin: '!' + URI_CHARACTERS\n },\n { // secondary tags\n className: 'type',\n begin: '!!' + URI_CHARACTERS\n },\n { // fragment id &ref\n className: 'meta',\n begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$'\n },\n { // fragment reference *ref\n className: 'meta',\n begin: '\\\\*' + hljs.UNDERSCORE_IDENT_RE + '$'\n },\n { // array listing\n className: 'bullet',\n // TODO: remove |$ hack when we have proper look-ahead support\n begin: '-(?=[ ]|$)',\n relevance: 0\n },\n hljs.HASH_COMMENT_MODE,\n {\n beginKeywords: LITERALS,\n keywords: { literal: LITERALS }\n },\n TIMESTAMP,\n // numbers are any valid C-style number that\n // sit isolated from other words\n {\n className: 'number',\n begin: hljs.C_NUMBER_RE + '\\\\b',\n relevance: 0\n },\n OBJECT,\n ARRAY,\n STRING\n ];\n\n var VALUE_MODES = [...MODES];\n VALUE_MODES.pop();\n VALUE_MODES.push(CONTAINER_STRING);\n VALUE_CONTAINER.contains = VALUE_MODES;\n\n return {\n name: 'YAML',\n case_insensitive: true,\n aliases: [ 'yml' ],\n contains: MODES\n };\n}\n\nmodule.exports = yaml;\n","/*\nLanguage: Test Anything Protocol\nDescription: TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness.\nRequires: yaml.js\nAuthor: Sergey Bronnikov <sergeyb@bronevichok.ru>\nWebsite: https://testanything.org\n*/\n\nfunction tap(hljs) {\n return {\n name: 'Test Anything Protocol',\n case_insensitive: true,\n contains: [\n hljs.HASH_COMMENT_MODE,\n // version of format and total amount of testcases\n {\n className: 'meta',\n variants: [\n {\n begin: '^TAP version (\\\\d+)$'\n },\n {\n begin: '^1\\\\.\\\\.(\\\\d+)$'\n }\n ]\n },\n // YAML block\n {\n begin: /---$/,\n end: '\\\\.\\\\.\\\\.$',\n subLanguage: 'yaml',\n relevance: 0\n },\n // testcase number\n {\n className: 'number',\n begin: ' (\\\\d+) '\n },\n // testcase status and description\n {\n className: 'symbol',\n variants: [\n {\n begin: '^ok'\n },\n {\n begin: '^not ok'\n }\n ]\n }\n ]\n };\n}\n\nmodule.exports = tap;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Tcl\nDescription: Tcl is a very simple programming language.\nAuthor: Radek Liska <radekliska@gmail.com>\nWebsite: https://www.tcl.tk/about/language.html\n*/\n\nfunction tcl(hljs) {\n const TCL_IDENT = /[a-zA-Z_][a-zA-Z0-9_]*/;\n\n const NUMBER = {\n className: 'number',\n variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]\n };\n\n return {\n name: 'Tcl',\n aliases: ['tk'],\n keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +\n 'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +\n 'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +\n 'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +\n 'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +\n 'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+\n 'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+\n 'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+\n 'return safe scan seek set socket source split string subst switch tcl_endOfWord '+\n 'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+\n 'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+\n 'uplevel upvar variable vwait while',\n contains: [\n hljs.COMMENT(';[ \\\\t]*#', '$'),\n hljs.COMMENT('^[ \\\\t]*#', '$'),\n {\n beginKeywords: 'proc',\n end: '[\\\\{]',\n excludeEnd: true,\n contains: [\n {\n className: 'title',\n begin: '[ \\\\t\\\\n\\\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n end: '[ \\\\t\\\\n\\\\r]',\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n {\n className: \"variable\",\n variants: [\n {\n begin: concat(\n /\\$/,\n optional(/::/),\n TCL_IDENT,\n '(::',\n TCL_IDENT,\n ')*'\n )\n },\n {\n begin: '\\\\$\\\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',\n end: '\\\\}',\n contains: [\n NUMBER\n ]\n }\n ]\n },\n {\n className: 'string',\n contains: [hljs.BACKSLASH_ESCAPE],\n variants: [\n hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})\n ]\n },\n NUMBER\n ]\n }\n}\n\nmodule.exports = tcl;\n","/*\nLanguage: Thrift\nAuthor: Oleg Efimov <efimovov@gmail.com>\nDescription: Thrift message definition format\nWebsite: https://thrift.apache.org\nCategory: protocols\n*/\n\nfunction thrift(hljs) {\n const BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';\n return {\n name: 'Thrift',\n keywords: {\n keyword:\n 'namespace const typedef struct enum service exception void oneway set list map required optional',\n built_in:\n BUILT_IN_TYPES,\n literal:\n 'true false'\n },\n contains: [\n hljs.QUOTE_STRING_MODE,\n hljs.NUMBER_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'class',\n beginKeywords: 'struct enum service exception',\n end: /\\{/,\n illegal: /\\n/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n // hack: eating everything after the first title\n starts: {\n endsWithParent: true,\n excludeEnd: true\n }\n })\n ]\n },\n {\n begin: '\\\\b(set|list|map)\\\\s*<',\n end: '>',\n keywords: BUILT_IN_TYPES,\n contains: [ 'self' ]\n }\n ]\n };\n}\n\nmodule.exports = thrift;\n","/*\nLanguage: TP\nAuthor: Jay Strybis <jay.strybis@gmail.com>\nDescription: FANUC TP programming language (TPP).\n*/\n\nfunction tp(hljs) {\n const TPID = {\n className: 'number',\n begin: '[1-9][0-9]*', /* no leading zeros */\n relevance: 0\n };\n const TPLABEL = {\n className: 'symbol',\n begin: ':[^\\\\]]+'\n };\n const TPDATA = {\n className: 'built_in',\n begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|' +\n 'TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\\\[',\n end: '\\\\]',\n contains: [\n 'self',\n TPID,\n TPLABEL\n ]\n };\n const TPIO = {\n className: 'built_in',\n begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\\\[',\n end: '\\\\]',\n contains: [\n 'self',\n TPID,\n hljs.QUOTE_STRING_MODE, /* for pos section at bottom */\n TPLABEL\n ]\n };\n\n return {\n name: 'TP',\n keywords: {\n keyword:\n 'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +\n 'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +\n 'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +\n 'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +\n 'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +\n 'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',\n literal:\n 'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'\n },\n contains: [\n TPDATA,\n TPIO,\n {\n className: 'keyword',\n begin: '/(PROG|ATTR|MN|POS|END)\\\\b'\n },\n {\n /* this is for cases like ,CALL */\n className: 'keyword',\n begin: '(CALL|RUN|POINT_LOGIC|LBL)\\\\b'\n },\n {\n /* this is for cases like CNT100 where the default lexemes do not\n * separate the keyword and the number */\n className: 'keyword',\n begin: '\\\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'\n },\n {\n /* to catch numbers that do not have a word boundary on the left */\n className: 'number',\n begin: '\\\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\\\b',\n relevance: 0\n },\n hljs.COMMENT('//', '[;$]'),\n hljs.COMMENT('!', '[;$]'),\n hljs.COMMENT('--eg:', '$'),\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '\\''\n },\n hljs.C_NUMBER_MODE,\n {\n className: 'variable',\n begin: '\\\\$[A-Za-z0-9_]+'\n }\n ]\n };\n}\n\nmodule.exports = tp;\n","/*\nLanguage: Twig\nRequires: xml.js\nAuthor: Luke Holder <lukemh@gmail.com>\nDescription: Twig is a templating language for PHP\nWebsite: https://twig.symfony.com\nCategory: template\n*/\n\nfunction twig(hljs) {\n var PARAMS = {\n className: 'params',\n begin: '\\\\(', end: '\\\\)'\n };\n\n var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +\n 'max min parent random range source template_from_string';\n\n var FUNCTIONS = {\n beginKeywords: FUNCTION_NAMES,\n keywords: {name: FUNCTION_NAMES},\n relevance: 0,\n contains: [\n PARAMS\n ]\n };\n\n var FILTER = {\n begin: /\\|[A-Za-z_]+:?/,\n keywords:\n 'abs batch capitalize column convert_encoding date date_modify default ' +\n 'escape filter first format inky_to_html inline_css join json_encode keys last ' +\n 'length lower map markdown merge nl2br number_format raw reduce replace ' +\n 'reverse round slice sort spaceless split striptags title trim upper url_encode',\n contains: [\n FUNCTIONS\n ]\n };\n\n var TAGS = 'apply autoescape block deprecated do embed extends filter flush for from ' +\n 'if import include macro sandbox set use verbatim with';\n\n TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');\n\n return {\n name: 'Twig',\n aliases: ['craftcms'],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n hljs.COMMENT(/\\{#/, /#\\}/),\n {\n className: 'template-tag',\n begin: /\\{%/, end: /%\\}/,\n contains: [\n {\n className: 'name',\n begin: /\\w+/,\n keywords: TAGS,\n starts: {\n endsWithParent: true,\n contains: [FILTER, FUNCTIONS],\n relevance: 0\n }\n }\n ]\n },\n {\n className: 'template-variable',\n begin: /\\{\\{/, end: /\\}\\}/,\n contains: ['self', FILTER, FUNCTIONS]\n }\n ]\n };\n}\n\nmodule.exports = twig;\n","const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\nconst TYPES = [\n \"Intl\",\n \"DataView\",\n \"Number\",\n \"Math\",\n \"Date\",\n \"String\",\n \"RegExp\",\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Error\",\n \"Symbol\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"Proxy\",\n \"Reflect\",\n \"JSON\",\n \"Promise\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"ArrayBuffer\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"BigInt\"\n];\n\nconst ERROR_TYPES = [\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n BUILT_IN_VARIABLES,\n TYPES,\n ERROR_TYPES\n);\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n /**\n * Takes a string like \"<Booger\" and checks to see\n * if we can find a matching \"</Booger\" later in the\n * content.\n * @param {RegExpMatchArray} match\n * @param {{after:number}} param1\n */\n const hasClosingTag = (match, { after }) => {\n const tag = \"</\" + match[0].slice(1);\n const pos = match.input.indexOf(tag, after);\n return pos !== -1;\n };\n\n const IDENT_RE$1 = IDENT_RE;\n const FRAGMENT = {\n begin: '<>',\n end: '</>'\n };\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n // nested type?\n // HTML should not include another raw `<` inside a tag\n // But a type might: `<Array<Array<number>>`, etc.\n if (nextChar === \"<\") {\n response.ignoreMatch();\n return;\n }\n // <something>\n // This is now either a tag or a type.\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+',\n contains: [\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n { // object attr container\n begin: concat(/[{,\\n]\\s*/,\n // we need to look ahead to make sure that we actually have an\n // attribute coming up so we don't steal a comma from a potential\n // \"value\" container\n //\n // NOTE: this might not work how you think. We don't actually always\n // enter this mode and stay. Instead it might merely match `,\n // <comments up next>` and then immediately end after the , because it\n // fails to find any actual attrs. But this still does the job because\n // it prevents the value contain rule from grabbing this instead and\n // prevening this rule from firing when we actually DO have keys.\n lookahead(concat(\n // we also need to allow for multiple possible comments inbetween\n // the first key:value pairing\n /(((\\/\\/.*$)|(\\/\\*(\\*[^/]|[^*])*\\*\\/))\\s*)*/,\n IDENT_RE$1 + '\\\\s*:'))),\n relevance: 0,\n contains: [\n {\n className: 'attr',\n begin: IDENT_RE$1 + lookahead('\\\\s*:'),\n relevance: 0\n }\n ]\n },\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>',\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/, relevance: 0\n },\n {\n className: '',\n begin: /\\s/,\n end: /\\s*/,\n skip: true\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n relevance: 0\n },\n {\n className: 'function',\n beginKeywords: 'function',\n end: /[{;]/,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: [\n 'self',\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n PARAMS\n ],\n illegal: /%/\n },\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n ]\n },\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n variants: [\n { begin: '\\\\.' + IDENT_RE$1 },\n { begin: '\\\\$' + IDENT_RE$1 }\n ],\n relevance: 0\n },\n { // ES6 class\n className: 'class',\n beginKeywords: 'class',\n end: /[{;=]/,\n excludeEnd: true,\n illegal: /[:\"[\\]]/,\n contains: [\n { beginKeywords: 'extends' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n {\n begin: /\\b(?=constructor)/,\n end: /[{;]/,\n excludeEnd: true,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n 'self',\n PARAMS\n ]\n },\n {\n begin: '(get|set)\\\\s+(?=' + IDENT_RE$1 + '\\\\()',\n end: /\\{/,\n keywords: \"get set\",\n contains: [\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1 }),\n { begin: /\\(\\)/ }, // eat to avoid empty params\n PARAMS\n ]\n },\n {\n begin: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti <panu.horsmalahti@iki.fi>\nContributors: Ike Ku <dempfi@yahoo.com>\nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const IDENT_RE$1 = IDENT_RE;\n const NAMESPACE = {\n beginKeywords: 'namespace', end: /\\{/, excludeEnd: true\n };\n const INTERFACE = {\n beginKeywords: 'interface', end: /\\{/, excludeEnd: true,\n keywords: 'interface extends'\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"enum\"\n ];\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"typedef\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES)\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n mode.contains.splice(indx, 1, replacement);\n };\n\n const tsLanguage = javascript(hljs);\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.className === \"function\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: ['ts', 'tsx']\n });\n\n return tsLanguage;\n}\n\nmodule.exports = typescript;\n","/*\nLanguage: Vala\nAuthor: Antono Vasiljev <antono.vasiljev@gmail.com>\nDescription: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.\nWebsite: https://wiki.gnome.org/Projects/Vala\n*/\n\nfunction vala(hljs) {\n return {\n name: 'Vala',\n keywords: {\n keyword:\n // Value types\n 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +\n 'uint16 uint32 uint64 float double bool struct enum string void ' +\n // Reference types\n 'weak unowned owned ' +\n // Modifiers\n 'async signal static abstract interface override virtual delegate ' +\n // Control Structures\n 'if while do for foreach else switch case break default return try catch ' +\n // Visibility\n 'public private protected internal ' +\n // Other\n 'using new this get set const stdout stdin stderr var',\n built_in:\n 'DBus GLib CCode Gee Object Gtk Posix',\n literal:\n 'false true null'\n },\n contains: [\n {\n className: 'class',\n beginKeywords: 'class interface namespace',\n end: /\\{/,\n excludeEnd: true,\n illegal: '[^,:\\\\n\\\\s\\\\.]',\n contains: [ hljs.UNDERSCORE_TITLE_MODE ]\n },\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n {\n className: 'string',\n begin: '\"\"\"',\n end: '\"\"\"',\n relevance: 5\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.C_NUMBER_MODE,\n {\n className: 'meta',\n begin: '^#',\n end: '$',\n relevance: 2\n }\n ]\n };\n}\n\nmodule.exports = vala;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: Visual Basic .NET\nDescription: Visual Basic .NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the .NET Framework.\nAuthors: Poren Chiang <ren.chiang@gmail.com>, Jan Pilzer\nWebsite: https://docs.microsoft.com/dotnet/visual-basic/getting-started\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction vbnet(hljs) {\n /**\n * Character Literal\n * Either a single character (\"a\"C) or an escaped double quote (\"\"\"\"C).\n */\n const CHARACTER = {\n className: 'string',\n begin: /\"(\"\"|[^/n])\"C\\b/\n };\n\n const STRING = {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n illegal: /\\n/,\n contains: [\n {\n // double quote escape\n begin: /\"\"/\n }\n ]\n };\n\n /** Date Literals consist of a date, a time, or both separated by whitespace, surrounded by # */\n const MM_DD_YYYY = /\\d{1,2}\\/\\d{1,2}\\/\\d{4}/;\n const YYYY_MM_DD = /\\d{4}-\\d{1,2}-\\d{1,2}/;\n const TIME_12H = /(\\d|1[012])(:\\d+){0,2} *(AM|PM)/;\n const TIME_24H = /\\d{1,2}(:\\d{1,2}){1,2}/;\n const DATE = {\n className: 'literal',\n variants: [\n {\n // #YYYY-MM-DD# (ISO-Date) or #M/D/YYYY# (US-Date)\n begin: concat(/# */, either(YYYY_MM_DD, MM_DD_YYYY), / *#/)\n },\n {\n // #H:mm[:ss]# (24h Time)\n begin: concat(/# */, TIME_24H, / *#/)\n },\n {\n // #h[:mm[:ss]] A# (12h Time)\n begin: concat(/# */, TIME_12H, / *#/)\n },\n {\n // date plus time\n begin: concat(\n /# */,\n either(YYYY_MM_DD, MM_DD_YYYY),\n / +/,\n either(TIME_12H, TIME_24H),\n / *#/\n )\n }\n ]\n };\n\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n {\n // Float\n begin: /\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/\n },\n {\n // Integer (base 10)\n begin: /\\b\\d[\\d_]*((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 16)\n begin: /&H[\\dA-F_]+((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 8)\n begin: /&O[0-7_]+((U?[SIL])|[%&])?/\n },\n {\n // Integer (base 2)\n begin: /&B[01_]+((U?[SIL])|[%&])?/\n }\n ]\n };\n\n const LABEL = {\n className: 'label',\n begin: /^\\w+:/\n };\n\n const DOC_COMMENT = hljs.COMMENT(/'''/, /$/, {\n contains: [\n {\n className: 'doctag',\n begin: /<\\/?/,\n end: />/\n }\n ]\n });\n\n const COMMENT = hljs.COMMENT(null, /$/, {\n variants: [\n {\n begin: /'/\n },\n {\n // TODO: Use `beforeMatch:` for leading spaces\n begin: /([\\t ]|^)REM(?=\\s)/\n }\n ]\n });\n\n const DIRECTIVES = {\n className: 'meta',\n // TODO: Use `beforeMatch:` for indentation once available\n begin: /[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\n end: /$/,\n keywords: {\n 'meta-keyword':\n 'const disable else elseif enable end externalsource if region then'\n },\n contains: [ COMMENT ]\n };\n\n return {\n name: 'Visual Basic .NET',\n aliases: [ 'vb' ],\n case_insensitive: true,\n classNameAliases: {\n label: 'symbol'\n },\n keywords: {\n keyword:\n 'addhandler alias aggregate ansi as async assembly auto binary by byref byval ' + /* a-b */\n 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */\n 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */\n 'get global goto group handles if implements imports in inherits interface into iterator ' + /* g-i */\n 'join key let lib loop me mid module mustinherit mustoverride mybase myclass ' + /* j-m */\n 'namespace narrowing new next notinheritable notoverridable ' + /* n */\n 'of off on operator option optional order overloads overridable overrides ' + /* o */\n 'paramarray partial preserve private property protected public ' + /* p */\n 'raiseevent readonly redim removehandler resume return ' + /* r */\n 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */\n 'take text then throw to try unicode until using when where while widening with withevents writeonly yield' /* t-y */,\n built_in:\n // Operators https://docs.microsoft.com/dotnet/visual-basic/language-reference/operators\n 'addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor ' +\n // Type Conversion Functions https://docs.microsoft.com/dotnet/visual-basic/language-reference/functions/type-conversion-functions\n 'cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort',\n type:\n // Data types https://docs.microsoft.com/dotnet/visual-basic/language-reference/data-types\n 'boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort',\n literal: 'true false nothing'\n },\n illegal:\n '//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ ' /* reserved deprecated keywords */,\n contains: [\n CHARACTER,\n STRING,\n DATE,\n NUMBER,\n LABEL,\n DOC_COMMENT,\n COMMENT,\n DIRECTIVES\n ]\n };\n}\n\nmodule.exports = vbnet;\n","/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] } args\n * @returns {string}\n */\nfunction either(...args) {\n const joined = '(' + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/*\nLanguage: VBScript\nDescription: VBScript (\"Microsoft Visual Basic Scripting Edition\") is an Active Scripting language developed by Microsoft that is modeled on Visual Basic.\nAuthor: Nikita Ledyaev <lenikita@yandex.ru>\nContributors: Michal Gabrukiewicz <mgabru@gmail.com>\nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\n/** @type LanguageFn */\nfunction vbscript(hljs) {\n const BUILT_IN_FUNCTIONS = ('lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +\n 'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +\n 'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +\n 'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +\n 'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +\n 'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +\n 'strcomp int createobject loadpicture tan formatnumber mid ' +\n 'split cint sin datepart ltrim sqr ' +\n 'time derived eval date formatpercent exp inputbox left ascw ' +\n 'chrw regexp cstr err').split(\" \");\n const BUILT_IN_OBJECTS = [\n \"server\",\n \"response\",\n \"request\",\n // take no arguments so can be called without ()\n \"scriptengine\",\n \"scriptenginebuildversion\",\n \"scriptengineminorversion\",\n \"scriptenginemajorversion\"\n ];\n\n const BUILT_IN_CALL = {\n begin: concat(either(...BUILT_IN_FUNCTIONS), \"\\\\s*\\\\(\"),\n // relevance 0 because this is acting as a beginKeywords really\n relevance:0,\n keywords: {\n built_in: BUILT_IN_FUNCTIONS\n }\n };\n\n return {\n name: 'VBScript',\n aliases: ['vbs'],\n case_insensitive: true,\n keywords: {\n keyword:\n 'call class const dim do loop erase execute executeglobal exit for each next function ' +\n 'if then else on error option explicit new private property let get public randomize ' +\n 'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +\n 'class_initialize class_terminate default preserve in me byval byref step resume goto',\n built_in: BUILT_IN_OBJECTS,\n literal:\n 'true false null nothing empty'\n },\n illegal: '//',\n contains: [\n BUILT_IN_CALL,\n hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '\"\"'}]}),\n hljs.COMMENT(\n /'/,\n /$/,\n {\n relevance: 0\n }\n ),\n hljs.C_NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = vbscript;\n","/*\nLanguage: VBScript in HTML\nRequires: xml.js, vbscript.js\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nDescription: \"Bridge\" language defining fragments of VBScript in HTML within <% .. %>\nWebsite: https://en.wikipedia.org/wiki/VBScript\nCategory: scripting\n*/\n\nfunction vbscriptHtml(hljs) {\n return {\n name: 'VBScript in HTML',\n subLanguage: 'xml',\n contains: [\n {\n begin: '<%',\n end: '%>',\n subLanguage: 'vbscript'\n }\n ]\n };\n}\n\nmodule.exports = vbscriptHtml;\n","/*\nLanguage: Verilog\nAuthor: Jon Evans <jon@craftyjon.com>\nContributors: Boone Severson <boone.severson@gmail.com>\nDescription: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter supports Verilog and SystemVerilog through IEEE 1800-2012.\nWebsite: http://www.verilog.com\n*/\n\nfunction verilog(hljs) {\n const SV_KEYWORDS = {\n $pattern: /[\\w\\$]+/,\n keyword:\n 'accept_on alias always always_comb always_ff always_latch and assert assign ' +\n 'assume automatic before begin bind bins binsof bit break buf|0 bufif0 bufif1 ' +\n 'byte case casex casez cell chandle checker class clocking cmos config const ' +\n 'constraint context continue cover covergroup coverpoint cross deassign default ' +\n 'defparam design disable dist do edge else end endcase endchecker endclass ' +\n 'endclocking endconfig endfunction endgenerate endgroup endinterface endmodule ' +\n 'endpackage endprimitive endprogram endproperty endspecify endsequence endtable ' +\n 'endtask enum event eventually expect export extends extern final first_match for ' +\n 'force foreach forever fork forkjoin function generate|5 genvar global highz0 highz1 ' +\n 'if iff ifnone ignore_bins illegal_bins implements implies import incdir include ' +\n 'initial inout input inside instance int integer interconnect interface intersect ' +\n 'join join_any join_none large let liblist library local localparam logic longint ' +\n 'macromodule matches medium modport module nand negedge nettype new nexttime nmos ' +\n 'nor noshowcancelled not notif0 notif1 or output package packed parameter pmos ' +\n 'posedge primitive priority program property protected pull0 pull1 pulldown pullup ' +\n 'pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos ' +\n 'real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran ' +\n 'rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared ' +\n 'sequence shortint shortreal showcancelled signed small soft solve specify specparam ' +\n 'static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on ' +\n 'sync_reject_on table tagged task this throughout time timeprecision timeunit tran ' +\n 'tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 ' +\n 'unsigned until until_with untyped use uwire var vectored virtual void wait wait_order ' +\n 'wand weak weak0 weak1 while wildcard wire with within wor xnor xor',\n literal:\n 'null',\n built_in:\n '$finish $stop $exit $fatal $error $warning $info $realtime $time $printtimescale ' +\n '$bitstoreal $bitstoshortreal $itor $signed $cast $bits $stime $timeformat ' +\n '$realtobits $shortrealtobits $rtoi $unsigned $asserton $assertkill $assertpasson ' +\n '$assertfailon $assertnonvacuouson $assertoff $assertcontrol $assertpassoff ' +\n '$assertfailoff $assertvacuousoff $isunbounded $sampled $fell $changed $past_gclk ' +\n '$fell_gclk $changed_gclk $rising_gclk $steady_gclk $coverage_control ' +\n '$coverage_get $coverage_save $set_coverage_db_name $rose $stable $past ' +\n '$rose_gclk $stable_gclk $future_gclk $falling_gclk $changing_gclk $display ' +\n '$coverage_get_max $coverage_merge $get_coverage $load_coverage_db $typename ' +\n '$unpacked_dimensions $left $low $increment $clog2 $ln $log10 $exp $sqrt $pow ' +\n '$floor $ceil $sin $cos $tan $countbits $onehot $isunknown $fatal $warning ' +\n '$dimensions $right $high $size $asin $acos $atan $atan2 $hypot $sinh $cosh ' +\n '$tanh $asinh $acosh $atanh $countones $onehot0 $error $info $random ' +\n '$dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson ' +\n '$dist_t $dist_uniform $q_initialize $q_remove $q_exam $async$and$array ' +\n '$async$nand$array $async$or$array $async$nor$array $sync$and$array ' +\n '$sync$nand$array $sync$or$array $sync$nor$array $q_add $q_full $psprintf ' +\n '$async$and$plane $async$nand$plane $async$or$plane $async$nor$plane ' +\n '$sync$and$plane $sync$nand$plane $sync$or$plane $sync$nor$plane $system ' +\n '$display $displayb $displayh $displayo $strobe $strobeb $strobeh $strobeo ' +\n '$write $readmemb $readmemh $writememh $value$plusargs ' +\n '$dumpvars $dumpon $dumplimit $dumpports $dumpportson $dumpportslimit ' +\n '$writeb $writeh $writeo $monitor $monitorb $monitorh $monitoro $writememb ' +\n '$dumpfile $dumpoff $dumpall $dumpflush $dumpportsoff $dumpportsall ' +\n '$dumpportsflush $fclose $fdisplay $fdisplayb $fdisplayh $fdisplayo ' +\n '$fstrobe $fstrobeb $fstrobeh $fstrobeo $swrite $swriteb $swriteh ' +\n '$swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb ' +\n '$fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat ' +\n '$sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror'\n };\n\n return {\n name: 'Verilog',\n aliases: [\n 'v',\n 'sv',\n 'svh'\n ],\n case_insensitive: false,\n keywords: SV_KEYWORDS,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE,\n hljs.QUOTE_STRING_MODE,\n {\n className: 'number',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: '\\\\b((\\\\d+\\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'\n },\n {\n begin: '\\\\B((\\'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)'\n },\n {\n begin: '\\\\b([0-9_])+',\n relevance: 0\n }\n ]\n },\n /* parameters to instances */\n {\n className: 'variable',\n variants: [\n {\n begin: '#\\\\((?!parameter).+\\\\)'\n },\n {\n begin: '\\\\.\\\\w+',\n relevance: 0\n }\n ]\n },\n {\n className: 'meta',\n begin: '`',\n end: '$',\n keywords: {\n 'meta-keyword':\n 'define __FILE__ ' +\n '__LINE__ begin_keywords celldefine default_nettype define ' +\n 'else elsif end_keywords endcelldefine endif ifdef ifndef ' +\n 'include line nounconnected_drive pragma resetall timescale ' +\n 'unconnected_drive undef undefineall'\n },\n relevance: 0\n }\n ]\n };\n}\n\nmodule.exports = verilog;\n","/*\nLanguage: VHDL\nAuthor: Igor Kalnitsky <igor@kalnitsky.org>\nContributors: Daniel C.K. Kho <daniel.kho@tauhop.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>\nDescription: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.\nWebsite: https://en.wikipedia.org/wiki/VHDL\n*/\n\nfunction vhdl(hljs) {\n // Regular expression for VHDL numeric literals.\n\n // Decimal literal:\n const INTEGER_RE = '\\\\d(_|\\\\d)*';\n const EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;\n const DECIMAL_LITERAL_RE = INTEGER_RE + '(\\\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';\n // Based literal:\n const BASED_INTEGER_RE = '\\\\w+';\n const BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';\n\n const NUMBER_RE = '\\\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';\n\n return {\n name: 'VHDL',\n case_insensitive: true,\n keywords: {\n keyword:\n 'abs access after alias all and architecture array assert assume assume_guarantee attribute ' +\n 'begin block body buffer bus case component configuration constant context cover disconnect ' +\n 'downto default else elsif end entity exit fairness file for force function generate ' +\n 'generic group guarded if impure in inertial inout is label library linkage literal ' +\n 'loop map mod nand new next nor not null of on open or others out package parameter port ' +\n 'postponed procedure process property protected pure range record register reject ' +\n 'release rem report restrict restrict_guarantee return rol ror select sequence ' +\n 'severity shared signal sla sll sra srl strong subtype then to transport type ' +\n 'unaffected units until use variable view vmode vprop vunit wait when while with xnor xor',\n built_in:\n 'boolean bit character ' +\n 'integer time delay_length natural positive ' +\n 'string bit_vector file_open_kind file_open_status ' +\n 'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +\n 'std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed ' +\n 'real_vector time_vector',\n literal:\n 'false true note warning error failure ' + // severity_level\n 'line text side width' // textio\n },\n illegal: /\\{/,\n contains: [\n hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.\n hljs.COMMENT('--', '$'),\n hljs.QUOTE_STRING_MODE,\n {\n className: 'number',\n begin: NUMBER_RE,\n relevance: 0\n },\n {\n className: 'string',\n begin: '\\'(U|X|0|1|Z|W|L|H|-)\\'',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n className: 'symbol',\n begin: '\\'[A-Za-z](_?[A-Za-z0-9])*',\n contains: [ hljs.BACKSLASH_ESCAPE ]\n }\n ]\n };\n}\n\nmodule.exports = vhdl;\n","/*\nLanguage: Vim Script\nAuthor: Jun Yang <yangjvn@126.com>\nDescription: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/\nWebsite: https://www.vim.org\nCategory: scripting\n*/\n\nfunction vim(hljs) {\n return {\n name: 'Vim Script',\n keywords: {\n $pattern: /[!#@\\w]+/,\n keyword:\n // express version except: ! & * < = > !! # @ @@\n 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope ' +\n 'cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ' +\n 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 ' +\n 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor ' +\n 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew ' +\n 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ ' +\n // full version\n 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload ' +\n 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap ' +\n 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor ' +\n 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap ' +\n 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview ' +\n 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap ' +\n 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ' +\n 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding ' +\n 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace ' +\n 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious ' + 'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew ' +\n 'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',\n built_in: // built in func\n 'synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv ' +\n 'complete_check add getwinposx getqflist getwinposy screencol ' +\n 'clearmatches empty extend getcmdpos mzeval garbagecollect setreg ' +\n 'ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable ' +\n 'shiftwidth max sinh isdirectory synID system inputrestore winline ' +\n 'atan visualmode inputlist tabpagewinnr round getregtype mapcheck ' +\n 'hasmapto histdel argidx findfile sha256 exists toupper getcmdline ' +\n 'taglist string getmatches bufnr strftime winwidth bufexists ' +\n 'strtrans tabpagebuflist setcmdpos remote_read printf setloclist ' +\n 'getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval ' +\n 'resolve libcallnr foldclosedend reverse filter has_key bufname ' +\n 'str2float strlen setline getcharmod setbufvar index searchpos ' +\n 'shellescape undofile foldclosed setqflist buflisted strchars str2nr ' +\n 'virtcol floor remove undotree remote_expr winheight gettabwinvar ' +\n 'reltime cursor tabpagenr finddir localtime acos getloclist search ' +\n 'tanh matchend rename gettabvar strdisplaywidth type abs py3eval ' +\n 'setwinvar tolower wildmenumode log10 spellsuggest bufloaded ' +\n 'synconcealed nextnonblank server2client complete settabwinvar ' +\n 'executable input wincol setmatches getftype hlID inputsave ' +\n 'searchpair or screenrow line settabvar histadd deepcopy strpart ' +\n 'remote_peek and eval getftime submatch screenchar winsaveview ' +\n 'matchadd mkdir screenattr getfontname libcall reltimestr getfsize ' +\n 'winnr invert pow getbufline byte2line soundfold repeat fnameescape ' +\n 'tagfiles sin strwidth spellbadword trunc maparg log lispindent ' +\n 'hostname setpos globpath remote_foreground getchar synIDattr ' +\n 'fnamemodify cscope_connection stridx winbufnr indent min ' +\n 'complete_add nr2char searchpairpos inputdialog values matchlist ' +\n 'items hlexists strridx browsedir expand fmod pathshorten line2byte ' +\n 'argc count getwinvar glob foldtextresult getreg foreground cosh ' +\n 'matchdelete has char2nr simplify histget searchdecl iconv ' +\n 'winrestcmd pumvisible writefile foldlevel haslocaldir keys cos ' +\n 'matchstr foldtext histnr tan tempname getcwd byteidx getbufvar ' +\n 'islocked escape eventhandler remote_send serverlist winrestview ' +\n 'synstack pyeval prevnonblank readfile cindent filereadable changenr ' +\n 'exp'\n },\n illegal: /;/,\n contains: [\n hljs.NUMBER_MODE,\n {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n'\n },\n\n /*\n A double quote can start either a string or a line comment. Strings are\n ended before the end of a line by another double quote and can contain\n escaped double-quotes and post-escaped line breaks.\n\n Also, any double quote at the beginning of a line is a comment but we\n don't handle that properly at the moment: any double quote inside will\n turn them into a string. Handling it properly will require a smarter\n parser.\n */\n {\n className: 'string',\n begin: /\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/\n },\n hljs.COMMENT('\"', '$'),\n\n {\n className: 'variable',\n begin: /[bwtglsav]:[\\w\\d_]*/\n },\n {\n className: 'function',\n beginKeywords: 'function function!',\n end: '$',\n relevance: 0,\n contains: [\n hljs.TITLE_MODE,\n {\n className: 'params',\n begin: '\\\\(',\n end: '\\\\)'\n }\n ]\n },\n {\n className: 'symbol',\n begin: /<[\\w-]+>/\n }\n ]\n };\n}\n\nmodule.exports = vim;\n","/*\nLanguage: Intel x86 Assembly\nAuthor: innocenat <innocenat@gmail.com>\nDescription: x86 assembly language using Intel's mnemonic and NASM syntax\nWebsite: https://en.wikipedia.org/wiki/X86_assembly_language\nCategory: assembler\n*/\n\nfunction x86asm(hljs) {\n return {\n name: 'Intel x86 Assembly',\n case_insensitive: true,\n keywords: {\n $pattern: '[.%]?' + hljs.IDENT_RE,\n keyword:\n 'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +\n 'aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63',\n built_in:\n // Instruction pointer\n 'ip eip rip ' +\n // 8-bit registers\n 'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +\n // 16-bit registers\n 'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +\n // 32-bit registers\n 'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +\n // 64-bit registers\n 'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +\n // Segment registers\n 'cs ds es fs gs ss ' +\n // Floating point stack registers\n 'st st0 st1 st2 st3 st4 st5 st6 st7 ' +\n // MMX Registers\n 'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +\n // SSE registers\n 'xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ' +\n 'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +\n // AVX registers\n 'ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ' +\n 'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +\n // AVX-512F registers\n 'zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 ' +\n 'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +\n // AVX-512F mask registers\n 'k0 k1 k2 k3 k4 k5 k6 k7 ' +\n // Bound (MPX) register\n 'bnd0 bnd1 bnd2 bnd3 ' +\n // Special register\n 'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +\n // NASM altreg package\n 'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +\n 'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +\n 'r0h r1h r2h r3h ' +\n 'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +\n\n 'db dw dd dq dt ddq do dy dz ' +\n 'resb resw resd resq rest resdq reso resy resz ' +\n 'incbin equ times ' +\n 'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',\n\n meta:\n '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +\n '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +\n '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +\n '.nolist ' +\n '__FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +\n '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend ' +\n 'align alignb sectalign daz nodaz up down zero default option assume public ' +\n\n 'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +\n '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +\n '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +\n '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +\n 'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'\n },\n contains: [\n hljs.COMMENT(\n ';',\n '$',\n {\n relevance: 0\n }\n ),\n {\n className: 'number',\n variants: [\n // Float number and x87 BCD\n {\n begin: '\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +\n '(0[Xx])?[0-9][0-9_]*(\\\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b',\n relevance: 0\n },\n\n // Hex number in $\n {\n begin: '\\\\$[0-9][0-9A-Fa-f]*',\n relevance: 0\n },\n\n // Number in H,D,T,Q,O,B,Y suffix\n {\n begin: '\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b'\n },\n\n // Number in X,D,T,Q,O,B,Y prefix\n {\n begin: '\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b'\n }\n ]\n },\n // Double quote string\n hljs.QUOTE_STRING_MODE,\n {\n className: 'string',\n variants: [\n // Single-quoted string\n {\n begin: '\\'',\n end: '[^\\\\\\\\]\\''\n },\n // Backquoted string\n {\n begin: '`',\n end: '[^\\\\\\\\]`'\n }\n ],\n relevance: 0\n },\n {\n className: 'symbol',\n variants: [\n // Global label and local label\n {\n begin: '^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)'\n },\n // Macro-local label\n {\n begin: '^\\\\s*%%[A-Za-z0-9_$#@~.?]*:'\n }\n ],\n relevance: 0\n },\n // Macro parameter\n {\n className: 'subst',\n begin: '%[0-9]+',\n relevance: 0\n },\n // Macro parameter\n {\n className: 'subst',\n begin: '%!\\S+',\n relevance: 0\n },\n {\n className: 'meta',\n begin: /^\\s*\\.[\\w_-]+/\n }\n ]\n };\n}\n\nmodule.exports = x86asm;\n","/*\nLanguage: XL\nAuthor: Christophe de Dinechin <christophe@taodyne.com>\nDescription: An extensible programming language, based on parse tree rewriting\nWebsite: http://xlr.sf.net\n*/\n\nfunction xl(hljs) {\n const BUILTIN_MODULES =\n 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +\n 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';\n\n const XL_KEYWORDS = {\n $pattern: /[a-zA-Z][a-zA-Z0-9_?]*/,\n keyword:\n 'if then else do while until for loop import with is as where when by data constant ' +\n 'integer real text name boolean symbol infix prefix postfix block tree',\n literal:\n 'true false nil',\n built_in:\n 'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +\n 'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +\n 'text_find text_replace contains page slide basic_slide title_slide ' +\n 'title subtitle fade_in fade_out fade_at clear_color color line_color ' +\n 'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +\n 'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +\n 'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +\n 'quad_to curve_to theme background contents locally time mouse_?x ' +\n 'mouse_?y mouse_buttons ' +\n BUILTIN_MODULES\n };\n\n const DOUBLE_QUOTE_TEXT = {\n className: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n'\n };\n const SINGLE_QUOTE_TEXT = {\n className: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n'\n };\n const LONG_TEXT = {\n className: 'string',\n begin: '<<',\n end: '>>'\n };\n const BASED_NUMBER = {\n className: 'number',\n begin: '[0-9]+#[0-9A-Z_]+(\\\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'\n };\n const IMPORT = {\n beginKeywords: 'import',\n end: '$',\n keywords: XL_KEYWORDS,\n contains: [ DOUBLE_QUOTE_TEXT ]\n };\n const FUNCTION_DEFINITION = {\n className: 'function',\n begin: /[a-z][^\\n]*->/,\n returnBegin: true,\n end: /->/,\n contains: [\n hljs.inherit(hljs.TITLE_MODE, {\n starts: {\n endsWithParent: true,\n keywords: XL_KEYWORDS\n }\n })\n ]\n };\n return {\n name: 'XL',\n aliases: [ 'tao' ],\n keywords: XL_KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.C_BLOCK_COMMENT_MODE,\n DOUBLE_QUOTE_TEXT,\n SINGLE_QUOTE_TEXT,\n LONG_TEXT,\n FUNCTION_DEFINITION,\n IMPORT,\n BASED_NUMBER,\n hljs.NUMBER_MODE\n ]\n };\n}\n\nmodule.exports = xl;\n","/*\nLanguage: XQuery\nAuthor: Dirk Kirsten <dk@basex.org>\nContributor: Duncan Paterson\nDescription: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)\nRefactored to process xml constructor syntax and function-bodies. Added missing data-types, xpath operands, inbuilt functions, and query prologs\nWebsite: https://www.w3.org/XML/Query/\nCategory: functional\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction xquery(_hljs) {\n // see https://www.w3.org/TR/xquery/#id-terminal-delimitation\n const KEYWORDS =\n 'module schema namespace boundary-space preserve no-preserve strip default collation base-uri ordering context decimal-format decimal-separator copy-namespaces empty-sequence except exponent-separator external grouping-separator inherit no-inherit lax minus-sign per-mille percent schema-attribute schema-element strict unordered zero-digit ' +\n 'declare import option function validate variable ' +\n 'for at in let where order group by return if then else ' +\n 'tumbling sliding window start when only end previous next stable ' +\n 'ascending descending allowing empty greatest least some every satisfies switch case typeswitch try catch ' +\n 'and or to union intersect instance of treat as castable cast map array ' +\n 'delete insert into replace value rename copy modify update';\n\n // Node Types (sorted by inheritance)\n // atomic types (sorted by inheritance)\n const TYPE =\n 'item document-node node attribute document element comment namespace namespace-node processing-instruction text construction ' +\n 'xs:anyAtomicType xs:untypedAtomic xs:duration xs:time xs:decimal xs:float xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary xs:hexBinary xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string xs:normalizedString xs:token xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer xs:nonPositiveInteger xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger xs:unisignedLong xs:unsignedInt xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration xs:dayTimeDuration';\n\n const LITERAL =\n 'eq ne lt le gt ge is ' +\n 'self:: child:: descendant:: descendant-or-self:: attribute:: following:: following-sibling:: parent:: ancestor:: ancestor-or-self:: preceding:: preceding-sibling:: ' +\n 'NaN';\n\n // functions (TODO: find regex for op: without breaking build)\n const BUILT_IN = {\n className: 'built_in',\n variants: [\n {\n begin: /\\barray:/,\n end: /(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\\b/\n },\n {\n begin: /\\bmap:/,\n end: /(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\\b/\n },\n {\n begin: /\\bmath:/,\n end: /(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\\b/\n },\n {\n begin: /\\bop:/,\n end: /\\(/,\n excludeEnd: true\n },\n {\n begin: /\\bfn:/,\n end: /\\(/,\n excludeEnd: true\n },\n // do not highlight inbuilt strings as variable or xml element names\n {\n begin: /[^</$:'\"-]\\b(?:abs|accumulator-(?:after|before)|adjust-(?:date(?:Time)?|time)-to-timezone|analyze-string|apply|available-(?:environment-variables|system-properties)|avg|base-uri|boolean|ceiling|codepoints?-(?:equal|to-string)|collation-key|collection|compare|concat|contains(?:-token)?|copy-of|count|current(?:-)?(?:date(?:Time)?|time|group(?:ing-key)?|output-uri|merge-(?:group|key))?data|dateTime|days?-from-(?:date(?:Time)?|duration)|deep-equal|default-(?:collation|language)|distinct-values|document(?:-uri)?|doc(?:-available)?|element-(?:available|with-id)|empty|encode-for-uri|ends-with|environment-variable|error|escape-html-uri|exactly-one|exists|false|filter|floor|fold-(?:left|right)|for-each(?:-pair)?|format-(?:date(?:Time)?|time|integer|number)|function-(?:arity|available|lookup|name)|generate-id|has-children|head|hours-from-(?:dateTime|duration|time)|id(?:ref)?|implicit-timezone|in-scope-prefixes|index-of|innermost|insert-before|iri-to-uri|json-(?:doc|to-xml)|key|lang|last|load-xquery-module|local-name(?:-from-QName)?|(?:lower|upper)-case|matches|max|minutes-from-(?:dateTime|duration|time)|min|months?-from-(?:date(?:Time)?|duration)|name(?:space-uri-?(?:for-prefix|from-QName)?)?|nilled|node-name|normalize-(?:space|unicode)|not|number|one-or-more|outermost|parse-(?:ietf-date|json)|path|position|(?:prefix-from-)?QName|random-number-generator|regex-group|remove|replace|resolve-(?:QName|uri)|reverse|root|round(?:-half-to-even)?|seconds-from-(?:dateTime|duration|time)|snapshot|sort|starts-with|static-base-uri|stream-available|string-?(?:join|length|to-codepoints)?|subsequence|substring-?(?:after|before)?|sum|system-property|tail|timezone-from-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type-available|unordered|unparsed-(?:entity|text)?-?(?:public-id|uri|available|lines)?|uri-collection|xml-to-json|years?-from-(?:date(?:Time)?|duration)|zero-or-one)\\b/\n },\n {\n begin: /\\blocal:/,\n end: /\\(/,\n excludeEnd: true\n },\n {\n begin: /\\bzip:/,\n end: /(?:zip-file|(?:xml|html|text|binary)-entry| (?:update-)?entries)\\b/\n },\n {\n begin: /\\b(?:util|db|functx|app|xdmp|xmldb):/,\n end: /\\(/,\n excludeEnd: true\n }\n ]\n };\n\n const TITLE = {\n className: 'title',\n begin: /\\bxquery version \"[13]\\.[01]\"\\s?(?:encoding \".+\")?/,\n end: /;/\n };\n\n const VAR = {\n className: 'variable',\n begin: /[$][\\w\\-:]+/\n };\n\n const NUMBER = {\n className: 'number',\n begin: /(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n variants: [\n {\n begin: /\"/,\n end: /\"/,\n contains: [\n {\n begin: /\"\"/,\n relevance: 0\n }\n ]\n },\n {\n begin: /'/,\n end: /'/,\n contains: [\n {\n begin: /''/,\n relevance: 0\n }\n ]\n }\n ]\n };\n\n const ANNOTATION = {\n className: 'meta',\n begin: /%[\\w\\-:]+/\n };\n\n const COMMENT = {\n className: 'comment',\n begin: /\\(:/,\n end: /:\\)/,\n relevance: 10,\n contains: [\n {\n className: 'doctag',\n begin: /@\\w+/\n }\n ]\n };\n\n // see https://www.w3.org/TR/xquery/#id-computedConstructors\n // mocha: computed_inbuilt\n // see https://www.regexpal.com/?fam=99749\n const COMPUTED = {\n beginKeywords: 'element attribute comment document processing-instruction',\n end: /\\{/,\n excludeEnd: true\n };\n\n // mocha: direct_method\n const DIRECT = {\n begin: /<([\\w._:-]+)(\\s+\\S*=('|\").*('|\"))?>/,\n end: /(\\/[\\w._:-]+>)/,\n subLanguage: 'xml',\n contains: [\n {\n begin: /\\{/,\n end: /\\}/,\n subLanguage: 'xquery'\n },\n 'self'\n ]\n };\n\n const CONTAINS = [\n VAR,\n BUILT_IN,\n STRING,\n NUMBER,\n COMMENT,\n ANNOTATION,\n TITLE,\n COMPUTED,\n DIRECT\n ];\n\n return {\n name: 'XQuery',\n aliases: [\n 'xpath',\n 'xq'\n ],\n case_insensitive: false,\n illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,\n keywords: {\n $pattern: /[a-zA-Z$][a-zA-Z0-9_:-]*/,\n keyword: KEYWORDS,\n type: TYPE,\n literal: LITERAL\n },\n contains: CONTAINS\n };\n}\n\nmodule.exports = xquery;\n","/*\n Language: Zephir\n Description: Zephir, an open source, high-level language designed to ease the creation and maintainability of extensions for PHP with a focus on type and memory safety.\n Author: Oleg Efimov <efimovov@gmail.com>\n Website: https://zephir-lang.com/en\n Audit: 2020\n */\n\n/** @type LanguageFn */\nfunction zephir(hljs) {\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n hljs.inherit(hljs.APOS_STRING_MODE, {\n illegal: null\n }),\n hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null\n })\n ]\n };\n const TITLE_MODE = hljs.UNDERSCORE_TITLE_MODE;\n const NUMBER = {\n variants: [\n hljs.BINARY_NUMBER_MODE,\n hljs.C_NUMBER_MODE\n ]\n };\n const KEYWORDS =\n // classes and objects\n 'namespace class interface use extends ' +\n 'function return ' +\n 'abstract final public protected private static deprecated ' +\n // error handling\n 'throw try catch Exception ' +\n // keyword-ish things their website does NOT seem to highlight (in their own snippets)\n // 'typeof fetch in ' +\n // operators/helpers\n 'echo empty isset instanceof unset ' +\n // assignment/variables\n 'let var new const self ' +\n // control\n 'require ' +\n 'if else elseif switch case default ' +\n 'do while loop for continue break ' +\n 'likely unlikely ' +\n // magic constants\n // https://github.com/phalcon/zephir/blob/master/Library/Expression/Constants.php\n '__LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ ' +\n // types - https://docs.zephir-lang.com/0.12/en/types\n 'array boolean float double integer object resource string ' +\n 'char long unsigned bool int uint ulong uchar ' +\n // built-ins\n 'true false null undefined';\n\n return {\n name: 'Zephir',\n aliases: [ 'zep' ],\n keywords: KEYWORDS,\n contains: [\n hljs.C_LINE_COMMENT_MODE,\n hljs.COMMENT(\n /\\/\\*/,\n /\\*\\//,\n {\n contains: [\n {\n className: 'doctag',\n begin: /@[A-Za-z]+/\n }\n ]\n }\n ),\n {\n className: 'string',\n begin: /<<<['\"]?\\w+['\"]?$/,\n end: /^\\w+;/,\n contains: [ hljs.BACKSLASH_ESCAPE ]\n },\n {\n // swallow composed identifiers to avoid parsing them as keywords\n begin: /(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/\n },\n {\n className: 'function',\n beginKeywords: 'function fn',\n end: /[;{]/,\n excludeEnd: true,\n illegal: /\\$|\\[|%/,\n contains: [\n TITLE_MODE,\n {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n 'self',\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n }\n ]\n },\n {\n className: 'class',\n beginKeywords: 'class interface',\n end: /\\{/,\n excludeEnd: true,\n illegal: /[:($\"]/,\n contains: [\n {\n beginKeywords: 'extends implements'\n },\n TITLE_MODE\n ]\n },\n {\n beginKeywords: 'namespace',\n end: /;/,\n illegal: /[.']/,\n contains: [ TITLE_MODE ]\n },\n {\n beginKeywords: 'use',\n end: /;/,\n contains: [ TITLE_MODE ]\n },\n {\n begin: /=>/ // No markup, just a relevance booster\n },\n STRING,\n NUMBER\n ]\n };\n}\n\nmodule.exports = zephir;\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}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\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}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '�'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\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).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== 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 += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += 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 === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = 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 (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\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: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw†a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\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","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = 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","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = 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","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element && !lang.test(element.className)) {\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\treturn (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):.+:.+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\telement.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\tparent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: /<!--[\\s\\S]*?-->/,\n prolog: /<\\?[\\s\\S]+?\\?>/,\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/,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\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 ]\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 // 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(/&/, '&')\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","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction 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: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\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 } // 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","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction 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|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n boolean: /\\b(?:true|false)\\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","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\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])*(?=\\.(?:prototype|constructor))/,\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 /\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern:\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\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 })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript') // 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","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\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|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/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","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword:\n /\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|override|set|static)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function'\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","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/i,\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 'attr-name': /\\b'\\w+/i,\n keyword:\n /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:true|false)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:\\w)*\\b/i\n }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\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, // 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|U(?:LL?)?|LL?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|RequestOptionsPage|x?Rec)\\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","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction 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","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction 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|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|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)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|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)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|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)|RLimitCPU|RLimitMEM|RLimitNPROC|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)|SSIETag|SSIEndTag|SSIErrorMsg|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|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|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|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|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","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords =\n /\\b(?: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|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|get(?=\\s*[{};])|(?:after|before)(?=\\s+[a-z])|(?: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","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction 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 '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","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction 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(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\\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: {\n pattern:\n /\\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\\b/,\n alias: 'builtin'\n },\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction 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 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, // 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(?:true|false)\\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","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = []\nfunction arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n constant:\n /\\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\\b/,\n keyword:\n /\\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\\b/,\n builtin:\n /\\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction 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: /^'|'$/ // 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,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\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]*)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n } // See rest below\n }\n },\n 'passthrough-block': {\n pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/ // See rest below\n }\n },\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n }\n },\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern:\n /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // 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: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // 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: /^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/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|TM|R)\\)/,\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 }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\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 ) // 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(/&/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'keyword'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n opcode: {\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: 'property'\n },\n hexnumber: {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'string'\n },\n binarynumber: {\n pattern: /#?%[01]+\\b/,\n alias: 'string'\n },\n decimalnumber: {\n pattern: /#?\\b\\d+\\b/,\n alias: 'string'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n }\n }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/i,\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: /<%.*%>/i,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\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*\\/?>/i // 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 }) // 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","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction 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]|\"\")*\"/m,\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(?:true|false)\\b/,\n selector:\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 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_guievent|a_guicontrol|a_guicontrolevent|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|programfiles|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)\\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|substr|isfunc|islabel|IsObject|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|ltrim|rtrim|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|strreplace|sb_seticon|sb_setparts|sb_settext|strsplit|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__New|__Call|__Get|__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 important:\n /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\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|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|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|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|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|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Throw|Try|Catch|Finally|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+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/m,\n punctuation: /[{}[\\]():,]/\n }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction 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]*#(?:comments-end|ce)/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(?:True|False)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Or|Not)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction 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: /^for\\b|\\b(?:in|do)\\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|neq|lss|leq|gtr|geq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword:\n /^if\\b|\\b(?:not|cmdextversion|defined|errorlevel|exist)\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|neq|lss|leq|gtr|geq)\\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]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/i,\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","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction 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'\"\\]=]+)/i,\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","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\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/, // matches variable and function return types (parameters as well).\n /\\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|next|new|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","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction 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","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction 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(?:true|false)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/i,\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","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:TODO|FIXME|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: /(?:function|hook|event) \\w+(?:::\\w+)?/,\n inside: {\n keyword: /^(?:function|hook|event)/\n }\n },\n variable: {\n pattern: /(?:global|local) \\w+/i,\n inside: {\n keyword: /(?:global|local)/\n }\n },\n builtin:\n /(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,\n constant: {\n pattern: /const \\w+/i,\n inside: {\n keyword: /const/\n }\n },\n keyword:\n /\\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n /* eslint-disable no-misleading-character-class */\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 // 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(?:while|for|new|break|try|except|raise|else|endtry|undefined|function|var|return|endfunction|null|if|elseif|procedure|endprocedure|then|val|export|endif|in|each|true|false|to|do|enddo|execute)\\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 /[<>+\\-*/]=?|[%=]/, // 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 }, // EN\n {\n pattern: /\\b(?:and|or|not)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцеÑÑора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^(\\s*)&.*/m,\n lookbehind: true,\n alias: 'important'\n }, // ИнÑтрукции препроцеÑÑора вида:\n // #ЕÑли Сервер Тогда\n // ...\n // #КонецЕÑли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^\\s*#.*/gm,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\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","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\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","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction 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|iant|idispatch|implements|import|initonly|instance|u?int(?:8|16|32|64)?|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|unaligned|volatile|readonly|tail|no)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.[0-9]+|\\.[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(?:\\.[0-9]+|\\.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|ldvirtftn|castclass|beq(?:\\.s)?|mkrefany|localloc|ckfinite|rethrow|ldtoken|ldsflda|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(?:true|false)\\b/,\n number: /\\b-?(?:0x[0-9a-f]+|[0-9]+)(?:\\.[0-9a-f]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n operator: /(?:::|[:|'])\\b[a-z][\\w*+!?-]*\\b/i,\n //used for symbols and keywords\n keyword: {\n pattern:\n /([^\\w+*'?-])(?:def|if|do|let|\\.\\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\\.|new|set!|def-|defn|defn-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\\*|\\+|-|\\/|<|=|>|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|conj|cons|constantly|cond|if-not|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|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|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\\?|identity|if-let|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|line-seq|list\\*|list|load|load-file|locking|long|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\\?|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|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|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|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|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|time|to-array|to-array-2d|tree-seq|true\\?|union|up|update-proxy|val|vals|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)(?=[^\\w+*'?-])/,\n lookbehind: true\n },\n boolean: /\\b(?:true|false|nil)\\b/,\n number: /\\b[\\da-f]+\\b/i,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction 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+_(?:VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?|(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT)|(?: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_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\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|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|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(?:ON|OFF|TRUE|FALSE)\\b/,\n namespace:\n /\\b(?:PROPERTIES|SHARED|PRIVATE|STATIC|PUBLIC|INTERFACE|TARGET_OBJECTS)\\b/,\n operator:\n /\\b(?:NOT|AND|OR|MATCHES|LESS|GREATER|EQUAL|STRLESS|STRGREATER|STREQUAL|VERSION_LESS|VERSION_EQUAL|VERSION_GREATER|DEFINED)\\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","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction 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|BOUNDS|BOTTOM|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|COLLATING|COL|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|EOP|ERASE|ERROR|EOL|EOS|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|FUNCTIONNAME|FUNCTION-POINTER|GENERATE|GOBACK|GIVING|GLOBAL|GO|GRID|GROUP|HEADING|HIGHLIGHT|HIGH-VALUE|HIGH-VALUES|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|LINES|LINE-COUNTER|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOWER|LOWLIGHT|LOW-VALUE|LOW-VALUES|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|POSITION|POSITIVE|PORT|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|READER|REMOTE|RD|REAL|READ|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|REVERSE-VIDEO|RESET|RETURN|RETURN-CODE|RETURNING|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|TASK|TAPE|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|YYYYMMDD|YYYYDDD|ZERO-FILL|ZEROS|ZEROES)(?![\\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","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\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","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n langext: {\n pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n alias: 'string'\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 string: {\n pattern: /[rs]?(\"|')(?:\\\\.|(?!\\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","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n ;(function (Prism) {\n // https://github.com/coq/coq\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|apply|Arguments|as|As|Assumptions|at|Axiom|Axioms|Back|BackTo|Backtrace|Bind|BinOp|BinOpSpec|BinRel|Blacklist|by|Canonical|Case|Cd|Check|Class|Classes|Close|Coercion|Coercions|cofix|CoFixpoint|CoInductive|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|else|end|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|exists|exists2|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|fix|Fixpoint|Flags|Focus|for|forall|From|fun|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|Identity|if|IF|Immediate|Implicit|Implicits|Import|in|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|let|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|match|Match|measure|Method|Minimality|ML|Module|Modules|Morphism|move|Next|NoInline|Notation|Number|Obligation|Obligations|OCaml|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|Property|PropOp|Proposition|PropUOp|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|removed|Require|Reserved|Reset|Resolve|Restart|return|Rewrite|Right|Ring|Rings|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|SProp|Step|Strategies|Strategy|String|struct|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|then|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|UnOp|UnOpSpec|Unshelve|using|Variable|Variables|Variant|Verbose|View|Visibility|wf|where|with|Zify)\\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","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\\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 })\n Prism.languages.insertBefore('crystal', 'string', {\n attribute: {\n pattern: /@\\[.+?\\]/,\n alias: 'attr-name',\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n },\n expansion: [\n {\n pattern: /\\{\\{.+?\\}\\}/,\n inside: {\n delimiter: {\n pattern: /^\\{\\{|\\}\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n },\n {\n pattern: /\\{%.+?%\\}/,\n inside: {\n delimiter: {\n pattern: /^\\{%|%\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.crystal\n }\n }\n ]\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - CSP Level 1\n * - CSP Level 2\n * - CSP Level 3\n */\n Prism.languages.csp = {\n directive: {\n pattern:\n /(^|[^-\\da-z])(?: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)(?=[^-\\da-z]|$)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n safe: {\n // CSP2 hashes and nonces are base64 values. CSP3 accepts both base64 and base64url values.\n // See https://tools.ietf.org/html/rfc4648#section-4\n // See https://tools.ietf.org/html/rfc4648#section-5\n pattern:\n /'(?:deny|none|report-sample|self|strict-dynamic|top-only|(?:nonce|sha(?:256|384|512))-[-+/\\w=]+)'/i,\n alias: 'selector'\n },\n unsafe: {\n pattern:\n /(?:'unsafe-(?:allow-redirects|dynamic|eval|hash-attributes|hashed-attributes|hashes|inline)'|\\*)/i,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\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 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]+\\b)/,\n lookbehind: true\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 /\\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(?:rgb|hsl)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:rgb|hsl)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","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n // https://tools.ietf.org/html/rfc4180\n Prism.languages.csv = {\n value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n punctuation: /,/\n }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction 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 alias: 'symbol'\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(?:true|false|null)\\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","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\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, // // comment\n /\\/\\/.*/.source, // /* 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, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n // eslint-disable-next-line regexp/strict\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/.source, // 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(?: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|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|public|pure|real|ref|return|scope|shared|short|static|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|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\\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', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern:\n /\\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\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|extension|external|extends|factory|final|finally|for|get|hide|if|implements|interface|import|in|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 ] // Handles named imports, such as http.Client\n var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // 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 string: [\n {\n pattern: /r?(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true\n },\n {\n pattern: /r?([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\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', 'function', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'symbol'\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","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction 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(?:text|audio|video|application|multipart|image)\\/[\\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 function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n boolean: /\\b(?:true|false)\\b/,\n keyword:\n /\\b(?:match|input|output|ns|type|update|null|if|else|using|unless|at|is|as|case|do|fun|var|not|and|or)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction 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|MEASURE|EVALUATE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:TRUE|FALSE|NULL)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\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(?:Some|None)\\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","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction 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, // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ] // deleted, inserted, unchanged, diff\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 } // 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 }) // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction 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 ;(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: /[Tt]rue|[Ff]alse|[Nn]one/,\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 }) // 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","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction 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: /^\\$(?:ORIGIN|INCLUDE|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:IN|CH|CS|HS)(?=\\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","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction 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 var spaceAfterBackSlash =\n /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // 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 * @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","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n // https://www.graphviz.org/doc/info/lang.html\n ;(function (Prism) {\n var ID =\n '(?:' +\n [\n // an identifier\n /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // 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 * @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]*)(?:[ns][ew]?|[ewc_])(?![\\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","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io/en/latest/\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+\\]/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n property: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true\n },\n value: {\n pattern: /=.*/,\n alias: 'string',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n }, // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\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|attached|as|assign|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(?:True|False)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': {\n pattern: /\\b[A-Z][\\dA-Z_]*\\b/,\n alias: 'builtin'\n },\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // 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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\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","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction 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: /#.*/m,\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(?:true|false|nil)\\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","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n char: {\n pattern: /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[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(?:import|as|exposing)\\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","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n Prism.register(refractorRuby)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.erb = Prism.languages.extend('ruby', {})\n Prism.languages.insertBefore('erb', 'comment', {\n delimiter: {\n pattern: /^<%=?|%>$/,\n alias: 'punctuation'\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)+?%>/gm\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","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction 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(?:true|false)\\b/,\n keyword: /\\b(?:fun|when|case|of|end|if|receive|after|try|catch)\\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(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\\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","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction 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 // 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 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: 'keyword'\n },\n range: {\n pattern:\n /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'property',\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: 'property'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:TRUE|FALSE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function:\n /\\b(?:TODOS?|FIX(?:MES?)?|NOTES?|BUGS?|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 },\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 // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|execute|eval)?\\((?=\\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)(?!\")(?:(?:set|change|with|new)-\\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', // 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 ] // 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@', // 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', // 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?', // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative', // 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', // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&', // 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' // tafn\n ]\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $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","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\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","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern:\n /\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,\n alias: 'tag'\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)(?:type|opaque|declare|Class)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction 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: /\\.(?:TRUE|FALSE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\\b/i, // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // 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, // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|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","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n }\n ],\n string: {\n pattern:\n /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?|'(?:[^\\\\']|\\\\(?:.|\\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 '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|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\\b/,\n number: [\n /\\b0x[\\da-fA-F]+(?:un|lf|LF)?\\b/,\n /\\b0b[01]+(?:y|uy)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|u[lsy]?|UL)?\\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 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 })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\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(?:true|false)\\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 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","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction 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 alias: 'punctuation'\n },\n // T0:0:0\n punctuation: /:/\n }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction 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_name|class|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","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction 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 tag: {\n // Preceded by level and optional pointer\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'string'\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","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction 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|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|perbogh|poQbogh malja'|Potrzeba biznesowa|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|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|GeçmiÅŸ|ghantoH|Grundlage|Hannergrond|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|lut chovnatlh|lutmey|Lýsing Atburðarásar|Lýsing Dæma|Menggariskan Senario|MISHUN|MISHUN SRSLY|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|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|SituÄcija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer 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]+)(?:'ach|'a|'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|Cando|Cand|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|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ãurh|Eeldades|Ef|EÄŸer ki|Entao|Então|Entón|Entonces|En|Epi|E|É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|Kadar|Kada|Kad|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|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|NÃ¥r|När|Nato|Nhưng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|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|ugeholl|Und|Un|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|Zadani|Zadano|Zadan|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","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction 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/m,\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+/m\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","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword:\n /\\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n Prism.languages.gamemakerlanguage = Prism.languages.gml =\n Prism.languages.extend('clike', {\n keyword:\n /\\b(?:if|else|switch|case|default|break|for|repeat|while|do|until|continue|exit|return|globalvar|var|enum)\\b/,\n number:\n /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at|xor)\\b/,\n constant:\n /\\b(?:self|other|all|noone|global|local|undefined|pointer_(?:invalid|null)|action_(?:stop|restart|continue|reverse)|pi|GM_build_date|GM_version|timezone_(?:local|utc)|gamespeed_(?:fps|microseconds)|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|pre|post)|keypress|keyrelease|trigger|(?:left|right|middle|no)_button|(?:left|right|middle)_press|(?:left|right|middle)_release|mouse_(?:enter|leave|wheel_up|wheel_down)|global_(?:left|right|middle)_button|global_(?:left|right|middle)_press|global_(?:left|right|middle)_release|joystick(?:1|2)_(?:left|right|up|down|button1|button2|button3|button4|button5|button6|button7|button8)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|step_(?:normal|begin|end)|gui|gui_begin|gui_end)|vk_(?:nokey|anykey|enter|return|shift|control|alt|escape|space|backspace|tab|pause|printscreen|left|right|up|down|home|end|delete|insert|pageup|pagedown|f\\d|numpad\\d|divide|multiply|subtract|add|decimal|lshift|lcontrol|lalt|rshift|rcontrol|ralt)|mb_(?:any|none|left|right|middle)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|purple|red|silver|teal|white|yellow|orange)|fa_(?:left|center|right|top|middle|bottom|readonly|hidden|sysfile|volumeid|directory|archive)|pr_(?:pointlist|linelist|linestrip|trianglelist|trianglestrip|trianglefan)|bm_(?:complex|normal|add|max|subtract|zero|one|src_colour|inv_src_colour|src_color|inv_src_color|src_alpha|inv_src_alpha|dest_alpha|inv_dest_alpha|dest_colour|inv_dest_colour|dest_color|inv_dest_color|src_alpha_sat)|audio_(?:falloff_(?:none|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|exponent_distance|exponent_distance_clamped)|old_system|new_system|mono|stereo|3d)|cr_(?:default|none|arrow|cross|beam|size_nesw|size_ns|size_nwse|size_we|uparrow|hourglass|drag|appstart|handpoint|size_all)|asset_(?:object|unknown|sprite|sound|room|path|script|font|timeline|tiles|shader)|ds_type_(?:map|list|stack|queue|grid|priority)|ef_(?:explosion|ring|ellipse|firework|smoke|smokeup|star|spark|flare|cloud|rain|snow)|pt_shape_(?:pixel|disk|square|line|star|circle|ring|sphere|flare|spark|explosion|cloud|smoke|snow)|ps_(?:distr|shape)_(?:linear|gaussian|invgaussian|rectangle|ellipse|diamond|line)|ty_(?:real|string)|dll_(?:cdel|cdecl|stdcall)|matrix_(?:view|projection|world)|os_(?:win32|windows|macosx|ios|android|linux|unknown|winphone|win8native|psvita|ps4|xboxone|ps3|uwp)|browser_(?:not_a_browser|unknown|ie|firefox|chrome|safari|safari_mobile|opera|tizen|windows_store|ie_mobile)|device_ios_(?:unknown|iphone|iphone_retina|ipad|ipad_retina|iphone5|iphone6|iphone6plus)|device_(?:emulator|tablet)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|of_challenge_(?:win|lose|tie)|leaderboard_type_(?:number|time_mins_secs)|cmpfunc_(?:never|less|equal|lessequal|greater|notequal|greaterequal|always)|cull_(?:noculling|clockwise|counterclockwise)|lighttype_(?:dir|point)|iap_(?:ev_storeload|ev_product|ev_purchase|ev_consume|ev_restore|storeload_ok|storeload_failed|status_uninitialised|status_unavailable|status_loading|status_available|status_processing|status_restoring|failed|unavailable|available|purchased|canceled|refunded)|fb_login_(?:default|fallback_to_webview|no_fallback_to_webview|forcing_webview|use_system_account|forcing_safari)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|reaction_force_x|reaction_force_y|reaction_torque|motor_speed|angle|motor_torque|max_motor_torque|translation|speed|motor_force|max_motor_force|length_1|length_2|damping_ratio|frequency|lower_angle_limit|upper_angle_limit|angle_limits|max_length|max_torque|max_force)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_particle_flag_(?:water|zombie|wall|spring|elastic|viscous|powder|tensile|colourmixing|colormixing)|phy_particle_group_flag_(?:solid|rigid)|phy_particle_data_flag_(?:typeflags|position|velocity|colour|color|category)|achievement_(?:our_info|friends_info|leaderboard_info|info|filter_(?:all_players|friends_only|favorites_only)|type_challenge|type_score_challenge|pic_loaded|show_(?:ui|profile|leaderboard|achievement|bank|friend_picker|purchase_prompt))|network_(?:socket_(?:tcp|udp|bluetooth)|type_(?:connect|disconnect|data|non_blocking_connect)|config_(?:connect_timeout|use_non_blocking_socket|enable_reliable_udp|disable_reliable_udp))|buffer_(?:fixed|grow|wrap|fast|vbuffer|network|u8|s8|u16|s16|u32|s32|u64|f16|f32|f64|bool|text|string|seek_start|seek_relative|seek_end|generalerror|outofspace|outofbounds|invalidtype)|gp_(?:face\\d|shoulderl|shoulderr|shoulderlb|shoulderrb|select|start|stickl|stickr|padu|padd|padl|padr|axislh|axislv|axisrh|axisrv)|ov_(?:friends|community|players|settings|gamegroup|achievements)|lb_sort_(?:none|ascending|descending)|lb_disp_(?:none|numeric|time_sec|time_ms)|ugc_(?:result_success|filetype_(?:community|microtrans)|visibility_(?:public|friends_only|private)|query_RankedBy(?:Vote|PublicationDate|Trend|NumTimesReported|TotalVotesAsc|VotesUp|TextSearch)|query_(?:AcceptedForGameRankedByAcceptanceDate|FavoritedByFriendsRankedByPublicationDate|CreatedByFriendsRankedByPublicationDate|NotYetRated)|sortorder_CreationOrder(?:Desc|Asc)|sortorder_(?:TitleAsc|LastUpdatedDesc|SubscriptionDateDesc|VoteScoreDesc|ForModeration)|list_(?:Published|VotedOn|VotedUp|VotedDown|WillVoteLater|Favorited|Subscribed|UsedOrPlayed|Followed)|match_(?:Items|Items_Mtx|Items_ReadyToUse|Collections|Artwork|Videos|Screenshots|AllGuides|WebGuides|IntegratedGuides|UsableInGame|ControllerBindings))|vertex_usage_(?:position|colour|color|normal|texcoord|textcoord|blendweight|blendindices|psize|tangent|binormal|fog|depth|sample)|vertex_type_(?:float\\d|colour|color|ubyte4)|layerelementtype_(?:undefined|background|instance|oldtilemap|sprite|tilemap|particlesystem|tile)|tile_(?:rotate|flip|mirror|index_mask)|input_type|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|(?:obj|scr|spr|rm)\\w+)\\b/,\n variable:\n /\\b(?:x|y|(?:x|y)(?:previous|start)|(?:h|v)speed|direction|speed|friction|gravity|gravity_direction|path_(?:index|position|positionprevious|speed|scale|orientation|endaction)|object_index|id|solid|persistent|mask_index|instance_(?:count|id)|alarm|timeline_(?:index|position|speed|running|loop)|visible|sprite_(?:index|width|height|xoffset|yoffset)|image_(?:number|index|speed|depth|xscale|yscale|angle|alpha|blend)|bbox_(?:left|right|top|bottom)|layer|phy_(?:rotation|(?:position|linear_velocity|speed|com|collision|col_normal)_(?:x|y)|angular_(?:velocity|damping)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|working_directory|webgl_enabled|view_(?:(?:y|x|w|h)view|(?:y|x|w|h)port|(?:v|h)(?:speed|border)|visible|surface_id|object|enabled|current|angle)|undefined|transition_(?:steps|kind|color)|temp_directory|show_(?:score|lives|health)|secure_mode|score|room_(?:width|speed|persistent|last|height|first|caption)|room|pointer_(?:null|invalid)|os_(?:version|type|device|browser)|mouse_(?:y|x|lastbutton|button)|lives|keyboard_(?:string|lastkey|lastchar|key)|iap_data|health|gamemaker_(?:version|registered|pro)|game_(?:save|project|display)_(?:id|name)|fps_real|fps|event_(?:type|object|number|action)|error_(?:occurred|last)|display_aa|delta_time|debug_mode|cursor_sprite|current_(?:year|weekday|time|second|month|minute|hour|day)|caption_(?:score|lives|health)|browser_(?:width|height)|background_(?:yscale|y|xscale|x|width|vtiled|vspeed|visible|showcolour|showcolor|index|htiled|hspeed|height|foreground|colour|color|blend|alpha)|async_load|application_surface|argument(?:_relitive|_count|\\d)|argument|global|local|self|other)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\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(?:_|iota|nil|true|false)\\b/,\n number: /(?:\\b0x[a-f\\d]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,\n operator:\n /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin:\n /\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/\n })\n delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction 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(?:true|false)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /[A-Z]\\w*Input(?=!?.*$)/m,\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 * 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 * 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 * 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 * 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 * 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++] // 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 currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\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 addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\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","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: [\n {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern:\n /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true\n },\n {\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: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|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 }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:setup|given|when|then|and|cleanup|expect|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Handle string interpolation\n Prism.hooks.add('wrap', function (env) {\n if (env.language === 'groovy' && env.type === 'string') {\n var delimiter = env.content.value[0]\n if (delimiter != \"'\") {\n var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n if (delimiter === '$') {\n pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n } // To prevent double HTML-encoding we have to decode env.content first\n env.content.value = env.content.value\n .replace(/</g, '<')\n .replace(/&/g, '&')\n env.content = Prism.highlight(env.content.value, {\n expression: {\n pattern: pattern,\n lookbehind: true,\n inside: Prism.languages.groovy\n }\n })\n env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n }\n }\n })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\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: 'variable'\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 rest: Prism.languages.ruby\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)))+' // 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: 'variable'\n },\n rest: Prism.languages[filter.language]\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/i,\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(?:true|false)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/i,\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)\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n Prism.languages.haxe = Prism.languages.extend('clike', {\n // Strings can be multi-line\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^}]+\\})/,\n lookbehind: true,\n inside: {\n interpolation: {\n pattern: /^\\$\\w*/,\n alias: 'variable'\n } // See rest below\n }\n }\n }\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|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\\.)\\b/,\n operator: /\\.{3}|\\+\\+?|-[->]?|[=!]=?|&&?|\\|\\|?|<[<=]?|>[>=]?|[*\\/%~^]/\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[igmsu]*/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#\\w+/,\n alias: 'builtin'\n },\n metadata: {\n pattern: /@:?\\w+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'variable'\n }\n })\n Prism.languages.haxe['string'].inside['interpolation'].inside.rest =\n Prism.languages.haxe\n delete Prism.languages.haxe['class-name']\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction 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 /(?:resource|data)\\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 /(?:provider|provisioner|variable|output|module|backend)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n inside: {\n type: {\n pattern:\n /(provider|provisioner|variable|output|module|backend)\\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(?:terraform|var|self|count|module|path|data|local)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:terraform|var|self|count|module|path|data|local)\\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(?:true|false)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction 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|RasterizerState|RenderTargetView|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|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/, // 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","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n Prism.languages.hpkp = {\n directive: {\n pattern:\n /\\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256=\"[a-zA-Z\\d+=/]+\"|(?:max-age|report-uri)=|report-to )/,\n alias: 'keyword'\n },\n safe: {\n pattern: /\\b\\d{7,}\\b/,\n alias: 'selector'\n },\n unsafe: {\n pattern: /\\b\\d{1,6}\\b/,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:max-age=|includeSubDomains|preload)/,\n alias: 'keyword'\n },\n safe: {\n pattern: /\\b\\d{8,}\\b/,\n alias: 'selector'\n },\n unsafe: {\n pattern: /\\b\\d{1,7}\\b/,\n alias: 'function'\n }\n }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n ;(function (Prism) {\n Prism.languages.http = {\n 'request-line': {\n pattern:\n /^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[0-9.]+/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\\/[0-9.]+/,\n lookbehind: true,\n alias: 'property'\n }\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/[0-9.]+ \\d+ .+/m,\n inside: {\n // HTTP Version\n 'http-version': {\n pattern: /^HTTP\\/[0-9.]+/,\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 // HTTP header name\n 'header-name': {\n pattern: /^[\\w-]+:(?=.)/m,\n alias: 'keyword'\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 } // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\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 } // 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 '(content-type:\\\\s*' +\n pattern +\n '(?:(?:\\\\r\\\\n?|\\\\n).+)*)(?:\\\\r?\\\\n|\\\\r){2}[\\\\s\\\\S]*',\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header-name', options)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction 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 +\\-.])*\"/i,\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|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|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+)/i,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction 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 ;(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: /^(?:zero|one|two|few|many|other)$/\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(?:number|date|time|spellout|ordinal|duration)\\b/,\n alias: 'keyword'\n },\n 'arg-skeleton': {\n pattern: /(,\\s*)::[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'arg-style': {\n pattern:\n /(,\\s*)(?:short|medium|long|full|integer|currency|percent)(?=\\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","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction 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 'import-statement': {\n pattern: /(^\\s*)import\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n lookbehind: true\n },\n builtin: undefined\n })\n Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern:\n /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: 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 /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:GLOBAL|INPUT|PUTPUT|IN_OUT|ACCESS|TEMP|EXTERNAL|CONFIG)|VAR|METHOD|PROPERTY)\\b/i,\n keyword:\n /\\b(?:(?:END_)?(?:IF|WHILE|REPEAT|CASE|FOR)|ELSE|FROM|THEN|ELSIF|DO|TO|BY|PRIVATE|PUBLIC|PROTECTED|CONSTANT|RETURN|EXIT|CONTINUE|GOTO|JMP|AT|RETAIN|NON_RETAIN|TASK|WITH|UNTIL|USING|EXTENDS|IMPLEMENTS|GET|SET|__TRY|__CATCH|__FINALLY|__ENDTRY)\\b/,\n variable:\n /\\b(?:AT|BOOL|BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT|L?REAL|TIME(?:_OF_DAY)?|TOD|DT|DATE(?:_AND_TIME)?|STRING|ARRAY|ANY|POINTER)\\b/,\n symbol: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n number:\n /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:T|D|DT|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:TRUE|FALSE|NULL)\\b/,\n function: /\\w+(?=\\()/,\n operator:\n /(?:S?R?:?=>?|&&?|\\*\\*?|<=?|>=?|[-:^/+])|\\b(?:OR|AND|MOD|NOT|XOR|LE|GE|EQ|NE|GT|LT)\\b/,\n punctuation: /[();]/,\n type: {\n pattern: /#/,\n alias: 'selector'\n }\n }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction 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","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction 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 } // See rest below\n }\n }\n }\n },\n comment: {\n pattern: /\\[[^\\[\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:volume|book|part(?! of)|chapter|section|table)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern:\n /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern:\n /(^|[^-])\\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\\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|unless|the story)|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(?: on| off)?)|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(?:y|ies)|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 // 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","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction 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 comment: {\n pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n lookbehind: true\n },\n header: {\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","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n Prism.languages.io = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\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|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|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|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin:\n /\\b(?:Array|AudioDevice|AudioMixer|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|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum)\\b/,\n boolean: /\\b(?:true|false|nil)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator:\n /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:return|and|or|not)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n Prism.languages.j = {\n comment: /\\bNB\\..*/,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|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+)?(?:(?:[ejpx]|ad|ar)_?\\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","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\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|throws|see|link|linkplain|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","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\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 inside: {\n keyword: {\n pattern:\n /^(\\s*)(?:(?: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: /[a-z]\\w*/,\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 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: /\\d+/,\n alias: 'number'\n }\n }\n }, // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Unknown Source|Native Method)$/\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: /(?:[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 inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction 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(?:true|false)\\b/,\n keyword: /\\bin\\b/,\n punctuation: /[{}[\\](),.]/\n }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword:\n /\\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\\b/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[:?\\/%^]/,\n punctuation: /[,.]/,\n builtin:\n /\\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\\b/,\n symbol: /[|;@]/\n })\n delete Prism.languages.jolie['class-name']\n Prism.languages.insertBefore('jolie', 'keyword', {\n function: {\n pattern: /((?:\\b(?:outputPort|inputPort|in|service|courier)\\b|@)\\s*)\\w+/,\n lookbehind: true\n },\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 'with-extension': {\n pattern: /\\bwith\\s+\\w+/,\n inside: {\n keyword: /\\bwith\\b/\n }\n },\n function: {\n pattern: /\\w+/\n },\n punctuation: {\n pattern: /,/\n }\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 pattern: /,/\n },\n function: {\n pattern: /\\w+/\n },\n symbol: {\n pattern: /=>/\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(/__/g, function () {\n return interpolation\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 greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\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(?:true|false)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|or|not)\\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","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\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(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|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 * 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|for|finally|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|location|navigator|performance|(?:local|session)Storage|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\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] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string'] // 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 * 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 ), // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:md|markdown)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ), // sql`...`\n createTemplate('sql', /\\bsql/.source), // vanilla template string\n templateString\n ].filter(Boolean)\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 * 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 * 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 /** @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 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 * 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 // 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 }) // 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('') // 2. Tokenize the embedded code\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\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} */\n 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 * 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 * 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 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 * 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","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n var parameterPrefix =\n '(@(?:param|arg|argument|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|extends|class|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","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction 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","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction 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 /(at\\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: /:[0-9]+(?::[0-9]+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction 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/#man-characters-1\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])*\"|(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\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(?:true|false)\\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(?:(?:NaN|Inf)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n Prism.languages.keyman = {\n comment: /\\bc\\s.*/i,\n function:\n /\\[\\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\\s+)*(?:[TKU]_[\\w?]+|\".+?\"|'.+?')\\s*\\]/i,\n // virtual key\n string: /(\"|').*?\\1/,\n bold: [\n // header statements, system stores and variable system stores\n /&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\\b/i,\n /\\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\\b/i\n ],\n keyword:\n /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\\b/i,\n // rule keywords\n atrule: /\\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\\b/i,\n // structural keywords\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n // U+####, x###, d### characters and numbers\n operator: /[+>\\\\,()]/,\n tag: /\\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes\n }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\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 Prism.languages.insertBefore('kotlin', 'string', {\n 'raw-string': {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n alias: 'string' // See interpolation below\n }\n })\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 var interpolation = [\n {\n pattern: /\\$\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^\\$\\{|\\}$/,\n alias: 'variable'\n },\n rest: Prism.languages.kotlin\n }\n },\n {\n pattern: /\\$\\w+/,\n alias: 'variable'\n }\n ]\n Prism.languages.kotlin['string'].inside = Prism.languages.kotlin[\n 'raw-string'\n ].inside = {\n interpolation: interpolation\n }\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction 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 * 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 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","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction 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: /%.*/m,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern:\n /(\\\\begin\\{((?:verbatim|lstlisting)\\*?)\\})[\\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\\{((?:equation|math|eqnarray|align|multline|gather)\\*?)\\})[\\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|end|ref|cite|label|usepackage|documentclass)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\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 /(\\\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n ld: {\n pattern: /^\\{(?:[=_]|\\/?(?!\\d|\\w+\\()\\w+)?/,\n inside: {\n punctuation: /^\\{\\/?/,\n tag: {\n pattern: /.+/,\n alias: 'important'\n }\n }\n },\n rd: {\n pattern: /\\}$/,\n inside: {\n punctuation: /.+/\n }\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","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\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 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*:)/i,\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 }, // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression =\n /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source // 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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction 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|continue|cycle|decrement|echo|else|elsif|(?:end)?(?:capture|case|comment|for|form|if|paginate|style|raw|tablerow|unless)|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\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(?:true|false|nil)\\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|or|contains(?=\\s))\\b/,\n punctuation: /[.,\\[\\]()]/\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","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n ;(function (Prism) {\n // Functions to construct regular expressions\n // simple form\n // e.g. (interactive ... or (interactive)\n function simple_form(name) {\n return RegExp('(\\\\()' + name + '(?=[\\\\s\\\\)])')\n } // booleans and numbers\n function primitive(pattern) {\n return RegExp('([\\\\s([])' + pattern + '(?=[\\\\s)])')\n } // Patterns in regular expressions\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 = '[-+*/_~!@$%^=<>{}\\\\w]+' // symbol starting with & used in function arguments\n var marker = '&' + symbol // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\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 '(?:(?:lexical-)?let\\\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:for|do|collect|return|finally|append|concat|in|by)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form('declare'),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form('interactive'),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive('(?:t|nil)'),\n lookbehind: true\n },\n number: {\n pattern: primitive('[-+]?\\\\d+(?:\\\\.\\\\d*)?'),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:var|const|custom|group)\\\\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-)?(?:defun\\\\*?|defmacro)\\\\s+' +\n symbol +\n '\\\\s+\\\\([\\\\s\\\\S]*?\\\\)'\n ),\n lookbehind: 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 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 /(?:['`,]?\\(|[)\\[\\]])/, // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n rest: {\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n varform: {\n pattern: RegExp(par + symbol + '\\\\s+\\\\S[\\\\s\\\\S]*' + endpar),\n lookbehind: true,\n inside: {\n string: language.string,\n boolean: language.boolean,\n number: language.number,\n symbol: language.symbol,\n punctuation: /[()]/\n }\n }\n }\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + '[\\\\s\\\\S]*' + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:rest|body)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:optional|aux)\\\\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","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction 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 } // 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(?:nt| not)?|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 }, // 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","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:true|false)\\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","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction 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 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 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(?:https?|ftp|file):\\/\\/[^\\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/i,\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}|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[-/ ]\\d{2,4}T?\\b/\n .source +\n '|' +\n /\\b(?:(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:\\s{1,2}(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))?|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\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(?:true|false|null)\\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","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction 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 )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\\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)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern:\n /(^|\\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\\?|YA RLY|NO WAI|OIC|MEBBE|WTF\\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:WIN|FAIL)(?=\\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|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction 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 // Built-in target names\n builtin: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n // Targets\n symbol: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n keyword: [\n // Directives\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/, // Functions\n {\n pattern:\n /(\\()(?:addsuffix|abspath|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(?:s|list)?)(?=[ \\t])/,\n lookbehind: true\n }\n ],\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\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 'font-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 // 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 // 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 // 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(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\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 * 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 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 // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // 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 // get the textContent of the given env HTML\n var tempContainer = document.createElement('div')\n tempContainer.innerHTML = env.content.value\n var code = tempContainer.textContent\n env.content = Prism.highlight(code, grammar, codeLang)\n }\n })\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction 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(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n Prism.languages.mel = {\n comment: /\\/\\/.*/,\n code: {\n pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n } // See rest below\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 /\\b\\w+(?=\\()|\\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n operator: [\n /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\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.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction 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|equals|end|environ|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(?:y|ies)|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","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\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', // 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', // 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', // 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', // 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(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\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","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n Prism.languages.monkey = {\n string: /\"[^\"\\r\\n]*\"/,\n comment: [\n {\n pattern: /^#Rem\\s[\\s\\S]*?^#End/im,\n greedy: true\n },\n {\n pattern: /'.+/,\n greedy: true\n }\n ],\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n alias: 'comment'\n },\n function: /\\b\\w+(?=\\()/,\n 'type-char': {\n pattern: /(\\w)[?%#$]/,\n lookbehind: true,\n alias: 'variable'\n },\n number: {\n pattern:\n /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\\b/i,\n operator:\n /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction 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 }, // 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\\.(?:running|create|resume|status|wrap|yield)|debug\\.(?:debug|gethook|getinfo|getlocal|getupvalue|setlocal|setupvalue|sethook|traceback|getfenv|getmetatable|getregistry|setfenv|setmetatable)|dofile|error|getfenv|getmetatable|io\\.(?:stdin|stdout|stderr|close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|sin|cos|tan|deg|exp|floor|log|log10|max|min|fmod|modf|cosh|sinh|tanh|pow|rad|sqrt|frexp|ldexp|random|randomseed|pi)|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|len|lower|rep|sub|upper|format|gsub|gmatch|match|reverse)|table\\.(?:maxn|concat|sort|insert|remove)|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","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n Prism.languages.n1ql = {\n comment: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)/,\n parameter: /\\$[\\w.]+/,\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 function:\n /\\b(?:ABS|ACOS|ARRAY_AGG|ARRAY_APPEND|ARRAY_AVG|ARRAY_CONCAT|ARRAY_CONTAINS|ARRAY_COUNT|ARRAY_DISTINCT|ARRAY_FLATTEN|ARRAY_IFNULL|ARRAY_INSERT|ARRAY_INTERSECT|ARRAY_LENGTH|ARRAY_MAX|ARRAY_MIN|ARRAY_POSITION|ARRAY_PREPEND|ARRAY_PUT|ARRAY_RANGE|ARRAY_REMOVE|ARRAY_REPEAT|ARRAY_REPLACE|ARRAY_REVERSE|ARRAY_SORT|ARRAY_STAR|ARRAY_SUM|ARRAY_SYMDIFF|ARRAY_SYMDIFFN|ARRAY_UNION|ASIN|ATAN|ATAN2|AVG|BASE64|BASE64_DECODE|BASE64_ENCODE|BITAND|BITCLEAR|BITNOT|BITOR|BITSET|BITSHIFT|BITTEST|BITXOR|CEIL|CLOCK_LOCAL|CLOCK_MILLIS|CLOCK_STR|CLOCK_TZ|CLOCK_UTC|CONTAINS|CONTAINS_TOKEN|CONTAINS_TOKEN_LIKE|CONTAINS_TOKEN_REGEXP|COS|COUNT|CURL|DATE_ADD_MILLIS|DATE_ADD_STR|DATE_DIFF_MILLIS|DATE_DIFF_STR|DATE_FORMAT_STR|DATE_PART_MILLIS|DATE_PART_STR|DATE_RANGE_MILLIS|DATE_RANGE_STR|DATE_TRUNC_MILLIS|DATE_TRUNC_STR|DECODE_JSON|DEGREES|DURATION_TO_STR|E|ENCODED_SIZE|ENCODE_JSON|EXP|FLOOR|GREATEST|HAS_TOKEN|IFINF|IFMISSING|IFMISSINGORNULL|IFNAN|IFNANORINF|IFNULL|INITCAP|ISARRAY|ISATOM|ISBOOLEAN|ISNUMBER|ISOBJECT|ISSTRING|IsBitSET|LEAST|LENGTH|LN|LOG|LOWER|LTRIM|MAX|META|MILLIS|MILLIS_TO_LOCAL|MILLIS_TO_STR|MILLIS_TO_TZ|MILLIS_TO_UTC|MILLIS_TO_ZONE_NAME|MIN|MISSINGIF|NANIF|NEGINFIF|NOW_LOCAL|NOW_MILLIS|NOW_STR|NOW_TZ|NOW_UTC|NULLIF|OBJECT_ADD|OBJECT_CONCAT|OBJECT_INNER_PAIRS|OBJECT_INNER_VALUES|OBJECT_LENGTH|OBJECT_NAMES|OBJECT_PAIRS|OBJECT_PUT|OBJECT_REMOVE|OBJECT_RENAME|OBJECT_REPLACE|OBJECT_UNWRAP|OBJECT_VALUES|PAIRS|PI|POLY_LENGTH|POSINFIF|POSITION|POWER|RADIANS|RANDOM|REGEXP_CONTAINS|REGEXP_LIKE|REGEXP_POSITION|REGEXP_REPLACE|REPEAT|REPLACE|REVERSE|ROUND|RTRIM|SIGN|SIN|SPLIT|SQRT|STR_TO_DURATION|STR_TO_MILLIS|STR_TO_TZ|STR_TO_UTC|STR_TO_ZONE_NAME|SUBSTR|SUFFIXES|SUM|TAN|TITLE|TOARRAY|TOATOM|TOBOOLEAN|TOKENS|TONUMBER|TOOBJECT|TOSTRING|TRIM|TRUNC|TYPE|UPPER|WEEKDAY_MILLIS|WEEKDAY_STR)(?=\\s*\\()/i,\n keyword:\n /\\b(?:ALL|ALTER|ANALYZE|AS|ASC|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|CONNECT|CONTINUE|CORRELATE|COVER|CREATE|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FLATTEN|FOR|FORCE|FROM|FUNCTION|GRANT|GROUP|GSI|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LAST|LEFT|LET|LETTING|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NULL|NUMBER|OBJECT|OFFSET|ON|OPTION|ORDER|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROCEDURE|PUBLIC|RAW|REALM|REDUCE|RENAME|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|SATISFIES|SCHEMA|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TO|TRANSACTION|TRIGGER|TRUNCATE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WITH|WORK|XOR)\\b/i,\n boolean: /\\b(?:TRUE|FALSE)\\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","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\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(?:any|Array|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","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:CHIP|IN|OUT|PARTS|BUILTIN|CLOCKED)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction 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 /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\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 * @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 * @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","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction 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|FLOAT|DEFAULT).*$/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|sp|si|di)|[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","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction 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: 'atrule'\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])(?:true|false|yes|no)(?=$|[\\]}),:=\\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","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction 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 /@(?:require|namespace|pattern|search|inside|outside|having|where)\\b/,\n 'standard-pattern': {\n pattern:\n /\\b(?:Word|Punct|Symbol|Space|LineBreak|Start|End|Alpha|AlphaNum|Num|NumAlpha|Blank|WordBreak|Any)(?:\\([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","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction 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 },\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 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 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","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n Prism.languages.nim = {\n comment: /#.*/,\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n string: {\n pattern:\n /(?:(?:\\b(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")|'(?:\\\\(?:\\d+|x[\\da-fA-F]{2}|.)|[^'])')/,\n greedy: true\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 function: {\n pattern:\n /(?:(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators inside backticks\n ignore: {\n pattern: /`[^`\\r\\n]+`/,\n inside: {\n punctuation: /`/\n }\n },\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|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n Prism.languages.nix = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\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: {\n antiquotation: {\n pattern: /^\\$(?=\\{)/,\n alias: 'variable'\n } // See rest below\n }\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: 'variable'\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(?:url|Tarball)|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(?:true|false)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside.rest =\n Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction 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.02\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: 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|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|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|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|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|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|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|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\\b/m,\n lookbehind: true\n },\n property:\n /\\b(?: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|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)\\b/,\n constant: /\\$\\{[\\w\\.:\\^-]+\\}|\\$\\([\\w\\.:\\^-]+\\)/i,\n variable: /\\$\\w+/i,\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|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string:\n /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n keyword:\n /\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\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","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n Prism.languages.ocaml = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: [\n {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,\n greedy: true\n }\n ],\n number:\n /\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?[\\d_]+)?)/i,\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'important'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'function'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'variable'\n },\n module: {\n pattern: /\\b[A-Z]\\w+/,\n alias: 'variable'\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 // 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","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction 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(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|auto|break|case|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|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)|(?:LOCAL|GLOBAL)_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|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF?|INFINITY|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|(?:UCHAR|USHRT|UINT|ULONG)_MAX|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN)\\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|short|int|long)|float|double)(?: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_(?:TRUE|FALSE)\\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(?:16|24|8|_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(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes) // 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|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n // https://qiskit.github.io/openqasm/grammar/index.html\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(?: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|CX|OPENQASM|U)\\b|#pragma\\b/,\n 'class-name':\n /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n function: /\\b(?:sin|cos|tan|exp|ln|sqrt|rotl|rotr|popcount)\\b(?=\\s*\\()/,\n constant: /\\b(?:pi|tau|euler)\\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","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n Prism.languages.oz = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\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: /\\b[A-Z][A-Za-z\\d]*|`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\b\\w+(?=:)/,\n operator:\n /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\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(?:true|false)\\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","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n // Based on Free Pascal\n /* TODO\nSupport inline asm ?\n*/\n Prism.languages.pascal = {\n comment: [/\\(\\*[\\s\\S]+?\\*\\)/, /\\{[\\s\\S]+?\\}/, /\\/\\/.*/],\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\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, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/i,\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.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\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(?:True|False)\\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*\\()/i,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // 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","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction 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: /YES|NO/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n /\\bREM[^;]*;/.source, // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ 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|implements|import|instance|if|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","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n // q/.../\n {\n pattern:\n /\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // q a...a\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // q(...)\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,\n greedy: true\n }, // q{...}\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,\n greedy: true\n }, // q[...]\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,\n greedy: true\n }, // q<...>\n {\n pattern: /\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,\n greedy: true\n }, // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\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 // m/.../\n {\n pattern:\n /\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n greedy: true\n }, // m a...a\n {\n pattern:\n /\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,\n greedy: true\n }, // m(...)\n {\n pattern: /\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,\n greedy: true\n }, // m{...}\n {\n pattern: /\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,\n greedy: true\n }, // m[...]\n {\n pattern: /\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,\n greedy: true\n }, // m<...>\n {\n pattern: /\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,\n greedy: true\n }, // The lookbehinds prevent -s from breaking\n // FIXME We don't handle change of separator like s(...)[...]\n // s/.../.../\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s a...a...a\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s(...)(...)\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s{...}{...}\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s[...][...]\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\n }, // s<...><...>\n {\n pattern:\n /(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,\n lookbehind: true,\n greedy: true\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,.;})&|\\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n /[&*$@%]\\^[A-Z_]/, // ${...}\n /[&*$@%]#?(?=\\{)/, // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/i, // $1\n /[&*$@%]\\d+/, // $_, @_, %!\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 vstring: {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /sub \\w+/i,\n inside: {\n keyword: /sub/\n }\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(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: /\\$this\\b/,\n global:\n /\\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /static|self|parent/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n Prism.register(refractorPhp)\n Prism.register(refractorJavadoclike)\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(?:callback|resource|boolean|integer|double|object|string|array|false|float|mixed|bool|null|self|true|void|int)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var plsql = (Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: [/\\/\\*[\\s\\S]*?\\*\\//, /--.*/]\n }))\n var keyword = plsql['keyword']\n if (!Array.isArray(keyword)) {\n keyword = plsql['keyword'] = [keyword]\n }\n keyword.unshift(\n /\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i\n )\n var operator = plsql['operator']\n if (!Array.isArray(operator)) {\n operator = plsql['operator'] = [operator]\n }\n operator.unshift(/:=/)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/).*)/,\n lookbehind: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true,\n alias: 'variable'\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:First|Last|All)\\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\\.(?:Inner|LeftOuter|RightOuter|FullOuter|LeftAnti|RightAnti)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:List|Ignore|Error)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|PairwiseHash|SortMerge|LeftHash|RightHash|LeftIndex|RightIndex)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Double|Decimal)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf8|Utf16|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Int8|Int16|Int32|Int64|Function|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:true|false)\\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.])(?!\\d)[\\w.]+(?=\\s*\\()/,\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|type)\\b/,\n alias: 'variable'\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","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction 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: {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n // Populated at end of file\n inside: {}\n }\n }\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: /\\$(?:true|false)\\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?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n }) // Variable interpolation inside strings, and nested expressions\n var stringInside = powershell.string[0].inside\n stringInside.boolean = powershell.boolean\n stringInside.variable = powershell.variable\n stringInside.function.inside = powershell\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\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: 'variable'\n }\n }) // Spaces are allowed between function name and parenthesis\n Prism.languages.processing['function'] = /\\b\\w+(?=\\s*\\()/ // Class-names is not styled by default\n Prism.languages.processing['class-name'].alias = 'variable'\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: [/%.+/, /\\/\\*[\\s\\S]*?\\*\\//],\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/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n variable: /\\b[A-Z_]\\w*/,\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","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction 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 ;(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 ] // 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 ] // 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|unless|or)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n 'attr-value': {\n pattern:\n /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true\n },\n 'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n punctuation: /[=:]/\n }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n ;(function (Prism) {\n var builtinTypes =\n /\\b(?:double|float|[su]?int(?:32|64)|s?fixed(?:32|64)|bool|string|bytes)\\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","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction 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|FALSE|False|false|NO|No|no|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_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|TRUE|True|true|VOID|WARN)\\b/,\n variable: /\\b(?:errno|exit_status|PslDebug)\\b/,\n builtin: {\n pattern:\n /\\b(?:acos|add_diary|annotate|annotate_get|asctime|asin|atan|atexit|ascii_to_ebcdic|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|destroy_lock|dump_hist|date|destroy|difference|dget_text|dcget_text|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|floor|fmod|full_discovery|file|fopen|ftell|fseek|grep|get_vars|getenv|get|get_chan_info|get_ranges|get_text|gethostinfo|getpid|getpname|history_get_retention|history|index|int|is_var|intersection|isnumber|internal|in_transition|join|kill|length|lines|lock|lock_info|log|loge|log10|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|num_consoles|nthargf|nthline|nthlinef|num_bytes|print|proc_exists|process|popen|printf|pconfig|poplines|pow|PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|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_alarm_ranges|set_locale|share|sin|sinh|sleep|sopen|sqrt|srandom|subset|set|substr|system|sprintf|sort|snmp_agent_config|_snmp_debug|snmp_agent_stop|snmp_agent_start|snmp_h_set|snmp_h_get_next|snmp_h_get|snmp_set|snmp_walk|snmp_get_next|snmp_get|snmp_config|snmp_close|snmp_open|snmp_trap_receive|snmp_trap_ignore|snmp_trap_listen|snmp_trap_send|snmp_trap_raise_std_trap|snmp_trap_register_im|splitline|strcasecmp|str_repeat|trim|tail|tan|tanh|time|tmpnam|tolower|toupper|trace_psl_process|text_domain|unlock|unique|union|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: {\n pattern: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i\n },\n number: /\\b(?:0x[0-9a-f]+|[0-9]+(?:\\.[0-9]+)?)\\b/i,\n operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n punctuation: /[(){}\\[\\];,]/\n }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\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 Prism.languages.pug = {\n // Multiline stuff should appear before the rest\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 }\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 ]*)(?:if|unless|else|case|when|default|each|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: /^(?:if|unless|else|case|when|default|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:block|extends|include|append|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 }, // 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 // 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 rest: Prism.languages[filter.language]\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction 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(?= *$)/ // See interpolation below\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 }, // 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(?:true|false)\\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","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\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(?: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|NULL|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_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_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|short|sentry|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 }) // 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","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\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 // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword:\n /\\b(?:declarecdll|declaredll|compilerselect|compilercase|compilerdefault|compilerendselect|compilererror|enableexplicit|disableexplicit|not|and|or|xor|calldebugger|debuglevel|enabledebugger|disabledebugger|restore|read|includepath|includebinary|threaded|runtime|with|endwith|structureunion|endstructureunion|align|newlist|newmap|interface|endinterface|extends|enumeration|endenumeration|swap|foreach|continue|fakereturn|goto|gosub|return|break|module|endmodule|declaremodule|enddeclaremodule|declare|declarec|prototype|prototypec|enableasm|disableasm|dim|redim|data|datasection|enddatasection|to|procedurereturn|debug|default|case|select|endselect|as|import|endimport|importc|compilerif|compilerelse|compilerendif|compilerelseif|end|structure|endstructure|while|wend|for|next|step|if|else|elseif|endif|repeat|until|procedure|proceduredll|procedurec|procedurecdll|endprocedure|protected|shared|static|global|define|includefile|xincludefile|macro|endmacro)\\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 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 keyword: [\n /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n /\\b(?:CPU|FLOAT|DEFAULT)\\b.*/\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|sp|si|di)|[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","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction 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(?:import|as|hiding)\\b/\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 })\n Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|rf|fr)(?:(\"\"\"|''')[\\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: //,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|rb|br)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|rb|br)?(\"|')(?:\\\\.|(?!\\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+)*/im,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|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(?:True|False|None)\\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 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","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction 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 }, // 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 }, // 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]:)(?:0[wn]|0W[hj]?|0N[hje]?|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","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\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 }) // 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: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\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(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:true|false)\\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","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\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 * 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 } // 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 } // 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 ) // 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 } // 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|\\bor\\b|\\bnot\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n punctuation: /::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('qsharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\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","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction 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(?:TRUE|FALSE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:NaN|Inf)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword:\n /\\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction 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","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\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(?:mod|land|lor|lxor|lsl|lsr|asr)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n character: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n alias: 'string'\n },\n constructor: {\n // Negative look-ahead prevents from matching things like String.capitalize\n pattern: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n alias: 'variable'\n },\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n }) // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction 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]+\\}|c[a-zA-Z]|0[0-7]{0,2}|[123][0-7]{2}|.)/\n var charClass = {\n pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var charClassWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n charset: {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'charset-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'charset-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 charclass: charClassWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n charclass: charClass,\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 // (), (?<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","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n // https://www.openpolicyagent.org/docs/latest/policy-reference/\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|package|not|null|some|with|set(?=\\s*\\())\\b/,\n boolean: /\\b(?:true|false)\\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","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n Prism.languages.renpy = {\n // TODO Write tests.\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern:\n /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2|(?:^#?(?:[0-9a-fA-F]{6}|(?:[0-9a-fA-F]){3})$)/m,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\()/i,\n property:\n /\\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\\b/,\n tag: /\\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\\b|\\$/,\n keyword:\n /\\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\\b/,\n boolean: /\\b(?:[Tt]rue|[Ff]alse)\\b/,\n number:\n /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction 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 '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 }, // 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","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n Prism.languages.rip = {\n comment: /#.*/,\n keyword:\n /(?:=>|->)|\\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:true|false)\\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 character: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n regex: {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern:\n /(^|\\s)(?:(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{)|(?:external|import)\\b)/,\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","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction 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 } // 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","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction 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 alias: 'string'\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|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(?: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|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|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+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\\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","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction 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|SYMGLOBL|SYMLOCAL|SYMEXIST|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+|quit|run|data(?!=))\\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'$.]+/im,\n inside: {\n keyword: /^(?:format|put)(?==)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/i,\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|parseonly|norun))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets =\n /accessControl|cdm|aggregation|aStore|ruleMining|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|sccasl|clustering|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deepLearn|deepNeural|varReduce|simSystem|ds2|deduplication|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gam|gleam|graphSemiSupLearn|gVarCluster|hiddenMarkovModel|hyperGroup|image|iml|ica|kernalPca|langModel|ldaTopic|sparseML|mlTools|mixed|modelPublishing|mbc|network|optNetwork|neuralNet|nonlinear|nmf|nonParametricBayes|optimization|panel|pls|percentile|pca|phreg|qkb|qlim|quantreg|recommend|tsReconcile|deepRnn|regression|reinforcementLearn|robustPca|sampling|sparkEmbeddedProcess|search(?:Analytics)?|sentimentAnalysis|sequence|configuration|session(?:Prop)?|severity|simple|smartData|sandwich|spatialreg|stabilityMonitoring|spc|loadStreams|svDataDescription|svm|table|conditionalRandomFields|text(?:Rule(?:Develop|Score)|Mining|Parse|Topic|Util|Filters|Frequency)|tsInfo|timeData|transpose|uniTimeSeries/\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|end(?:source|comp)?|entryTitle|else|eval(?:uate)?|exec(?:ute)?|exit|fill(?:attrs)?|file(?:name)?|flist|fnc|function(?:list)?|goto|global|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|name|noobs|nowd|_?null_|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|put|print|raise|ranexp|rannor|rbreak|retain|return|select|set|session|sessref|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|yaxisopts|y2axisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^([ \\t]*)(?:(?:data)?lines|cards);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:(?:data)?lines|cards)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern:\n /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|run|data);|(?![\\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|exec(?:ute)?|begin|commit|rollback|reset|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+|quit|run|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<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+|quit|run|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|parseonly|norun))?)(?:<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|=))%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:NRBQUOTE|NRQUOTE|NRSTR|BQUOTE|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/i\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|ne|gt|lt|ge|le|in|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/i,\n punctuation: punctuation\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\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 }\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 inside: {\n atrule: /(?:@[\\w-]+|[+=])/m\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|or|not)\\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 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 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 // 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]+)*)*/,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction 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|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|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(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\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-]+/ // 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|[^}][^:{}]*[:{][^}]))/m,\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 /@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\\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|with|show|hide)\\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(?:true|false)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction 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 var strings = [\n // normal string\n /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n /'[^']*'/.source,\n /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // 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 /^(?:[^\\s@:$#*!/\\\\]+@[^\\r\\n@:$#*!/\\\\]+(?::[^\\0-\\x1F$#*?\"<>:;|]+)?|[^\\0-\\x1F$#*?\"<>@:;|]+)?/\n .source + // shell symbol\n /[$#]/.source + // bash command\n /(?:[^\\\\\\r\\n'\"<$]|\\\\(?:[^\\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","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\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.-])(?:true|false)(?![\\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","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: /\"(?:\"\"|[^\"])*\"/,\n character: {\n pattern: /\\$./,\n alias: 'string'\n },\n string: /'(?:''|[^'])*'/,\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(?:nil|true|false|self|super|new)\\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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n /* TODO\nAdd support for variables inside double quoted strings\nAdd support for {php}\n*/\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: /\\{\\*[\\s\\S]*?\\*\\}/,\n delimiter: {\n pattern: /^\\{|\\}$/i,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->)(?!\\d)\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: [\n {\n pattern: /(\\|\\s*)@?(?!\\d)\\w+/,\n lookbehind: true\n },\n /^\\/?(?!\\d)\\w+/,\n /(?!\\d)\\w+(?=\\()/\n ],\n 'attr-name': {\n // Value is made optional because it may have already been tokenized\n pattern: /\\w+\\s*=\\s*(?:(?!\\d)\\w+)?/,\n inside: {\n variable: {\n pattern: /(=\\s*)(?!\\d)\\w+/,\n lookbehind: true\n },\n operator: /=/\n }\n },\n punctuation: [/[\\[\\]().,:`]|->/],\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\\b/\n ],\n keyword: /\\b(?:false|off|on|no|true|yes)\\b/\n } // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyPattern = /\\{\\*[\\s\\S]*?\\*\\}|\\{[\\s\\S]+?\\}/g\n var smartyLitteralStart = '{literal}'\n var smartyLitteralEnd = '{/literal}'\n var smartyLitteralMode = 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 === smartyLitteralEnd) {\n smartyLitteralMode = false\n }\n if (!smartyLitteralMode) {\n if (match === smartyLitteralStart) {\n smartyLitteralMode = true\n }\n return true\n }\n return false\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","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction 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","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\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|string|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)?|byte|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","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction 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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction 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|in|int|js|html|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(?:true|false)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\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 }) // 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","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:true|false)\\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|ROUND|REGEX|REPLACE|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(?:GRAPH|BASE|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\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|execVM|execFSM|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(?:true|false)\\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(?:_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x|this|thisList|thisTrigger)\\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","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\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 {\n pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n lookbehind: true,\n greedy: true\n }\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(?: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|__LINE__|__FILE__)\\b/,\n number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n punctuation: /[(){}\\[\\],;.]/\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","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n // https://mc-stan.org/docs/2_24/reference-manual/bnf-grammars.html\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:\n /(\\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\\s*\\(\\s*)[a-zA-Z]\\w*/,\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 /\\b(?:break|cholesky_factor_corr|cholesky_factor_cov|continue|corr_matrix|cov_matrix|data|else|for|functions|generated|if|in|increment_log_prob|int|matrix|model|ordered|parameters|positive_ordered|print|quantities|real|reject|return|row_vector|simplex|target|transformed|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n /\\b(?:algebra_solver|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect)\\b/\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?\\b/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}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\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+)(?:(?:if|else|for|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(?:rgb|hsl)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:rgb|hsl)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(?:true|false)\\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]*)(?:if|else|for|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","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n // issues: nested multiline comments\n Prism.languages.swift = Prism.languages.extend('clike', {\n string: {\n pattern:\n /(\"|')(?:\\\\(?:\\((?:[^()]|\\([^)]+\\))+\\)|\\r\\n|[^(])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\\\\\((?:[^()]|\\([^)]+\\))+\\)/,\n inside: {\n delimiter: {\n pattern: /^\\\\\\(|\\)$/,\n alias: 'variable'\n } // See rest below\n }\n }\n }\n },\n keyword:\n /\\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\\b/,\n number:\n /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n constant: /\\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n atrule:\n /@\\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\\b/,\n builtin:\n /\\b(?:[A-Z]\\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\\b/\n })\n Prism.languages.swift['string'].inside['interpolation'].inside.rest =\n Prism.languages.swift\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorCsharp)\n Prism.languages.t4 = Prism.languages['t4-cs'] =\n Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n Prism.register(refractorYaml)\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","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction 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 ]*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\\b/m,\n lookbehind: true\n },\n /\\b(?:elseif|else)\\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 ]*|\\[)(?: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|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator:\n /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|ne|in|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\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 // 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 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 // *bold*, **bold**\n bold: {\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\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 pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\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\\((?:TM|R|C)\\)/,\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 } // 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 // 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 // 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","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\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(?:true|false)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction 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) // 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","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\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|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|or|not)\\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 }) // 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","'use strict'\n\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n Prism.languages.twig = {\n comment: /\\{#[\\s\\S]*?#\\}/,\n tag: {\n pattern: /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}/,\n inside: {\n ld: {\n pattern: /^(?:\\{\\{-?|\\{%-?\\s*\\w+)/,\n inside: {\n punctuation: /^(?:\\{\\{|\\{%)-?/,\n keyword: /\\w+/\n }\n },\n rd: {\n pattern: /-?(?:%\\}|\\}\\})$/,\n inside: {\n punctuation: /.+/\n }\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(?:true|false|null)\\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-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n property: /\\b[a-zA-Z_]\\w*\\b/,\n punctuation: /[()\\[\\]{}:.,]/\n }\n },\n // The rest can be parsed as HTML\n other: {\n // We want non-blank matches\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.markup\n }\n }\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction 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: /^[0-9]+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /\\b[0-9]+\\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","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction 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(?:Cross|Dot|ClockwiseFrom)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n // https://tools.ietf.org/html/rfc3986#appendix-A\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 + // [ userinfo \"@\" ]\n /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n ('(?:' + // IP-literal\n /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n .source +\n '|' + // IPv4address or registered name\n /[\\w\\-.~!$&'()*+,;=%]*/.source +\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]{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","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\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 {\n pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n // using {1,2} instead of `u` flag for compatibility\n alias: 'rune'\n },\n {\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 ],\n 'class-name': {\n pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n lookbehind: true\n },\n keyword:\n /(?:\\b(?:as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|__global|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)|\\$(?:if|else|for)|#(?:include|flag))\\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(?:_int|_float)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|nt|64|128)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n })\n interpolationExpr.inside = Prism.languages.v\n Prism.languages.insertBefore('v', 'operator', {\n attribute: {\n pattern:\n /(^[\\t ]*)\\[(?:deprecated|unsafe_fn|typedef|live|inline|flag|ref_only|windows_stdcall|direct_array_access)\\]/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","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\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|interface|new|struct|enum)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword:\n /\\b(?:bool|char|double|float|null|size_t|ssize_t|string|unichar|void|int|int8|int16|int32|int64|long|short|uchar|uint|uint8|uint16|uint32|uint64|ulong|ushort|class|delegate|enum|errordomain|interface|namespace|struct|break|continue|do|for|foreach|return|while|else|if|switch|assert|case|default|abstract|const|dynamic|ensures|extern|inline|internal|override|private|protected|public|requires|signal|static|virtual|volatile|weak|async|owned|unowned|try|catch|finally|throw|as|base|construct|delete|get|in|is|lock|new|out|params|ref|sizeof|set|this|throws|typeof|using|value|var|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","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\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(?:true|false)\\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","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n Prism.languages.verilog = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n // support for any kernel function (ex: $display())\n property: /\\B\\$\\w+\\b/,\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|class|case|casex|casez|cell|chandle|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|endspecify|endsequence|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_onevent|pulsestyle_ondetect|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_latch|always_comb|always_ff|always)\\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","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction 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 constant: /\\b(?:use|library)\\b/i,\n // support for predefined attributes included\n keyword:\n /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|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|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n boolean: /\\b(?:true|false)\\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|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\b\\w+(?=\\()/,\n keyword:\n /\\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|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|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin:\n /\\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|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|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|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|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|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|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|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|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_WP|t_WS|t_xs|t_ZH|t_ZR)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator:\n /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction 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)(?:[^\\S\\r\\n]_[^\\S\\r\\n]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“â€](?:[\"“â€]{2}|[^\"“â€])*[\"“â€]C?/i,\n greedy: true\n },\n date: {\n pattern:\n /#[^\\S\\r\\n]*(?:\\d+([/-])\\d+\\1\\d+(?:[^\\S\\r\\n]+(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))?|\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?)[^\\S\\r\\n]*#/i,\n alias: 'builtin'\n },\n number:\n /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:U?[ILS]|[FRD])?/i,\n boolean: /\\b(?:True|False|Nothing)\\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)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Until|Xor)\\b/i,\n operator: [\n /[+\\-*/\\\\^<=>&#@$%!]/,\n {\n pattern: /([^\\S\\r\\n])_(?=[^\\S\\r\\n]*[\\r\\n])/,\n lookbehind: true\n }\n ],\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction 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(?:false|true|F|T)\\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","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction 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|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|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!#$%&'*+\\-./:<=>?@\\\\^`|~]+/i,\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","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\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|(?:RFC|PMID) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/, // 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","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n Prism.languages.wolfram = {\n // Allow one level of nesting - note: regex taken from applescipt\n comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\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: /\\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(?:True|False)\\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","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\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","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\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","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i\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 symbol: /#(?:If|Else|ElseIf|Endif|Pragma)\\b/i,\n keyword:\n /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|By(?:Ref|Val)|Boolean|Break|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(?:erface|eger|8|16|32|64)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Single|Shared|Short|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:eger|8|16|32|64)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n operator:\n /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\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:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|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*\\/?>/i\n Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i\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 } // 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 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 === '{' && // 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) // 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","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction 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","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction 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|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|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 * 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 Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/{3}.*/,\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 // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern:\n /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n }\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-types': {\n pattern:\n /\\b(?:anyerror|bool|c_u?(?:short|int|long|longlong)|c_longdouble|c_void|comptime_(?:float|int)|[iu](?:8|16|32|64|128|size)|f(?:16|32|64|128)|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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar hljs = _interopRequireWildcard(require(\"react-syntax-highlighter/dist/esm/styles/hljs\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar hljsStyles = {\n 'a11yDark': hljs.a11yDark,\n 'a11yLight': hljs.a11yLight,\n 'agate': hljs.agate,\n 'anOldHope': hljs.anOldHope,\n 'androidstudio': hljs.androidstudio,\n 'arduinoLight': hljs.arduinoLight,\n 'arta': hljs.arta,\n 'ascetic': hljs.ascetic,\n 'atelierCaveDark': hljs.atelierCaveDark,\n 'atelierCaveLight': hljs.atelierCaveLight,\n 'atelierDuneDark': hljs.atelierDuneDark,\n 'atelierDuneLight': hljs.atelierDuneLight,\n 'atelierEstuaryDark': hljs.atelierEstuaryDark,\n 'atelierEstuaryLight': hljs.atelierEstuaryLight,\n 'atelierForestDark': hljs.atelierForestDark,\n 'atelierForestLight': hljs.atelierForestLight,\n 'atelierHeathDark': hljs.atelierHeathDark,\n 'atelierHeathLight': hljs.atelierHeathLight,\n 'atelierLakesideDark': hljs.atelierLakesideDark,\n 'atelierLakesideLight': hljs.atelierLakesideLight,\n 'atelierPlateauDark': hljs.atelierPlateauDark,\n 'atelierPlateauLight': hljs.atelierPlateauLight,\n 'atelierSavannaDark': hljs.atelierSavannaDark,\n 'atelierSavannaLight': hljs.atelierSavannaLight,\n 'atelierSeasideDark': hljs.atelierSeasideDark,\n 'atelierSeasideLight': hljs.atelierSeasideLight,\n 'atelierSulphurpoolDark': hljs.atelierSulphurpoolDark,\n 'atelierSulphurpoolLight': hljs.atelierSulphurpoolLight,\n 'atomOneDarkReasonable': hljs.atomOneDarkReasonable,\n 'atomOneDark': hljs.atomOneDark,\n 'atomOneLight': hljs.atomOneLight,\n 'brownPaper': hljs.brownPaper,\n 'codepenEmbed': hljs.codepenEmbed,\n 'colorBrewer': hljs.colorBrewer,\n 'darcula': hljs.darcula,\n 'dark': hljs.dark,\n 'defaultStyle': hljs.defaultStyle,\n 'docco': hljs.docco,\n 'dracula': hljs.dracula,\n 'far': hljs.far,\n 'foundation': hljs.foundation,\n 'githubGist': hljs.githubGist,\n 'github': hljs.github,\n 'gml': hljs.gml,\n 'googlecode': hljs.googlecode,\n 'gradientDark': hljs.gradientDark,\n 'gradientLight': hljs.gradientLight,\n 'grayscale': hljs.grayscale,\n 'gruvboxDark': hljs.gruvboxDark,\n 'gruvboxLight': hljs.gruvboxLight,\n 'hopscotch': hljs.hopscotch,\n 'hybrid': hljs.hybrid,\n 'idea': hljs.idea,\n 'irBlack': hljs.irBlack,\n 'isblEditorDark': hljs.isblEditorDark,\n 'isblEditorLight': hljs.isblEditorLight,\n 'kimbieDark': hljs.kimbieDark,\n 'kimbieLight': hljs.kimbieLight,\n 'lightfair': hljs.lightfair,\n 'lioshi': hljs.lioshi,\n 'magula': hljs.magula,\n 'monoBlue': hljs.monoBlue,\n 'monokaiSublime': hljs.monokaiSublime,\n 'monokai': hljs.monokai,\n 'nightOwl': hljs.nightOwl,\n 'nnfxDark': hljs.nnfxDark,\n 'nnfx': hljs.nnfx,\n 'nord': hljs.nord,\n 'obsidian': hljs.obsidian,\n 'ocean': hljs.ocean,\n 'paraisoDark': hljs.paraisoDark,\n 'paraisoLight': hljs.paraisoLight,\n 'pojoaque': hljs.pojoaque,\n 'purebasic': hljs.purebasic,\n 'qtcreatorDark': hljs.qtcreatorDark,\n 'qtcreatorLight': hljs.qtcreatorLight,\n 'railscasts': hljs.railscasts,\n 'rainbow': hljs.rainbow,\n 'routeros': hljs.routeros,\n 'schoolBook': hljs.schoolBook,\n 'shadesOfPurple': hljs.shadesOfPurple,\n 'solarizedDark': hljs.solarizedDark,\n 'solarizedLight': hljs.solarizedLight,\n 'srcery': hljs.srcery,\n 'stackoverflowDark': hljs.stackoverflowDark,\n 'stackoverflowLight': hljs.stackoverflowLight,\n 'sunburst': hljs.sunburst,\n 'tomorrowNightBlue': hljs.tomorrowNightBlue,\n 'tomorrowNightBright': hljs.tomorrowNightBright,\n 'tomorrowNightEighties': hljs.tomorrowNightEighties,\n 'tomorrowNight': hljs.tomorrowNight,\n 'tomorrow': hljs.tomorrow,\n 'vs': hljs.vs,\n 'vs2015': hljs.vs2015,\n 'xcode': hljs.xcode,\n 'xt256': hljs.xt256,\n 'zenburn': hljs.zenburn\n};\nvar _default = hljsStyles;\nexports.default = _default;","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * var h = require('hastscript')\n * var toString = require('hast-util-to-string')\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n'use strict'\n\nmodule.exports = toString\n\nfunction toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.â€\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.â€\n return 'value' in node ? node.value : ''\n}\n\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return node.children ? all(node) : ''\n}\n\nfunction all(node) {\n var children = node.children\n var length = children.length\n var index = -1\n var result = []\n\n while (++index < length) {\n result[index] = one(children[index])\n }\n\n return result.join('')\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","export default {\n \"hljs-comment\": {\n \"color\": \"#d4d0ab\"\n },\n \"hljs-quote\": {\n \"color\": \"#d4d0ab\"\n },\n \"hljs-variable\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-tag\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-name\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-deletion\": {\n \"color\": \"#ffa07a\"\n },\n \"hljs-number\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-literal\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-type\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-params\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-meta\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-link\": {\n \"color\": \"#f5ab35\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ffd700\"\n },\n \"hljs-string\": {\n \"color\": \"#abe338\"\n },\n \"hljs-symbol\": {\n \"color\": \"#abe338\"\n },\n \"hljs-bullet\": {\n \"color\": \"#abe338\"\n },\n \"hljs-addition\": {\n \"color\": \"#abe338\"\n },\n \"hljs-title\": {\n \"color\": \"#00e0e0\"\n },\n \"hljs-section\": {\n \"color\": \"#00e0e0\"\n },\n \"hljs-keyword\": {\n \"color\": \"#dcc6e0\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#dcc6e0\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#2b2b2b\",\n \"color\": \"#f8f8f2\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#696969\"\n },\n \"hljs-quote\": {\n \"color\": \"#696969\"\n },\n \"hljs-variable\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-tag\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-name\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-deletion\": {\n \"color\": \"#d91e18\"\n },\n \"hljs-number\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-built_in\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-literal\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-type\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-params\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-meta\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-link\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-attribute\": {\n \"color\": \"#aa5d00\"\n },\n \"hljs-string\": {\n \"color\": \"#008000\"\n },\n \"hljs-symbol\": {\n \"color\": \"#008000\"\n },\n \"hljs-bullet\": {\n \"color\": \"#008000\"\n },\n \"hljs-addition\": {\n \"color\": \"#008000\"\n },\n \"hljs-title\": {\n \"color\": \"#007faa\"\n },\n \"hljs-section\": {\n \"color\": \"#007faa\"\n },\n \"hljs-keyword\": {\n \"color\": \"#7928a1\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#7928a1\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#fefefe\",\n \"color\": \"#545454\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#333\",\n \"color\": \"white\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-code\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#888\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-tag\": {\n \"color\": \"#62c8f3\"\n },\n \"hljs-variable\": {\n \"color\": \"#ade5fc\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ade5fc\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ade5fc\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ade5fc\"\n },\n \"hljs-string\": {\n \"color\": \"#a2fca2\"\n },\n \"hljs-bullet\": {\n \"color\": \"#d36363\"\n },\n \"hljs-type\": {\n \"color\": \"#ffa\"\n },\n \"hljs-title\": {\n \"color\": \"#ffa\"\n },\n \"hljs-section\": {\n \"color\": \"#ffa\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ffa\"\n },\n \"hljs-quote\": {\n \"color\": \"#ffa\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ffa\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ffa\"\n },\n \"hljs-number\": {\n \"color\": \"#d36363\"\n },\n \"hljs-symbol\": {\n \"color\": \"#d36363\"\n },\n \"hljs-keyword\": {\n \"color\": \"#fcc28c\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#fcc28c\"\n },\n \"hljs-literal\": {\n \"color\": \"#fcc28c\"\n },\n \"hljs-comment\": {\n \"color\": \"#888\"\n },\n \"hljs-deletion\": {\n \"color\": \"#333\",\n \"backgroundColor\": \"#fc9b9b\"\n },\n \"hljs-regexp\": {\n \"color\": \"#c6b4f0\"\n },\n \"hljs-link\": {\n \"color\": \"#c6b4f0\"\n },\n \"hljs-meta\": {\n \"color\": \"#fc9b9b\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#a2fca2\",\n \"color\": \"#333\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#B6B18B\"\n },\n \"hljs-quote\": {\n \"color\": \"#B6B18B\"\n },\n \"hljs-variable\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-tag\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-name\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-regexp\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-deletion\": {\n \"color\": \"#EB3C54\"\n },\n \"hljs-number\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-built_in\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-literal\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-type\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-params\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-meta\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-link\": {\n \"color\": \"#E7CE56\"\n },\n \"hljs-attribute\": {\n \"color\": \"#EE7C2B\"\n },\n \"hljs-string\": {\n \"color\": \"#4FB4D7\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4FB4D7\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4FB4D7\"\n },\n \"hljs-addition\": {\n \"color\": \"#4FB4D7\"\n },\n \"hljs-title\": {\n \"color\": \"#78BB65\"\n },\n \"hljs-section\": {\n \"color\": \"#78BB65\"\n },\n \"hljs-keyword\": {\n \"color\": \"#B45EA4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#B45EA4\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#1C1D21\",\n \"color\": \"#c0c5ce\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"color\": \"#a9b7c6\",\n \"background\": \"#282b2e\",\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\"\n },\n \"hljs-number\": {\n \"color\": \"#6897BB\"\n },\n \"hljs-literal\": {\n \"color\": \"#6897BB\"\n },\n \"hljs-symbol\": {\n \"color\": \"#6897BB\"\n },\n \"hljs-bullet\": {\n \"color\": \"#6897BB\"\n },\n \"hljs-keyword\": {\n \"color\": \"#cc7832\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#cc7832\"\n },\n \"hljs-deletion\": {\n \"color\": \"#cc7832\"\n },\n \"hljs-variable\": {\n \"color\": \"#629755\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#629755\"\n },\n \"hljs-link\": {\n \"color\": \"#629755\"\n },\n \"hljs-comment\": {\n \"color\": \"#808080\"\n },\n \"hljs-quote\": {\n \"color\": \"#808080\"\n },\n \"hljs-meta\": {\n \"color\": \"#bbb529\"\n },\n \"hljs-string\": {\n \"color\": \"#6A8759\"\n },\n \"hljs-attribute\": {\n \"color\": \"#6A8759\"\n },\n \"hljs-addition\": {\n \"color\": \"#6A8759\"\n },\n \"hljs-section\": {\n \"color\": \"#ffc66d\"\n },\n \"hljs-title\": {\n \"color\": \"#ffc66d\"\n },\n \"hljs-type\": {\n \"color\": \"#ffc66d\"\n },\n \"hljs-name\": {\n \"color\": \"#e8bf6a\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#e8bf6a\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#e8bf6a\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#FFFFFF\",\n \"color\": \"#434f54\"\n },\n \"hljs-subst\": {\n \"color\": \"#434f54\"\n },\n \"hljs-keyword\": {\n \"color\": \"#00979D\"\n },\n \"hljs-attribute\": {\n \"color\": \"#00979D\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#00979D\"\n },\n \"hljs-doctag\": {\n \"color\": \"#00979D\"\n },\n \"hljs-name\": {\n \"color\": \"#00979D\"\n },\n \"hljs-built_in\": {\n \"color\": \"#D35400\"\n },\n \"hljs-literal\": {\n \"color\": \"#D35400\"\n },\n \"hljs-bullet\": {\n \"color\": \"#D35400\"\n },\n \"hljs-code\": {\n \"color\": \"#D35400\"\n },\n \"hljs-addition\": {\n \"color\": \"#D35400\"\n },\n \"hljs-regexp\": {\n \"color\": \"#00979D\"\n },\n \"hljs-symbol\": {\n \"color\": \"#00979D\"\n },\n \"hljs-variable\": {\n \"color\": \"#00979D\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#00979D\"\n },\n \"hljs-link\": {\n \"color\": \"#00979D\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#00979D\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#00979D\"\n },\n \"hljs-type\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-string\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-quote\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-deletion\": {\n \"color\": \"#005C5F\"\n },\n \"hljs-title\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"rgba(149,165,166,.8)\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#728E00\"\n },\n \"hljs-meta\": {\n \"color\": \"#434f54\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-function\": {\n \"color\": \"#728E00\"\n },\n \"hljs-number\": {\n \"color\": \"#8A7B52\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#222\",\n \"color\": \"#aaa\"\n },\n \"hljs-subst\": {\n \"color\": \"#aaa\"\n },\n \"hljs-section\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"#444\"\n },\n \"hljs-quote\": {\n \"color\": \"#444\"\n },\n \"hljs-meta\": {\n \"color\": \"#444\"\n },\n \"hljs-string\": {\n \"color\": \"#ffcc33\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ffcc33\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ffcc33\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ffcc33\"\n },\n \"hljs-number\": {\n \"color\": \"#00cc66\"\n },\n \"hljs-addition\": {\n \"color\": \"#00cc66\"\n },\n \"hljs-built_in\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-literal\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-type\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-attribute\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-link\": {\n \"color\": \"#32aaee\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6644aa\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6644aa\"\n },\n \"hljs-name\": {\n \"color\": \"#6644aa\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#6644aa\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#6644aa\"\n },\n \"hljs-title\": {\n \"color\": \"#bb1166\"\n },\n \"hljs-variable\": {\n \"color\": \"#bb1166\"\n },\n \"hljs-deletion\": {\n \"color\": \"#bb1166\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#bb1166\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"white\",\n \"color\": \"black\"\n },\n \"hljs-string\": {\n \"color\": \"#888\"\n },\n \"hljs-variable\": {\n \"color\": \"#888\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#888\"\n },\n \"hljs-symbol\": {\n \"color\": \"#888\"\n },\n \"hljs-bullet\": {\n \"color\": \"#888\"\n },\n \"hljs-section\": {\n \"color\": \"#888\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-addition\": {\n \"color\": \"#888\"\n },\n \"hljs-attribute\": {\n \"color\": \"#888\"\n },\n \"hljs-link\": {\n \"color\": \"#888\"\n },\n \"hljs-comment\": {\n \"color\": \"#ccc\"\n },\n \"hljs-quote\": {\n \"color\": \"#ccc\"\n },\n \"hljs-meta\": {\n \"color\": \"#ccc\"\n },\n \"hljs-deletion\": {\n \"color\": \"#ccc\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#7e7887\"\n },\n \"hljs-quote\": {\n \"color\": \"#7e7887\"\n },\n \"hljs-variable\": {\n \"color\": \"#be4678\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#be4678\"\n },\n \"hljs-attribute\": {\n \"color\": \"#be4678\"\n },\n \"hljs-regexp\": {\n \"color\": \"#be4678\"\n },\n \"hljs-link\": {\n \"color\": \"#be4678\"\n },\n \"hljs-tag\": {\n \"color\": \"#be4678\"\n },\n \"hljs-name\": {\n \"color\": \"#be4678\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#be4678\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#be4678\"\n },\n \"hljs-number\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-meta\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-literal\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-type\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-params\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-string\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-symbol\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-bullet\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-title\": {\n \"color\": \"#576ddb\"\n },\n \"hljs-section\": {\n \"color\": \"#576ddb\"\n },\n \"hljs-keyword\": {\n \"color\": \"#955ae7\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#955ae7\"\n },\n \"hljs-deletion\": {\n \"color\": \"#19171c\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#be4678\"\n },\n \"hljs-addition\": {\n \"color\": \"#19171c\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#2a9292\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#19171c\",\n \"color\": \"#8b8792\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#655f6d\"\n },\n \"hljs-quote\": {\n \"color\": \"#655f6d\"\n },\n \"hljs-variable\": {\n \"color\": \"#be4678\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#be4678\"\n },\n \"hljs-attribute\": {\n \"color\": \"#be4678\"\n },\n \"hljs-tag\": {\n \"color\": \"#be4678\"\n },\n \"hljs-name\": {\n \"color\": \"#be4678\"\n },\n \"hljs-regexp\": {\n \"color\": \"#be4678\"\n },\n \"hljs-link\": {\n \"color\": \"#be4678\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#be4678\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#be4678\"\n },\n \"hljs-number\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-meta\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-literal\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-type\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-params\": {\n \"color\": \"#aa573c\"\n },\n \"hljs-string\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-symbol\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-bullet\": {\n \"color\": \"#2a9292\"\n },\n \"hljs-title\": {\n \"color\": \"#576ddb\"\n },\n \"hljs-section\": {\n \"color\": \"#576ddb\"\n },\n \"hljs-keyword\": {\n \"color\": \"#955ae7\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#955ae7\"\n },\n \"hljs-deletion\": {\n \"color\": \"#19171c\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#be4678\"\n },\n \"hljs-addition\": {\n \"color\": \"#19171c\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#2a9292\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#efecf4\",\n \"color\": \"#585260\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#999580\"\n },\n \"hljs-quote\": {\n \"color\": \"#999580\"\n },\n \"hljs-variable\": {\n \"color\": \"#d73737\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d73737\"\n },\n \"hljs-attribute\": {\n \"color\": \"#d73737\"\n },\n \"hljs-tag\": {\n \"color\": \"#d73737\"\n },\n \"hljs-name\": {\n \"color\": \"#d73737\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d73737\"\n },\n \"hljs-link\": {\n \"color\": \"#d73737\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d73737\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d73737\"\n },\n \"hljs-number\": {\n \"color\": \"#b65611\"\n },\n \"hljs-meta\": {\n \"color\": \"#b65611\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b65611\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#b65611\"\n },\n \"hljs-literal\": {\n \"color\": \"#b65611\"\n },\n \"hljs-type\": {\n \"color\": \"#b65611\"\n },\n \"hljs-params\": {\n \"color\": \"#b65611\"\n },\n \"hljs-string\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-symbol\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-bullet\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-title\": {\n \"color\": \"#6684e1\"\n },\n \"hljs-section\": {\n \"color\": \"#6684e1\"\n },\n \"hljs-keyword\": {\n \"color\": \"#b854d4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#b854d4\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#20201d\",\n \"color\": \"#a6a28c\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#7d7a68\"\n },\n \"hljs-quote\": {\n \"color\": \"#7d7a68\"\n },\n \"hljs-variable\": {\n \"color\": \"#d73737\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d73737\"\n },\n \"hljs-attribute\": {\n \"color\": \"#d73737\"\n },\n \"hljs-tag\": {\n \"color\": \"#d73737\"\n },\n \"hljs-name\": {\n \"color\": \"#d73737\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d73737\"\n },\n \"hljs-link\": {\n \"color\": \"#d73737\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d73737\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d73737\"\n },\n \"hljs-number\": {\n \"color\": \"#b65611\"\n },\n \"hljs-meta\": {\n \"color\": \"#b65611\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b65611\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#b65611\"\n },\n \"hljs-literal\": {\n \"color\": \"#b65611\"\n },\n \"hljs-type\": {\n \"color\": \"#b65611\"\n },\n \"hljs-params\": {\n \"color\": \"#b65611\"\n },\n \"hljs-string\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-symbol\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-bullet\": {\n \"color\": \"#60ac39\"\n },\n \"hljs-title\": {\n \"color\": \"#6684e1\"\n },\n \"hljs-section\": {\n \"color\": \"#6684e1\"\n },\n \"hljs-keyword\": {\n \"color\": \"#b854d4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#b854d4\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#fefbec\",\n \"color\": \"#6e6b5e\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#878573\"\n },\n \"hljs-quote\": {\n \"color\": \"#878573\"\n },\n \"hljs-variable\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-tag\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-name\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-link\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-number\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-meta\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-literal\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-type\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-params\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-string\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-symbol\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-bullet\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-title\": {\n \"color\": \"#36a166\"\n },\n \"hljs-section\": {\n \"color\": \"#36a166\"\n },\n \"hljs-keyword\": {\n \"color\": \"#5f9182\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#5f9182\"\n },\n \"hljs-deletion\": {\n \"color\": \"#22221b\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#ba6236\"\n },\n \"hljs-addition\": {\n \"color\": \"#22221b\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#7d9726\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#22221b\",\n \"color\": \"#929181\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#6c6b5a\"\n },\n \"hljs-quote\": {\n \"color\": \"#6c6b5a\"\n },\n \"hljs-variable\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-tag\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-name\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-link\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ba6236\"\n },\n \"hljs-number\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-meta\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-literal\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-type\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-params\": {\n \"color\": \"#ae7313\"\n },\n \"hljs-string\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-symbol\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-bullet\": {\n \"color\": \"#7d9726\"\n },\n \"hljs-title\": {\n \"color\": \"#36a166\"\n },\n \"hljs-section\": {\n \"color\": \"#36a166\"\n },\n \"hljs-keyword\": {\n \"color\": \"#5f9182\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#5f9182\"\n },\n \"hljs-deletion\": {\n \"color\": \"#22221b\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#ba6236\"\n },\n \"hljs-addition\": {\n \"color\": \"#22221b\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#7d9726\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f4f3ec\",\n \"color\": \"#5f5e4e\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#9c9491\"\n },\n \"hljs-quote\": {\n \"color\": \"#9c9491\"\n },\n \"hljs-variable\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-tag\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-name\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-regexp\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-link\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-number\": {\n \"color\": \"#df5320\"\n },\n \"hljs-meta\": {\n \"color\": \"#df5320\"\n },\n \"hljs-built_in\": {\n \"color\": \"#df5320\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#df5320\"\n },\n \"hljs-literal\": {\n \"color\": \"#df5320\"\n },\n \"hljs-type\": {\n \"color\": \"#df5320\"\n },\n \"hljs-params\": {\n \"color\": \"#df5320\"\n },\n \"hljs-string\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-symbol\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-bullet\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-title\": {\n \"color\": \"#407ee7\"\n },\n \"hljs-section\": {\n \"color\": \"#407ee7\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6666ea\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6666ea\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#1b1918\",\n \"color\": \"#a8a19f\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#766e6b\"\n },\n \"hljs-quote\": {\n \"color\": \"#766e6b\"\n },\n \"hljs-variable\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-tag\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-name\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-regexp\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-link\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#f22c40\"\n },\n \"hljs-number\": {\n \"color\": \"#df5320\"\n },\n \"hljs-meta\": {\n \"color\": \"#df5320\"\n },\n \"hljs-built_in\": {\n \"color\": \"#df5320\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#df5320\"\n },\n \"hljs-literal\": {\n \"color\": \"#df5320\"\n },\n \"hljs-type\": {\n \"color\": \"#df5320\"\n },\n \"hljs-params\": {\n \"color\": \"#df5320\"\n },\n \"hljs-string\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-symbol\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-bullet\": {\n \"color\": \"#7b9726\"\n },\n \"hljs-title\": {\n \"color\": \"#407ee7\"\n },\n \"hljs-section\": {\n \"color\": \"#407ee7\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6666ea\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6666ea\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f1efee\",\n \"color\": \"#68615e\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#9e8f9e\"\n },\n \"hljs-quote\": {\n \"color\": \"#9e8f9e\"\n },\n \"hljs-variable\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-tag\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-name\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-link\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-number\": {\n \"color\": \"#a65926\"\n },\n \"hljs-meta\": {\n \"color\": \"#a65926\"\n },\n \"hljs-built_in\": {\n \"color\": \"#a65926\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#a65926\"\n },\n \"hljs-literal\": {\n \"color\": \"#a65926\"\n },\n \"hljs-type\": {\n \"color\": \"#a65926\"\n },\n \"hljs-params\": {\n \"color\": \"#a65926\"\n },\n \"hljs-string\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-title\": {\n \"color\": \"#516aec\"\n },\n \"hljs-section\": {\n \"color\": \"#516aec\"\n },\n \"hljs-keyword\": {\n \"color\": \"#7b59c0\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#7b59c0\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#1b181b\",\n \"color\": \"#ab9bab\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#776977\"\n },\n \"hljs-quote\": {\n \"color\": \"#776977\"\n },\n \"hljs-variable\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-tag\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-name\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-link\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ca402b\"\n },\n \"hljs-number\": {\n \"color\": \"#a65926\"\n },\n \"hljs-meta\": {\n \"color\": \"#a65926\"\n },\n \"hljs-built_in\": {\n \"color\": \"#a65926\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#a65926\"\n },\n \"hljs-literal\": {\n \"color\": \"#a65926\"\n },\n \"hljs-type\": {\n \"color\": \"#a65926\"\n },\n \"hljs-params\": {\n \"color\": \"#a65926\"\n },\n \"hljs-string\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#918b3b\"\n },\n \"hljs-title\": {\n \"color\": \"#516aec\"\n },\n \"hljs-section\": {\n \"color\": \"#516aec\"\n },\n \"hljs-keyword\": {\n \"color\": \"#7b59c0\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#7b59c0\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f7f3f7\",\n \"color\": \"#695d69\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#7195a8\"\n },\n \"hljs-quote\": {\n \"color\": \"#7195a8\"\n },\n \"hljs-variable\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-attribute\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-tag\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-name\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-link\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-number\": {\n \"color\": \"#935c25\"\n },\n \"hljs-meta\": {\n \"color\": \"#935c25\"\n },\n \"hljs-built_in\": {\n \"color\": \"#935c25\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#935c25\"\n },\n \"hljs-literal\": {\n \"color\": \"#935c25\"\n },\n \"hljs-type\": {\n \"color\": \"#935c25\"\n },\n \"hljs-params\": {\n \"color\": \"#935c25\"\n },\n \"hljs-string\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-title\": {\n \"color\": \"#257fad\"\n },\n \"hljs-section\": {\n \"color\": \"#257fad\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6b6bb8\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6b6bb8\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#161b1d\",\n \"color\": \"#7ea2b4\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#5a7b8c\"\n },\n \"hljs-quote\": {\n \"color\": \"#5a7b8c\"\n },\n \"hljs-variable\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-attribute\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-tag\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-name\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-link\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d22d72\"\n },\n \"hljs-number\": {\n \"color\": \"#935c25\"\n },\n \"hljs-meta\": {\n \"color\": \"#935c25\"\n },\n \"hljs-built_in\": {\n \"color\": \"#935c25\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#935c25\"\n },\n \"hljs-literal\": {\n \"color\": \"#935c25\"\n },\n \"hljs-type\": {\n \"color\": \"#935c25\"\n },\n \"hljs-params\": {\n \"color\": \"#935c25\"\n },\n \"hljs-string\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#568c3b\"\n },\n \"hljs-title\": {\n \"color\": \"#257fad\"\n },\n \"hljs-section\": {\n \"color\": \"#257fad\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6b6bb8\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6b6bb8\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#ebf8ff\",\n \"color\": \"#516d7b\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#7e7777\"\n },\n \"hljs-quote\": {\n \"color\": \"#7e7777\"\n },\n \"hljs-variable\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-tag\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-name\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-link\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-number\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-meta\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-literal\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-type\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-params\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-string\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-title\": {\n \"color\": \"#7272ca\"\n },\n \"hljs-section\": {\n \"color\": \"#7272ca\"\n },\n \"hljs-keyword\": {\n \"color\": \"#8464c4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#8464c4\"\n },\n \"hljs-deletion\": {\n \"color\": \"#1b1818\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#ca4949\"\n },\n \"hljs-addition\": {\n \"color\": \"#1b1818\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#4b8b8b\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#1b1818\",\n \"color\": \"#8a8585\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#655d5d\"\n },\n \"hljs-quote\": {\n \"color\": \"#655d5d\"\n },\n \"hljs-variable\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-tag\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-name\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-link\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ca4949\"\n },\n \"hljs-number\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-meta\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-literal\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-type\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-params\": {\n \"color\": \"#b45a3c\"\n },\n \"hljs-string\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4b8b8b\"\n },\n \"hljs-title\": {\n \"color\": \"#7272ca\"\n },\n \"hljs-section\": {\n \"color\": \"#7272ca\"\n },\n \"hljs-keyword\": {\n \"color\": \"#8464c4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#8464c4\"\n },\n \"hljs-deletion\": {\n \"color\": \"#1b1818\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#ca4949\"\n },\n \"hljs-addition\": {\n \"color\": \"#1b1818\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#4b8b8b\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f4ecec\",\n \"color\": \"#585050\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#78877d\"\n },\n \"hljs-quote\": {\n \"color\": \"#78877d\"\n },\n \"hljs-variable\": {\n \"color\": \"#b16139\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b16139\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b16139\"\n },\n \"hljs-tag\": {\n \"color\": \"#b16139\"\n },\n \"hljs-name\": {\n \"color\": \"#b16139\"\n },\n \"hljs-regexp\": {\n \"color\": \"#b16139\"\n },\n \"hljs-link\": {\n \"color\": \"#b16139\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#b16139\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#b16139\"\n },\n \"hljs-number\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-meta\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-literal\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-type\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-params\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-string\": {\n \"color\": \"#489963\"\n },\n \"hljs-symbol\": {\n \"color\": \"#489963\"\n },\n \"hljs-bullet\": {\n \"color\": \"#489963\"\n },\n \"hljs-title\": {\n \"color\": \"#478c90\"\n },\n \"hljs-section\": {\n \"color\": \"#478c90\"\n },\n \"hljs-keyword\": {\n \"color\": \"#55859b\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#55859b\"\n },\n \"hljs-deletion\": {\n \"color\": \"#171c19\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#b16139\"\n },\n \"hljs-addition\": {\n \"color\": \"#171c19\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#489963\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#171c19\",\n \"color\": \"#87928a\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#5f6d64\"\n },\n \"hljs-quote\": {\n \"color\": \"#5f6d64\"\n },\n \"hljs-variable\": {\n \"color\": \"#b16139\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b16139\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b16139\"\n },\n \"hljs-tag\": {\n \"color\": \"#b16139\"\n },\n \"hljs-name\": {\n \"color\": \"#b16139\"\n },\n \"hljs-regexp\": {\n \"color\": \"#b16139\"\n },\n \"hljs-link\": {\n \"color\": \"#b16139\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#b16139\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#b16139\"\n },\n \"hljs-number\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-meta\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-literal\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-type\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-params\": {\n \"color\": \"#9f713c\"\n },\n \"hljs-string\": {\n \"color\": \"#489963\"\n },\n \"hljs-symbol\": {\n \"color\": \"#489963\"\n },\n \"hljs-bullet\": {\n \"color\": \"#489963\"\n },\n \"hljs-title\": {\n \"color\": \"#478c90\"\n },\n \"hljs-section\": {\n \"color\": \"#478c90\"\n },\n \"hljs-keyword\": {\n \"color\": \"#55859b\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#55859b\"\n },\n \"hljs-deletion\": {\n \"color\": \"#171c19\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#b16139\"\n },\n \"hljs-addition\": {\n \"color\": \"#171c19\",\n \"display\": \"inline-block\",\n \"width\": \"100%\",\n \"backgroundColor\": \"#489963\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#ecf4ee\",\n \"color\": \"#526057\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#809980\"\n },\n \"hljs-quote\": {\n \"color\": \"#809980\"\n },\n \"hljs-variable\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-attribute\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-tag\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-name\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-regexp\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-link\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-number\": {\n \"color\": \"#87711d\"\n },\n \"hljs-meta\": {\n \"color\": \"#87711d\"\n },\n \"hljs-built_in\": {\n \"color\": \"#87711d\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#87711d\"\n },\n \"hljs-literal\": {\n \"color\": \"#87711d\"\n },\n \"hljs-type\": {\n \"color\": \"#87711d\"\n },\n \"hljs-params\": {\n \"color\": \"#87711d\"\n },\n \"hljs-string\": {\n \"color\": \"#29a329\"\n },\n \"hljs-symbol\": {\n \"color\": \"#29a329\"\n },\n \"hljs-bullet\": {\n \"color\": \"#29a329\"\n },\n \"hljs-title\": {\n \"color\": \"#3d62f5\"\n },\n \"hljs-section\": {\n \"color\": \"#3d62f5\"\n },\n \"hljs-keyword\": {\n \"color\": \"#ad2bee\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#ad2bee\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#131513\",\n \"color\": \"#8ca68c\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#687d68\"\n },\n \"hljs-quote\": {\n \"color\": \"#687d68\"\n },\n \"hljs-variable\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-attribute\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-tag\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-name\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-regexp\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-link\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#e6193c\"\n },\n \"hljs-number\": {\n \"color\": \"#87711d\"\n },\n \"hljs-meta\": {\n \"color\": \"#87711d\"\n },\n \"hljs-built_in\": {\n \"color\": \"#87711d\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#87711d\"\n },\n \"hljs-literal\": {\n \"color\": \"#87711d\"\n },\n \"hljs-type\": {\n \"color\": \"#87711d\"\n },\n \"hljs-params\": {\n \"color\": \"#87711d\"\n },\n \"hljs-string\": {\n \"color\": \"#29a329\"\n },\n \"hljs-symbol\": {\n \"color\": \"#29a329\"\n },\n \"hljs-bullet\": {\n \"color\": \"#29a329\"\n },\n \"hljs-title\": {\n \"color\": \"#3d62f5\"\n },\n \"hljs-section\": {\n \"color\": \"#3d62f5\"\n },\n \"hljs-keyword\": {\n \"color\": \"#ad2bee\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#ad2bee\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f4fbf4\",\n \"color\": \"#5e6e5e\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#898ea4\"\n },\n \"hljs-quote\": {\n \"color\": \"#898ea4\"\n },\n \"hljs-variable\": {\n \"color\": \"#c94922\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#c94922\"\n },\n \"hljs-attribute\": {\n \"color\": \"#c94922\"\n },\n \"hljs-tag\": {\n \"color\": \"#c94922\"\n },\n \"hljs-name\": {\n \"color\": \"#c94922\"\n },\n \"hljs-regexp\": {\n \"color\": \"#c94922\"\n },\n \"hljs-link\": {\n \"color\": \"#c94922\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#c94922\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#c94922\"\n },\n \"hljs-number\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-meta\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-built_in\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-literal\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-type\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-params\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-string\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-title\": {\n \"color\": \"#3d8fd1\"\n },\n \"hljs-section\": {\n \"color\": \"#3d8fd1\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6679cc\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6679cc\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#202746\",\n \"color\": \"#979db4\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#6b7394\"\n },\n \"hljs-quote\": {\n \"color\": \"#6b7394\"\n },\n \"hljs-variable\": {\n \"color\": \"#c94922\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#c94922\"\n },\n \"hljs-attribute\": {\n \"color\": \"#c94922\"\n },\n \"hljs-tag\": {\n \"color\": \"#c94922\"\n },\n \"hljs-name\": {\n \"color\": \"#c94922\"\n },\n \"hljs-regexp\": {\n \"color\": \"#c94922\"\n },\n \"hljs-link\": {\n \"color\": \"#c94922\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#c94922\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#c94922\"\n },\n \"hljs-number\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-meta\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-built_in\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-literal\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-type\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-params\": {\n \"color\": \"#c76b29\"\n },\n \"hljs-string\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ac9739\"\n },\n \"hljs-title\": {\n \"color\": \"#3d8fd1\"\n },\n \"hljs-section\": {\n \"color\": \"#3d8fd1\"\n },\n \"hljs-keyword\": {\n \"color\": \"#6679cc\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#6679cc\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#f5f7ff\",\n \"color\": \"#5e6687\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#abb2bf\",\n \"background\": \"#282c34\"\n },\n \"hljs-keyword\": {\n \"color\": \"#F92672\"\n },\n \"hljs-operator\": {\n \"color\": \"#F92672\"\n },\n \"hljs-pattern-match\": {\n \"color\": \"#F92672\"\n },\n \"hljs-pattern-match .hljs-constructor\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-function\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-function .hljs-params\": {\n \"color\": \"#A6E22E\"\n },\n \"hljs-function .hljs-params .hljs-typing\": {\n \"color\": \"#FD971F\"\n },\n \"hljs-module-access .hljs-module\": {\n \"color\": \"#7e57c2\"\n },\n \"hljs-constructor\": {\n \"color\": \"#e2b93d\"\n },\n \"hljs-constructor .hljs-string\": {\n \"color\": \"#9CCC65\"\n },\n \"hljs-comment\": {\n \"color\": \"#b18eb1\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#b18eb1\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"color\": \"#c678dd\"\n },\n \"hljs-formula\": {\n \"color\": \"#c678dd\"\n },\n \"hljs-section\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-name\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-deletion\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-subst\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-literal\": {\n \"color\": \"#56b6c2\"\n },\n \"hljs-string\": {\n \"color\": \"#98c379\"\n },\n \"hljs-regexp\": {\n \"color\": \"#98c379\"\n },\n \"hljs-addition\": {\n \"color\": \"#98c379\"\n },\n \"hljs-attribute\": {\n \"color\": \"#98c379\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#98c379\"\n },\n \"hljs-built_in\": {\n \"color\": \"#e6c07b\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#e6c07b\"\n },\n \"hljs-attr\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-variable\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-type\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-number\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-symbol\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-bullet\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-link\": {\n \"color\": \"#61aeee\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-meta\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-title\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#abb2bf\",\n \"background\": \"#282c34\"\n },\n \"hljs-comment\": {\n \"color\": \"#5c6370\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#5c6370\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"color\": \"#c678dd\"\n },\n \"hljs-keyword\": {\n \"color\": \"#c678dd\"\n },\n \"hljs-formula\": {\n \"color\": \"#c678dd\"\n },\n \"hljs-section\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-name\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-deletion\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-subst\": {\n \"color\": \"#e06c75\"\n },\n \"hljs-literal\": {\n \"color\": \"#56b6c2\"\n },\n \"hljs-string\": {\n \"color\": \"#98c379\"\n },\n \"hljs-regexp\": {\n \"color\": \"#98c379\"\n },\n \"hljs-addition\": {\n \"color\": \"#98c379\"\n },\n \"hljs-attribute\": {\n \"color\": \"#98c379\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#98c379\"\n },\n \"hljs-built_in\": {\n \"color\": \"#e6c07b\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#e6c07b\"\n },\n \"hljs-attr\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-variable\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-type\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-number\": {\n \"color\": \"#d19a66\"\n },\n \"hljs-symbol\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-bullet\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-link\": {\n \"color\": \"#61aeee\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-meta\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-title\": {\n \"color\": \"#61aeee\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#383a42\",\n \"background\": \"#fafafa\"\n },\n \"hljs-comment\": {\n \"color\": \"#a0a1a7\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#a0a1a7\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"color\": \"#a626a4\"\n },\n \"hljs-keyword\": {\n \"color\": \"#a626a4\"\n },\n \"hljs-formula\": {\n \"color\": \"#a626a4\"\n },\n \"hljs-section\": {\n \"color\": \"#e45649\"\n },\n \"hljs-name\": {\n \"color\": \"#e45649\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#e45649\"\n },\n \"hljs-deletion\": {\n \"color\": \"#e45649\"\n },\n \"hljs-subst\": {\n \"color\": \"#e45649\"\n },\n \"hljs-literal\": {\n \"color\": \"#0184bb\"\n },\n \"hljs-string\": {\n \"color\": \"#50a14f\"\n },\n \"hljs-regexp\": {\n \"color\": \"#50a14f\"\n },\n \"hljs-addition\": {\n \"color\": \"#50a14f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#50a14f\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#50a14f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#c18401\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#c18401\"\n },\n \"hljs-attr\": {\n \"color\": \"#986801\"\n },\n \"hljs-variable\": {\n \"color\": \"#986801\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#986801\"\n },\n \"hljs-type\": {\n \"color\": \"#986801\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#986801\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#986801\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#986801\"\n },\n \"hljs-number\": {\n \"color\": \"#986801\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4078f2\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4078f2\"\n },\n \"hljs-link\": {\n \"color\": \"#4078f2\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-meta\": {\n \"color\": \"#4078f2\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#4078f2\"\n },\n \"hljs-title\": {\n \"color\": \"#4078f2\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#b7a68e url(./brown-papersq.png)\",\n \"color\": \"#363c69\"\n },\n \"hljs-keyword\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-subst\": {\n \"color\": \"#363c69\"\n },\n \"hljs-string\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-title\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-symbol\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-bullet\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-addition\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-variable\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-link\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-name\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"#802022\"\n },\n \"hljs-quote\": {\n \"color\": \"#802022\"\n },\n \"hljs-meta\": {\n \"color\": \"#802022\"\n },\n \"hljs-deletion\": {\n \"color\": \"#802022\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#222\",\n \"color\": \"#fff\"\n },\n \"hljs-comment\": {\n \"color\": \"#777\"\n },\n \"hljs-quote\": {\n \"color\": \"#777\"\n },\n \"hljs-variable\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-tag\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-meta\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-number\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-literal\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-params\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-link\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-deletion\": {\n \"color\": \"#ab875d\"\n },\n \"hljs-section\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-title\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-name\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-type\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-attribute\": {\n \"color\": \"#9b869b\"\n },\n \"hljs-string\": {\n \"color\": \"#8f9c6c\"\n },\n \"hljs-keyword\": {\n \"color\": \"#8f9c6c\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#8f9c6c\"\n },\n \"hljs-addition\": {\n \"color\": \"#8f9c6c\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fff\",\n \"color\": \"#000\"\n },\n \"hljs-subst\": {\n \"color\": \"#000\"\n },\n \"hljs-string\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-meta\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-symbol\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-addition\": {\n \"color\": \"#756bb1\"\n },\n \"hljs-comment\": {\n \"color\": \"#636363\"\n },\n \"hljs-quote\": {\n \"color\": \"#636363\"\n },\n \"hljs-number\": {\n \"color\": \"#31a354\"\n },\n \"hljs-regexp\": {\n \"color\": \"#31a354\"\n },\n \"hljs-literal\": {\n \"color\": \"#31a354\"\n },\n \"hljs-bullet\": {\n \"color\": \"#31a354\"\n },\n \"hljs-link\": {\n \"color\": \"#31a354\"\n },\n \"hljs-deletion\": {\n \"color\": \"#88f\"\n },\n \"hljs-variable\": {\n \"color\": \"#88f\"\n },\n \"hljs-keyword\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-title\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-section\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-built_in\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-doctag\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-type\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-tag\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-name\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-strong\": {\n \"color\": \"#3182bd\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-attribute\": {\n \"color\": \"#e6550d\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#2b2b2b\",\n \"color\": \"#bababa\"\n },\n \"hljs-strong\": {\n \"color\": \"#a8a8a2\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#a8a8a2\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-quote\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-link\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-number\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-regexp\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-literal\": {\n \"color\": \"#6896ba\"\n },\n \"hljs-code\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-keyword\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-section\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-attribute\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-name\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-variable\": {\n \"color\": \"#cb7832\"\n },\n \"hljs-params\": {\n \"color\": \"#b9b9b9\"\n },\n \"hljs-string\": {\n \"color\": \"#6a8759\"\n },\n \"hljs-subst\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-type\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-built_in\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-symbol\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-addition\": {\n \"color\": \"#e0c46c\"\n },\n \"hljs-comment\": {\n \"color\": \"#7f7f7f\"\n },\n \"hljs-deletion\": {\n \"color\": \"#7f7f7f\"\n },\n \"hljs-meta\": {\n \"color\": \"#7f7f7f\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#444\",\n \"color\": \"#ddd\"\n },\n \"hljs-keyword\": {\n \"color\": \"white\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"white\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"white\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"white\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-link\": {\n \"color\": \"white\"\n },\n \"hljs-subst\": {\n \"color\": \"#ddd\"\n },\n \"hljs-string\": {\n \"color\": \"#d88\"\n },\n \"hljs-title\": {\n \"color\": \"#d88\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"color\": \"#d88\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#d88\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#d88\"\n },\n \"hljs-symbol\": {\n \"color\": \"#d88\"\n },\n \"hljs-bullet\": {\n \"color\": \"#d88\"\n },\n \"hljs-built_in\": {\n \"color\": \"#d88\"\n },\n \"hljs-addition\": {\n \"color\": \"#d88\"\n },\n \"hljs-variable\": {\n \"color\": \"#d88\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#d88\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d88\"\n },\n \"hljs-comment\": {\n \"color\": \"#777\"\n },\n \"hljs-quote\": {\n \"color\": \"#777\"\n },\n \"hljs-deletion\": {\n \"color\": \"#777\"\n },\n \"hljs-meta\": {\n \"color\": \"#777\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#000\",\n \"background\": \"#f8f8ff\"\n },\n \"hljs-comment\": {\n \"color\": \"#408080\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#408080\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#954121\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#954121\"\n },\n \"hljs-literal\": {\n \"color\": \"#954121\"\n },\n \"hljs-subst\": {\n \"color\": \"#954121\"\n },\n \"hljs-number\": {\n \"color\": \"#40a070\"\n },\n \"hljs-string\": {\n \"color\": \"#219161\"\n },\n \"hljs-doctag\": {\n \"color\": \"#219161\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#19469d\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#19469d\"\n },\n \"hljs-section\": {\n \"color\": \"#19469d\"\n },\n \"hljs-type\": {\n \"color\": \"#19469d\"\n },\n \"hljs-params\": {\n \"color\": \"#00f\"\n },\n \"hljs-title\": {\n \"color\": \"#458\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-tag\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-name\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-attribute\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-variable\": {\n \"color\": \"#008080\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#008080\"\n },\n \"hljs-regexp\": {\n \"color\": \"#b68\"\n },\n \"hljs-link\": {\n \"color\": \"#b68\"\n },\n \"hljs-symbol\": {\n \"color\": \"#990073\"\n },\n \"hljs-bullet\": {\n \"color\": \"#990073\"\n },\n \"hljs-built_in\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-meta\": {\n \"color\": \"#999\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-deletion\": {\n \"background\": \"#fdd\"\n },\n \"hljs-addition\": {\n \"background\": \"#dfd\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#282a36\",\n \"color\": \"#f8f8f2\"\n },\n \"hljs-keyword\": {\n \"color\": \"#8be9fd\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#8be9fd\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#8be9fd\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#8be9fd\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-link\": {\n \"color\": \"#8be9fd\"\n },\n \"hljs-function .hljs-keyword\": {\n \"color\": \"#ff79c6\"\n },\n \"hljs-subst\": {\n \"color\": \"#f8f8f2\"\n },\n \"hljs-string\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-title\": {\n \"color\": \"#f1fa8c\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"color\": \"#f1fa8c\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#f1fa8c\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-symbol\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-bullet\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-addition\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-variable\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#f1fa8c\"\n },\n \"hljs-comment\": {\n \"color\": \"#6272a4\"\n },\n \"hljs-quote\": {\n \"color\": \"#6272a4\"\n },\n \"hljs-deletion\": {\n \"color\": \"#6272a4\"\n },\n \"hljs-meta\": {\n \"color\": \"#6272a4\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#000080\",\n \"color\": \"#0ff\"\n },\n \"hljs-subst\": {\n \"color\": \"#0ff\"\n },\n \"hljs-string\": {\n \"color\": \"#ff0\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ff0\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ff0\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ff0\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ff0\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ff0\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#ff0\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ff0\"\n },\n \"hljs-addition\": {\n \"color\": \"#ff0\"\n },\n \"hljs-keyword\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#fff\"\n },\n \"hljs-name\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#fff\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#fff\"\n },\n \"hljs-variable\": {\n \"color\": \"#fff\"\n },\n \"hljs-comment\": {\n \"color\": \"#888\"\n },\n \"hljs-quote\": {\n \"color\": \"#888\"\n },\n \"hljs-doctag\": {\n \"color\": \"#888\"\n },\n \"hljs-deletion\": {\n \"color\": \"#888\"\n },\n \"hljs-number\": {\n \"color\": \"#0f0\"\n },\n \"hljs-regexp\": {\n \"color\": \"#0f0\"\n },\n \"hljs-literal\": {\n \"color\": \"#0f0\"\n },\n \"hljs-link\": {\n \"color\": \"#0f0\"\n },\n \"hljs-meta\": {\n \"color\": \"#008080\"\n },\n \"hljs-title\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#eee\",\n \"color\": \"black\"\n },\n \"hljs-link\": {\n \"color\": \"#070\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#070\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-attribute\": {\n \"color\": \"#070\"\n },\n \"hljs-addition\": {\n \"color\": \"#070\"\n },\n \"hljs-strong\": {\n \"color\": \"#d14\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-string\": {\n \"color\": \"#d14\"\n },\n \"hljs-deletion\": {\n \"color\": \"#d14\"\n },\n \"hljs-quote\": {\n \"color\": \"#998\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-comment\": {\n \"color\": \"#998\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-section\": {\n \"color\": \"#900\"\n },\n \"hljs-title\": {\n \"color\": \"#900\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#458\"\n },\n \"hljs-type\": {\n \"color\": \"#458\"\n },\n \"hljs-variable\": {\n \"color\": \"#336699\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#336699\"\n },\n \"hljs-bullet\": {\n \"color\": \"#997700\"\n },\n \"hljs-meta\": {\n \"color\": \"#3344bb\"\n },\n \"hljs-code\": {\n \"color\": \"#099\"\n },\n \"hljs-number\": {\n \"color\": \"#099\"\n },\n \"hljs-literal\": {\n \"color\": \"#099\"\n },\n \"hljs-keyword\": {\n \"color\": \"#099\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#099\"\n },\n \"hljs-regexp\": {\n \"backgroundColor\": \"#fff0ff\",\n \"color\": \"#880088\"\n },\n \"hljs-symbol\": {\n \"color\": \"#990073\"\n },\n \"hljs-tag\": {\n \"color\": \"#007700\"\n },\n \"hljs-name\": {\n \"color\": \"#007700\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#007700\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#007700\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"background\": \"white\",\n \"padding\": \"0.5em\",\n \"color\": \"#333333\",\n \"overflowX\": \"auto\"\n },\n \"hljs-comment\": {\n \"color\": \"#969896\"\n },\n \"hljs-meta\": {\n \"color\": \"#969896\"\n },\n \"hljs-variable\": {\n \"color\": \"#df5000\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#df5000\"\n },\n \"hljs-strong\": {\n \"color\": \"#df5000\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#df5000\"\n },\n \"hljs-quote\": {\n \"color\": \"#df5000\"\n },\n \"hljs-keyword\": {\n \"color\": \"#d73a49\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#d73a49\"\n },\n \"hljs-type\": {\n \"color\": \"#d73a49\"\n },\n \"hljs-literal\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-symbol\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-bullet\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-attribute\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-section\": {\n \"color\": \"#63a35c\"\n },\n \"hljs-name\": {\n \"color\": \"#63a35c\"\n },\n \"hljs-tag\": {\n \"color\": \"#333333\"\n },\n \"hljs-title\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-attr\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#6f42c1\"\n },\n \"hljs-addition\": {\n \"color\": \"#55a532\",\n \"backgroundColor\": \"#eaffea\"\n },\n \"hljs-deletion\": {\n \"color\": \"#bd2c00\",\n \"backgroundColor\": \"#ffecec\"\n },\n \"hljs-link\": {\n \"textDecoration\": \"underline\"\n },\n \"hljs-number\": {\n \"color\": \"#005cc5\"\n },\n \"hljs-string\": {\n \"color\": \"#032f62\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#333\",\n \"background\": \"#f8f8f8\"\n },\n \"hljs-comment\": {\n \"color\": \"#998\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#998\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-subst\": {\n \"color\": \"#333\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-number\": {\n \"color\": \"#008080\"\n },\n \"hljs-literal\": {\n \"color\": \"#008080\"\n },\n \"hljs-variable\": {\n \"color\": \"#008080\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#008080\"\n },\n \"hljs-tag .hljs-attr\": {\n \"color\": \"#008080\"\n },\n \"hljs-string\": {\n \"color\": \"#d14\"\n },\n \"hljs-doctag\": {\n \"color\": \"#d14\"\n },\n \"hljs-title\": {\n \"color\": \"#900\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#900\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#900\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#458\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#458\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-tag\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-name\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-attribute\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-regexp\": {\n \"color\": \"#009926\"\n },\n \"hljs-link\": {\n \"color\": \"#009926\"\n },\n \"hljs-symbol\": {\n \"color\": \"#990073\"\n },\n \"hljs-bullet\": {\n \"color\": \"#990073\"\n },\n \"hljs-built_in\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#0086b3\"\n },\n \"hljs-meta\": {\n \"color\": \"#999\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-deletion\": {\n \"background\": \"#fdd\"\n },\n \"hljs-addition\": {\n \"background\": \"#dfd\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#222222\",\n \"color\": \"#C0C0C0\"\n },\n \"hljs-keyword\": {\n \"color\": \"#FFB871\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-built_in\": {\n \"color\": \"#FFB871\"\n },\n \"hljs-literal\": {\n \"color\": \"#FF8080\"\n },\n \"hljs-symbol\": {\n \"color\": \"#58E55A\"\n },\n \"hljs-comment\": {\n \"color\": \"#5B995B\"\n },\n \"hljs-string\": {\n \"color\": \"#FFFF00\"\n },\n \"hljs-number\": {\n \"color\": \"#FF8080\"\n },\n \"hljs-attribute\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-doctag\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-name\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-bullet\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-code\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-addition\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-regexp\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-variable\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-link\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-type\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-quote\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-deletion\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-title\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-section\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-function\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-meta\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-subst\": {\n \"color\": \"#C0C0C0\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"white\",\n \"color\": \"black\"\n },\n \"hljs-comment\": {\n \"color\": \"#800\"\n },\n \"hljs-quote\": {\n \"color\": \"#800\"\n },\n \"hljs-keyword\": {\n \"color\": \"#008\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#008\"\n },\n \"hljs-section\": {\n \"color\": \"#008\"\n },\n \"hljs-title\": {\n \"color\": \"#606\"\n },\n \"hljs-name\": {\n \"color\": \"#008\"\n },\n \"hljs-variable\": {\n \"color\": \"#660\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#660\"\n },\n \"hljs-string\": {\n \"color\": \"#080\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#080\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#080\"\n },\n \"hljs-regexp\": {\n \"color\": \"#080\"\n },\n \"hljs-literal\": {\n \"color\": \"#066\"\n },\n \"hljs-symbol\": {\n \"color\": \"#066\"\n },\n \"hljs-bullet\": {\n \"color\": \"#066\"\n },\n \"hljs-meta\": {\n \"color\": \"#066\"\n },\n \"hljs-number\": {\n \"color\": \"#066\"\n },\n \"hljs-link\": {\n \"color\": \"#066\"\n },\n \"hljs-doctag\": {\n \"color\": \"#606\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#606\"\n },\n \"hljs-attr\": {\n \"color\": \"#606\"\n },\n \"hljs-built_in\": {\n \"color\": \"#606\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#606\"\n },\n \"hljs-params\": {\n \"color\": \"#606\"\n },\n \"hljs-attribute\": {\n \"color\": \"#000\"\n },\n \"hljs-subst\": {\n \"color\": \"#000\"\n },\n \"hljs-formula\": {\n \"backgroundColor\": \"#eee\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#9B703F\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#9B703F\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#baeeba\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#ffc8bd\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"linear-gradient(166deg, rgba(80,31,122,1) 0%, rgba(40,32,179,1) 80%)\",\n \"color\": \"#e7e4eb\"\n },\n \"hljs-subtr\": {\n \"color\": \"#e7e4eb\"\n },\n \"hljs-doctag\": {\n \"color\": \"#af8dd9\"\n },\n \"hljs-meta\": {\n \"color\": \"#af8dd9\"\n },\n \"hljs-comment\": {\n \"color\": \"#af8dd9\"\n },\n \"hljs-quote\": {\n \"color\": \"#af8dd9\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#AEFBFF\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#AEFBFF\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#AEFBFF\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#AEFBFF\"\n },\n \"hljs-attr\": {\n \"color\": \"#AEFBFF\"\n },\n \"hljs-tag\": {\n \"color\": \"#AEFBFF\"\n },\n \"hljs-params\": {\n \"color\": \"#F19FFF\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#F19FFF\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#F19FFF\"\n },\n \"hljs-keyword\": {\n \"color\": \"#17fc95\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#17fc95\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#17fc95\"\n },\n \"hljs-symbol\": {\n \"color\": \"#17fc95\"\n },\n \"hljs-type\": {\n \"color\": \"#17fc95\"\n },\n \"hljs-addition\": {\n \"color\": \"#E7FF9F\"\n },\n \"hljs-number\": {\n \"color\": \"#C5FE00\"\n },\n \"hljs-link\": {\n \"color\": \"#C5FE00\"\n },\n \"hljs-string\": {\n \"color\": \"#38c0ff\"\n },\n \"hljs-attribute\": {\n \"color\": \"#E7FF9F\"\n },\n \"hljs-variable\": {\n \"color\": \"#E447FF\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#E447FF\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-built_in\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-formula\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-name\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-title\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-class\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-function\": {\n \"color\": \"#FFC800\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#FF9E44\"\n },\n \"hljs-deletion\": {\n \"color\": \"#FF9E44\"\n },\n \"hljs-literal\": {\n \"color\": \"#FF9E44\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"linear-gradient(142deg, rgba(255,253,141,1) 0%, rgba(252,183,255,1) 35%, rgba(144,236,255,1) 100%)\",\n \"color\": \"#250482\"\n },\n \"hljs-subtr\": {\n \"color\": \"#01958B\"\n },\n \"hljs-doctag\": {\n \"color\": \"#CB7200\"\n },\n \"hljs-meta\": {\n \"color\": \"#CB7200\"\n },\n \"hljs-comment\": {\n \"color\": \"#CB7200\"\n },\n \"hljs-quote\": {\n \"color\": \"#CB7200\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#07BD5F\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#07BD5F\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#07BD5F\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#07BD5F\"\n },\n \"hljs-attr\": {\n \"color\": \"#07BD5F\"\n },\n \"hljs-tag\": {\n \"color\": \"#07BD5F\"\n },\n \"hljs-params\": {\n \"color\": \"#43449F\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#43449F\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#43449F\"\n },\n \"hljs-keyword\": {\n \"color\": \"#7D2801\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#7D2801\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#7D2801\"\n },\n \"hljs-symbol\": {\n \"color\": \"#7D2801\"\n },\n \"hljs-type\": {\n \"color\": \"#7D2801\"\n },\n \"hljs-addition\": {\n \"color\": \"#296562\"\n },\n \"hljs-number\": {\n \"color\": \"#7F0096\"\n },\n \"hljs-link\": {\n \"color\": \"#7F0096\"\n },\n \"hljs-string\": {\n \"color\": \"#38c0ff\"\n },\n \"hljs-attribute\": {\n \"color\": \"#296562\"\n },\n \"hljs-variable\": {\n \"color\": \"#025C8F\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#025C8F\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#529117\"\n },\n \"hljs-built_in\": {\n \"color\": \"#529117\"\n },\n \"hljs-formula\": {\n \"color\": \"#529117\"\n },\n \"hljs-name\": {\n \"color\": \"#529117\"\n },\n \"hljs-title\": {\n \"color\": \"#529117\"\n },\n \"hljs-class\": {\n \"color\": \"#529117\"\n },\n \"hljs-function\": {\n \"color\": \"#529117\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#AD13FF\"\n },\n \"hljs-deletion\": {\n \"color\": \"#AD13FF\"\n },\n \"hljs-literal\": {\n \"color\": \"#AD13FF\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#333\",\n \"background\": \"#fff\"\n },\n \"hljs-comment\": {\n \"color\": \"#777\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#777\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-subst\": {\n \"color\": \"#333\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-number\": {\n \"color\": \"#777\"\n },\n \"hljs-literal\": {\n \"color\": \"#777\"\n },\n \"hljs-string\": {\n \"color\": \"#333\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat\"\n },\n \"hljs-doctag\": {\n \"color\": \"#333\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat\"\n },\n \"hljs-formula\": {\n \"color\": \"#333\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat\"\n },\n \"hljs-title\": {\n \"color\": \"#000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"color\": \"#333\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-tag\": {\n \"color\": \"#333\"\n },\n \"hljs-regexp\": {\n \"color\": \"#333\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat\"\n },\n \"hljs-symbol\": {\n \"color\": \"#000\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat\"\n },\n \"hljs-bullet\": {\n \"color\": \"#000\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat\"\n },\n \"hljs-link\": {\n \"color\": \"#000\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat\"\n },\n \"hljs-built_in\": {\n \"color\": \"#000\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#000\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-meta\": {\n \"color\": \"#999\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-deletion\": {\n \"color\": \"#fff\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat\"\n },\n \"hljs-addition\": {\n \"color\": \"#000\",\n \"background\": \"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#282828\",\n \"color\": \"#ebdbb2\"\n },\n \"hljs-subst\": {\n \"color\": \"#ebdbb2\"\n },\n \"hljs-deletion\": {\n \"color\": \"#fb4934\"\n },\n \"hljs-formula\": {\n \"color\": \"#fb4934\"\n },\n \"hljs-keyword\": {\n \"color\": \"#fb4934\"\n },\n \"hljs-link\": {\n \"color\": \"#fb4934\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#fb4934\"\n },\n \"hljs-built_in\": {\n \"color\": \"#83a598\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#83a598\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-name\": {\n \"color\": \"#83a598\"\n },\n \"hljs-quote\": {\n \"color\": \"#83a598\"\n },\n \"hljs-strong\": {\n \"color\": \"#83a598\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-title\": {\n \"color\": \"#83a598\"\n },\n \"hljs-variable\": {\n \"color\": \"#83a598\"\n },\n \"hljs-attr\": {\n \"color\": \"#fabd2f\"\n },\n \"hljs-params\": {\n \"color\": \"#fabd2f\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#fabd2f\"\n },\n \"hljs-type\": {\n \"color\": \"#fabd2f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-doctag\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-literal\": {\n \"color\": \"#d3869b\"\n },\n \"hljs-number\": {\n \"color\": \"#d3869b\"\n },\n \"hljs-code\": {\n \"color\": \"#fe8019\"\n },\n \"hljs-meta\": {\n \"color\": \"#fe8019\"\n },\n \"hljs-regexp\": {\n \"color\": \"#fe8019\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#fe8019\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#fe8019\"\n },\n \"hljs-addition\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-section\": {\n \"color\": \"#b8bb26\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-string\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-symbol\": {\n \"color\": \"#b8bb26\"\n },\n \"hljs-attribute\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-bullet\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-class\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-function\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-function .hljs-keyword\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#8ec07c\"\n },\n \"hljs-tag\": {\n \"color\": \"#8ec07c\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"#928374\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-link_label\": {\n \"color\": \"#d3869b\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fbf1c7\",\n \"color\": \"#3c3836\"\n },\n \"hljs-subst\": {\n \"color\": \"#3c3836\"\n },\n \"hljs-deletion\": {\n \"color\": \"#9d0006\"\n },\n \"hljs-formula\": {\n \"color\": \"#9d0006\"\n },\n \"hljs-keyword\": {\n \"color\": \"#9d0006\"\n },\n \"hljs-link\": {\n \"color\": \"#9d0006\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#9d0006\"\n },\n \"hljs-built_in\": {\n \"color\": \"#076678\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#076678\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-name\": {\n \"color\": \"#076678\"\n },\n \"hljs-quote\": {\n \"color\": \"#076678\"\n },\n \"hljs-strong\": {\n \"color\": \"#076678\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-title\": {\n \"color\": \"#076678\"\n },\n \"hljs-variable\": {\n \"color\": \"#076678\"\n },\n \"hljs-attr\": {\n \"color\": \"#b57614\"\n },\n \"hljs-params\": {\n \"color\": \"#b57614\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#b57614\"\n },\n \"hljs-type\": {\n \"color\": \"#b57614\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-doctag\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-literal\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-number\": {\n \"color\": \"#8f3f71\"\n },\n \"hljs-code\": {\n \"color\": \"#af3a03\"\n },\n \"hljs-meta\": {\n \"color\": \"#af3a03\"\n },\n \"hljs-regexp\": {\n \"color\": \"#af3a03\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#af3a03\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#af3a03\"\n },\n \"hljs-addition\": {\n \"color\": \"#79740e\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#79740e\"\n },\n \"hljs-section\": {\n \"color\": \"#79740e\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#79740e\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#79740e\"\n },\n \"hljs-string\": {\n \"color\": \"#79740e\"\n },\n \"hljs-symbol\": {\n \"color\": \"#79740e\"\n },\n \"hljs-attribute\": {\n \"color\": \"#427b58\"\n },\n \"hljs-bullet\": {\n \"color\": \"#427b58\"\n },\n \"hljs-class\": {\n \"color\": \"#427b58\"\n },\n \"hljs-function\": {\n \"color\": \"#427b58\"\n },\n \"hljs-function .hljs-keyword\": {\n \"color\": \"#427b58\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#427b58\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#427b58\"\n },\n \"hljs-tag\": {\n \"color\": \"#427b58\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"#928374\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-link_label\": {\n \"color\": \"#8f3f71\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#989498\"\n },\n \"hljs-quote\": {\n \"color\": \"#989498\"\n },\n \"hljs-variable\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-attribute\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-tag\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-name\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-regexp\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-link\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-deletion\": {\n \"color\": \"#dd464c\"\n },\n \"hljs-number\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-built_in\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-literal\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-type\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-params\": {\n \"color\": \"#fd8b19\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#fdcc59\"\n },\n \"hljs-string\": {\n \"color\": \"#8fc13e\"\n },\n \"hljs-symbol\": {\n \"color\": \"#8fc13e\"\n },\n \"hljs-bullet\": {\n \"color\": \"#8fc13e\"\n },\n \"hljs-addition\": {\n \"color\": \"#8fc13e\"\n },\n \"hljs-meta\": {\n \"color\": \"#149b93\"\n },\n \"hljs-function\": {\n \"color\": \"#1290bf\"\n },\n \"hljs-section\": {\n \"color\": \"#1290bf\"\n },\n \"hljs-title\": {\n \"color\": \"#1290bf\"\n },\n \"hljs-keyword\": {\n \"color\": \"#c85e7c\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#c85e7c\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#322931\",\n \"color\": \"#b9b5b8\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#1d1f21\",\n \"color\": \"#c5c8c6\"\n },\n \"hljs::selection\": {\n \"background\": \"#373b41\"\n },\n \"hljs span::selection\": {\n \"background\": \"#373b41\"\n },\n \"hljs::-moz-selection\": {\n \"background\": \"#373b41\"\n },\n \"hljs span::-moz-selection\": {\n \"background\": \"#373b41\"\n },\n \"hljs-title\": {\n \"color\": \"#f0c674\"\n },\n \"hljs-name\": {\n \"color\": \"#f0c674\"\n },\n \"hljs-comment\": {\n \"color\": \"#707880\"\n },\n \"hljs-meta\": {\n \"color\": \"#707880\"\n },\n \"hljs-meta .hljs-keyword\": {\n \"color\": \"#707880\"\n },\n \"hljs-number\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-symbol\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-literal\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-deletion\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-link\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-string\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-doctag\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-addition\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-regexp\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b294bb\"\n },\n \"hljs-code\": {\n \"color\": \"#b294bb\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#b294bb\"\n },\n \"hljs-keyword\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-bullet\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-tag\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-subst\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-variable\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-type\": {\n \"color\": \"#de935f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#de935f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#de935f\"\n },\n \"hljs-quote\": {\n \"color\": \"#de935f\"\n },\n \"hljs-section\": {\n \"color\": \"#de935f\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#de935f\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#000\",\n \"background\": \"#fff\"\n },\n \"hljs-subst\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#000\"\n },\n \"hljs-title\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#000\"\n },\n \"hljs-comment\": {\n \"color\": \"#808080\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#808080\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-meta\": {\n \"color\": \"#808000\"\n },\n \"hljs-tag\": {\n \"background\": \"#efefef\"\n },\n \"hljs-section\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-literal\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-type\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-selector-id\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-selector-class\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000080\"\n },\n \"hljs-attribute\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#0000ff\"\n },\n \"hljs-number\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#0000ff\"\n },\n \"hljs-regexp\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#0000ff\"\n },\n \"hljs-link\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#0000ff\"\n },\n \"hljs-string\": {\n \"color\": \"#008000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-symbol\": {\n \"color\": \"#000\",\n \"background\": \"#d0eded\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#000\",\n \"background\": \"#d0eded\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-formula\": {\n \"color\": \"#000\",\n \"background\": \"#d0eded\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"textDecoration\": \"underline\"\n },\n \"hljs-variable\": {\n \"color\": \"#660e7a\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#660e7a\"\n },\n \"hljs-addition\": {\n \"background\": \"#baeeba\"\n },\n \"hljs-deletion\": {\n \"background\": \"#ffc8bd\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#000\",\n \"color\": \"#f8f8f8\"\n },\n \"hljs-comment\": {\n \"color\": \"#7c7c7c\"\n },\n \"hljs-quote\": {\n \"color\": \"#7c7c7c\"\n },\n \"hljs-meta\": {\n \"color\": \"#7c7c7c\"\n },\n \"hljs-keyword\": {\n \"color\": \"#96cbfe\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#96cbfe\"\n },\n \"hljs-tag\": {\n \"color\": \"#96cbfe\"\n },\n \"hljs-name\": {\n \"color\": \"#96cbfe\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-string\": {\n \"color\": \"#a8ff60\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#a8ff60\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#a8ff60\"\n },\n \"hljs-addition\": {\n \"color\": \"#a8ff60\"\n },\n \"hljs-subst\": {\n \"color\": \"#daefa3\"\n },\n \"hljs-regexp\": {\n \"color\": \"#e9c062\"\n },\n \"hljs-link\": {\n \"color\": \"#e9c062\"\n },\n \"hljs-title\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-section\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-type\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-doctag\": {\n \"color\": \"#ffffb6\"\n },\n \"hljs-symbol\": {\n \"color\": \"#c6c5fe\"\n },\n \"hljs-bullet\": {\n \"color\": \"#c6c5fe\"\n },\n \"hljs-variable\": {\n \"color\": \"#c6c5fe\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#c6c5fe\"\n },\n \"hljs-literal\": {\n \"color\": \"#c6c5fe\"\n },\n \"hljs-number\": {\n \"color\": \"#ff73fd\"\n },\n \"hljs-deletion\": {\n \"color\": \"#ff73fd\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#404040\",\n \"color\": \"#f0f0f0\"\n },\n \"hljs-subst\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-comment\": {\n \"color\": \"#b5b5b5\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"color\": \"#f0f0f0\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-string\": {\n \"color\": \"#97bf0d\"\n },\n \"hljs-type\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-number\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-quote\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f0f0f0\"\n },\n \"hljs-title\": {\n \"color\": \"#df471e\"\n },\n \"hljs-section\": {\n \"color\": \"#df471e\"\n },\n \"hljs-title>.hljs-built_in\": {\n \"color\": \"#81bce9\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-regexp\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-symbol\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-variable\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-link\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#e2c696\"\n },\n \"hljs-built_in\": {\n \"color\": \"#97bf0d\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#97bf0d\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#397300\"\n },\n \"hljs-code\": {\n \"color\": \"#397300\"\n },\n \"hljs-addition\": {\n \"color\": \"#397300\"\n },\n \"hljs-class\": {\n \"color\": \"#ce9d4d\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta\": {\n \"color\": \"#1f7199\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"white\",\n \"color\": \"black\"\n },\n \"hljs-subst\": {\n \"color\": \"black\"\n },\n \"hljs-comment\": {\n \"color\": \"#555555\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-string\": {\n \"color\": \"#000080\"\n },\n \"hljs-type\": {\n \"color\": \"#000000\"\n },\n \"hljs-number\": {\n \"color\": \"#000000\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#000000\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#000000\"\n },\n \"hljs-quote\": {\n \"color\": \"#000000\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#000000\"\n },\n \"hljs-deletion\": {\n \"color\": \"#000000\"\n },\n \"hljs-title\": {\n \"color\": \"#fb2c00\"\n },\n \"hljs-section\": {\n \"color\": \"#fb2c00\"\n },\n \"hljs-title>.hljs-built_in\": {\n \"color\": \"#008080\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-regexp\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-symbol\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-variable\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-link\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#5e1700\"\n },\n \"hljs-built_in\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#000080\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#397300\"\n },\n \"hljs-code\": {\n \"color\": \"#397300\"\n },\n \"hljs-addition\": {\n \"color\": \"#397300\"\n },\n \"hljs-class\": {\n \"color\": \"#6f1C00\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta\": {\n \"color\": \"#1f7199\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#d6baad\"\n },\n \"hljs-quote\": {\n \"color\": \"#d6baad\"\n },\n \"hljs-variable\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-tag\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-name\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-regexp\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-meta\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-number\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-literal\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-type\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-params\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-link\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-title\": {\n \"color\": \"#f06431\"\n },\n \"hljs-section\": {\n \"color\": \"#f06431\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f06431\"\n },\n \"hljs-string\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-symbol\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-bullet\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-addition\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-keyword\": {\n \"color\": \"#98676a\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#98676a\"\n },\n \"hljs-function\": {\n \"color\": \"#98676a\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#221a0f\",\n \"color\": \"#d3af86\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#a57a4c\"\n },\n \"hljs-quote\": {\n \"color\": \"#a57a4c\"\n },\n \"hljs-variable\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-tag\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-name\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-regexp\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-meta\": {\n \"color\": \"#dc3958\"\n },\n \"hljs-number\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-literal\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-type\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-params\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-link\": {\n \"color\": \"#f79a32\"\n },\n \"hljs-title\": {\n \"color\": \"#f06431\"\n },\n \"hljs-section\": {\n \"color\": \"#f06431\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f06431\"\n },\n \"hljs-string\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-symbol\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-bullet\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-addition\": {\n \"color\": \"#889b4a\"\n },\n \"hljs-keyword\": {\n \"color\": \"#98676a\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#98676a\"\n },\n \"hljs-function\": {\n \"color\": \"#98676a\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#fbebd4\",\n \"color\": \"#84613d\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fff\",\n \"color\": \"#444\"\n },\n \"hljs-name\": {\n \"color\": \"#01a3a3\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-tag\": {\n \"color\": \"#778899\"\n },\n \"hljs-meta\": {\n \"color\": \"#778899\"\n },\n \"hljs-subst\": {\n \"color\": \"#444\"\n },\n \"hljs-comment\": {\n \"color\": \"#888888\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-string\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-number\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-quote\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-deletion\": {\n \"color\": \"#4286f4\"\n },\n \"hljs-title\": {\n \"color\": \"#4286f4\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#4286f4\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-symbol\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-link\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-literal\": {\n \"color\": \"#62bcbc\"\n },\n \"hljs-built_in\": {\n \"color\": \"#25c6c6\"\n },\n \"hljs-bullet\": {\n \"color\": \"#25c6c6\"\n },\n \"hljs-code\": {\n \"color\": \"#25c6c6\"\n },\n \"hljs-addition\": {\n \"color\": \"#25c6c6\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#8d8d8d\"\n },\n \"hljs-quote\": {\n \"color\": \"#b3c7d8\"\n },\n \"hljs-variable\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-tag\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-name\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-regexp\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-deletion\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-number\": {\n \"color\": \"#de935f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#de935f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#de935f\"\n },\n \"hljs-literal\": {\n \"color\": \"#de935f\"\n },\n \"hljs-type\": {\n \"color\": \"#de935f\"\n },\n \"hljs-subst\\n.hljs-link\": {\n \"color\": \"#de935f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f0c674\"\n },\n \"hljs-string\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-bullet\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-params\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-addition\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-title\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-meta\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-section\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#be94bb\"\n },\n \"hljs-keyword\": {\n \"color\": \"#be94bb\"\n },\n \"hljs-function\": {\n \"color\": \"#be94bb\"\n },\n \"hljs-class\": {\n \"color\": \"#be94bb\"\n },\n \"hljs-symbol\": {\n \"color\": \"#dbc4d9\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#303030\",\n \"color\": \"#c5c8c6\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"backgroundColor\": \"#f4f4f4\",\n \"color\": \"black\"\n },\n \"hljs-subst\": {\n \"color\": \"black\"\n },\n \"hljs-string\": {\n \"color\": \"#050\"\n },\n \"hljs-title\": {\n \"color\": \"navy\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-symbol\": {\n \"color\": \"#050\"\n },\n \"hljs-bullet\": {\n \"color\": \"#050\"\n },\n \"hljs-attribute\": {\n \"color\": \"#050\"\n },\n \"hljs-addition\": {\n \"color\": \"#050\"\n },\n \"hljs-variable\": {\n \"color\": \"#050\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#050\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#050\"\n },\n \"hljs-comment\": {\n \"color\": \"#777\"\n },\n \"hljs-quote\": {\n \"color\": \"#777\"\n },\n \"hljs-number\": {\n \"color\": \"#800\"\n },\n \"hljs-regexp\": {\n \"color\": \"#800\"\n },\n \"hljs-literal\": {\n \"color\": \"#800\"\n },\n \"hljs-type\": {\n \"color\": \"#800\"\n },\n \"hljs-link\": {\n \"color\": \"#800\"\n },\n \"hljs-deletion\": {\n \"color\": \"#00e\"\n },\n \"hljs-meta\": {\n \"color\": \"#00e\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-section\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-built_in\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-tag\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\",\n \"color\": \"navy\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#eaeef3\",\n \"color\": \"#00193a\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-title\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#0048ab\"\n },\n \"hljs-section\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#0048ab\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#0048ab\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-comment\": {\n \"color\": \"#738191\"\n },\n \"hljs-string\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-built_in\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-literal\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-type\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-addition\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-tag\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-quote\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#0048ab\"\n },\n \"hljs-meta\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-subst\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-regexp\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-attribute\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-deletion\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-variable\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-link\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4c81c9\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#23241f\",\n \"color\": \"#f8f8f2\"\n },\n \"hljs-tag\": {\n \"color\": \"#f8f8f2\"\n },\n \"hljs-subst\": {\n \"color\": \"#f8f8f2\"\n },\n \"hljs-strong\": {\n \"color\": \"#a8a8a2\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#a8a8a2\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-quote\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-number\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-literal\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-link\": {\n \"color\": \"#ae81ff\"\n },\n \"hljs-code\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-title\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-section\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-keyword\": {\n \"color\": \"#f92672\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#f92672\"\n },\n \"hljs-name\": {\n \"color\": \"#f92672\"\n },\n \"hljs-attr\": {\n \"color\": \"#f92672\"\n },\n \"hljs-symbol\": {\n \"color\": \"#66d9ef\"\n },\n \"hljs-attribute\": {\n \"color\": \"#66d9ef\"\n },\n \"hljs-params\": {\n \"color\": \"#f8f8f2\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#f8f8f2\"\n },\n \"hljs-string\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-type\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-built_in\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-addition\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-variable\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#e6db74\"\n },\n \"hljs-comment\": {\n \"color\": \"#75715e\"\n },\n \"hljs-deletion\": {\n \"color\": \"#75715e\"\n },\n \"hljs-meta\": {\n \"color\": \"#75715e\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#272822\",\n \"color\": \"#ddd\"\n },\n \"hljs-tag\": {\n \"color\": \"#f92672\"\n },\n \"hljs-keyword\": {\n \"color\": \"#f92672\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#f92672\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#f92672\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"color\": \"#f92672\"\n },\n \"hljs-name\": {\n \"color\": \"#f92672\"\n },\n \"hljs-code\": {\n \"color\": \"#66d9ef\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"white\"\n },\n \"hljs-attribute\": {\n \"color\": \"#bf79db\"\n },\n \"hljs-symbol\": {\n \"color\": \"#bf79db\"\n },\n \"hljs-regexp\": {\n \"color\": \"#bf79db\"\n },\n \"hljs-link\": {\n \"color\": \"#bf79db\"\n },\n \"hljs-string\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-bullet\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-subst\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-title\": {\n \"color\": \"#a6e22e\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#a6e22e\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-type\": {\n \"color\": \"#a6e22e\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-built_in\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-addition\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-variable\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#a6e22e\"\n },\n \"hljs-comment\": {\n \"color\": \"#75715e\"\n },\n \"hljs-quote\": {\n \"color\": \"#75715e\"\n },\n \"hljs-deletion\": {\n \"color\": \"#75715e\"\n },\n \"hljs-meta\": {\n \"color\": \"#75715e\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#011627\",\n \"color\": \"#d6deeb\"\n },\n \"hljs-keyword\": {\n \"color\": \"#c792ea\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-built_in\": {\n \"color\": \"#addb67\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-type\": {\n \"color\": \"#82aaff\"\n },\n \"hljs-literal\": {\n \"color\": \"#ff5874\"\n },\n \"hljs-number\": {\n \"color\": \"#F78C6C\"\n },\n \"hljs-regexp\": {\n \"color\": \"#5ca7e4\"\n },\n \"hljs-string\": {\n \"color\": \"#ecc48d\"\n },\n \"hljs-subst\": {\n \"color\": \"#d3423e\"\n },\n \"hljs-symbol\": {\n \"color\": \"#82aaff\"\n },\n \"hljs-class\": {\n \"color\": \"#ffcb8b\"\n },\n \"hljs-function\": {\n \"color\": \"#82AAFF\"\n },\n \"hljs-title\": {\n \"color\": \"#DCDCAA\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-params\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-comment\": {\n \"color\": \"#637777\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-meta\": {\n \"color\": \"#82aaff\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#82aaff\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#ecc48d\"\n },\n \"hljs-section\": {\n \"color\": \"#82b1ff\"\n },\n \"hljs-tag\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-name\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-attr\": {\n \"color\": \"#7fdbca\"\n },\n \"hljs-attribute\": {\n \"color\": \"#80cbc4\"\n },\n \"hljs-variable\": {\n \"color\": \"#addb67\"\n },\n \"hljs-bullet\": {\n \"color\": \"#d9f5dd\"\n },\n \"hljs-code\": {\n \"color\": \"#80CBC4\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#c792ea\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"color\": \"#addb67\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-formula\": {\n \"color\": \"#c792ea\"\n },\n \"hljs-link\": {\n \"color\": \"#ff869a\"\n },\n \"hljs-quote\": {\n \"color\": \"#697098\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#ff6363\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#fad430\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#addb67\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#c792ea\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#c792ea\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#c792ea\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#addb67\"\n },\n \"hljs-addition\": {\n \"color\": \"#addb67ff\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-deletion\": {\n \"color\": \"#EF535090\",\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#333\",\n \"color\": \"#fff\"\n },\n \"xml .hljs-meta\": {\n \"fontWeight\": \"bold\",\n \"fontStyle\": \"italic\",\n \"color\": \"#69f\"\n },\n \"hljs-comment\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#9c6\"\n },\n \"hljs-quote\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#9c6\"\n },\n \"hljs-name\": {\n \"color\": \"#a7a\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-keyword\": {\n \"color\": \"#a7a\"\n },\n \"hljs-attr\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#fff\"\n },\n \"hljs-string\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#bce\"\n },\n \"hljs-variable\": {\n \"color\": \"#588\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#588\"\n },\n \"hljs-code\": {\n \"color\": \"#bce\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#bce\"\n },\n \"hljs-number\": {\n \"color\": \"#bce\"\n },\n \"hljs-regexp\": {\n \"color\": \"#bce\"\n },\n \"hljs-link\": {\n \"color\": \"#bce\"\n },\n \"hljs-title\": {\n \"color\": \"#d40\"\n },\n \"hljs-symbol\": {\n \"color\": \"#d40\"\n },\n \"hljs-bullet\": {\n \"color\": \"#d40\"\n },\n \"hljs-built_in\": {\n \"color\": \"#d40\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#d40\"\n },\n \"hljs-section\": {\n \"color\": \"#a85\"\n },\n \"hljs-meta\": {\n \"color\": \"#a85\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#96c\"\n },\n \"hljs-type\": {\n \"color\": \"#96c\"\n },\n \"hljs-function .hljs-title\": {\n \"color\": \"#fff\"\n },\n \"hljs-subst\": {\n \"color\": \"#fff\"\n },\n \"hljs-formula\": {\n \"backgroundColor\": \"#eee\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#797\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#c99\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#964\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#964\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fff\",\n \"color\": \"#000\"\n },\n \"xml .hljs-meta\": {\n \"fontWeight\": \"bold\",\n \"fontStyle\": \"italic\",\n \"color\": \"#48b\"\n },\n \"hljs-comment\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#070\"\n },\n \"hljs-quote\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#070\"\n },\n \"hljs-name\": {\n \"color\": \"#808\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-keyword\": {\n \"color\": \"#808\"\n },\n \"hljs-attr\": {\n \"fontWeight\": \"bold\",\n \"color\": \"#000\"\n },\n \"hljs-string\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#00f\"\n },\n \"hljs-variable\": {\n \"color\": \"#477\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#477\"\n },\n \"hljs-code\": {\n \"color\": \"#00f\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#00f\"\n },\n \"hljs-number\": {\n \"color\": \"#00f\"\n },\n \"hljs-regexp\": {\n \"color\": \"#00f\"\n },\n \"hljs-link\": {\n \"color\": \"#00f\"\n },\n \"hljs-title\": {\n \"color\": \"#f40\"\n },\n \"hljs-symbol\": {\n \"color\": \"#f40\"\n },\n \"hljs-bullet\": {\n \"color\": \"#f40\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f40\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f40\"\n },\n \"hljs-section\": {\n \"color\": \"#642\"\n },\n \"hljs-meta\": {\n \"color\": \"#642\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#639\"\n },\n \"hljs-type\": {\n \"color\": \"#639\"\n },\n \"hljs-function .hljs-title\": {\n \"color\": \"#000\"\n },\n \"hljs-subst\": {\n \"color\": \"#000\"\n },\n \"hljs-formula\": {\n \"backgroundColor\": \"#eee\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#beb\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#fbb\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#964\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#964\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#2E3440\",\n \"color\": \"#D8DEE9\"\n },\n \"hljs-subst\": {\n \"color\": \"#D8DEE9\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#8FBCBB\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#88C0D0\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"rgba(163, 190, 140, 0.5)\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"rgba(191, 97, 106, 0.5)\"\n },\n \"hljs-built_in\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-type\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-class\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-function\": {\n \"color\": \"#88C0D0\"\n },\n \"hljs-function > .hljs-title\": {\n \"color\": \"#88C0D0\"\n },\n \"hljs-keyword\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-literal\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-symbol\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-number\": {\n \"color\": \"#B48EAD\"\n },\n \"hljs-regexp\": {\n \"color\": \"#EBCB8B\"\n },\n \"hljs-string\": {\n \"color\": \"#A3BE8C\"\n },\n \"hljs-title\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-params\": {\n \"color\": \"#D8DEE9\"\n },\n \"hljs-bullet\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-code\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-formula\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-link:hover\": {\n \"textDecoration\": \"underline\"\n },\n \"hljs-quote\": {\n \"color\": \"#4C566A\"\n },\n \"hljs-comment\": {\n \"color\": \"#4C566A\"\n },\n \"hljs-doctag\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-meta\": {\n \"color\": \"#5E81AC\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#5E81AC\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#A3BE8C\"\n },\n \"hljs-attr\": {\n \"color\": \"#8FBCBB\"\n },\n \"hljs-attribute\": {\n \"color\": \"#D8DEE9\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-name\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-section\": {\n \"color\": \"#88C0D0\"\n },\n \"hljs-tag\": {\n \"color\": \"#81A1C1\"\n },\n \"hljs-variable\": {\n \"color\": \"#D8DEE9\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#D8DEE9\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#5E81AC\"\n },\n \"abnf .hljs-attribute\": {\n \"color\": \"#88C0D0\"\n },\n \"abnf .hljs-symbol\": {\n \"color\": \"#EBCB8B\"\n },\n \"apache .hljs-attribute\": {\n \"color\": \"#88C0D0\"\n },\n \"apache .hljs-section\": {\n \"color\": \"#81A1C1\"\n },\n \"arduino .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"aspectj .hljs-meta\": {\n \"color\": \"#D08770\"\n },\n \"aspectj > .hljs-title\": {\n \"color\": \"#88C0D0\"\n },\n \"bnf .hljs-attribute\": {\n \"color\": \"#8FBCBB\"\n },\n \"clojure .hljs-name\": {\n \"color\": \"#88C0D0\"\n },\n \"clojure .hljs-symbol\": {\n \"color\": \"#EBCB8B\"\n },\n \"coq .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"cpp .hljs-meta-string\": {\n \"color\": \"#8FBCBB\"\n },\n \"css .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"css .hljs-keyword\": {\n \"color\": \"#D08770\"\n },\n \"diff .hljs-meta\": {\n \"color\": \"#8FBCBB\"\n },\n \"ebnf .hljs-attribute\": {\n \"color\": \"#8FBCBB\"\n },\n \"glsl .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"groovy .hljs-meta:not(:first-child)\": {\n \"color\": \"#D08770\"\n },\n \"haxe .hljs-meta\": {\n \"color\": \"#D08770\"\n },\n \"java .hljs-meta\": {\n \"color\": \"#D08770\"\n },\n \"ldif .hljs-attribute\": {\n \"color\": \"#8FBCBB\"\n },\n \"lisp .hljs-name\": {\n \"color\": \"#88C0D0\"\n },\n \"lua .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"moonscript .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"nginx .hljs-attribute\": {\n \"color\": \"#88C0D0\"\n },\n \"nginx .hljs-section\": {\n \"color\": \"#5E81AC\"\n },\n \"pf .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"processing .hljs-built_in\": {\n \"color\": \"#88C0D0\"\n },\n \"scss .hljs-keyword\": {\n \"color\": \"#81A1C1\"\n },\n \"stylus .hljs-keyword\": {\n \"color\": \"#81A1C1\"\n },\n \"swift .hljs-meta\": {\n \"color\": \"#D08770\"\n },\n \"vim .hljs-built_in\": {\n \"color\": \"#88C0D0\",\n \"fontStyle\": \"italic\"\n },\n \"yaml .hljs-meta\": {\n \"color\": \"#D08770\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#282b2e\",\n \"color\": \"#e0e2e4\"\n },\n \"hljs-keyword\": {\n \"color\": \"#93c763\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#93c763\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#93c763\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#93c763\"\n },\n \"hljs-number\": {\n \"color\": \"#ffcd22\"\n },\n \"hljs-attribute\": {\n \"color\": \"#668bb0\"\n },\n \"hljs-code\": {\n \"color\": \"white\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"white\"\n },\n \"hljs-section\": {\n \"color\": \"white\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d39745\"\n },\n \"hljs-link\": {\n \"color\": \"#d39745\"\n },\n \"hljs-meta\": {\n \"color\": \"#557182\"\n },\n \"hljs-tag\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-name\": {\n \"color\": \"#8cbbad\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-subst\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-type\": {\n \"color\": \"#8cbbad\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-built_in\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-addition\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-variable\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#8cbbad\"\n },\n \"hljs-string\": {\n \"color\": \"#ec7600\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ec7600\"\n },\n \"hljs-comment\": {\n \"color\": \"#818e96\"\n },\n \"hljs-quote\": {\n \"color\": \"#818e96\"\n },\n \"hljs-deletion\": {\n \"color\": \"#818e96\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#A082BD\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-title\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#65737e\"\n },\n \"hljs-quote\": {\n \"color\": \"#65737e\"\n },\n \"hljs-variable\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-tag\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-name\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-regexp\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-deletion\": {\n \"color\": \"#bf616a\"\n },\n \"hljs-number\": {\n \"color\": \"#d08770\"\n },\n \"hljs-built_in\": {\n \"color\": \"#d08770\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#d08770\"\n },\n \"hljs-literal\": {\n \"color\": \"#d08770\"\n },\n \"hljs-type\": {\n \"color\": \"#d08770\"\n },\n \"hljs-params\": {\n \"color\": \"#d08770\"\n },\n \"hljs-meta\": {\n \"color\": \"#d08770\"\n },\n \"hljs-link\": {\n \"color\": \"#d08770\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ebcb8b\"\n },\n \"hljs-string\": {\n \"color\": \"#a3be8c\"\n },\n \"hljs-symbol\": {\n \"color\": \"#a3be8c\"\n },\n \"hljs-bullet\": {\n \"color\": \"#a3be8c\"\n },\n \"hljs-addition\": {\n \"color\": \"#a3be8c\"\n },\n \"hljs-title\": {\n \"color\": \"#8fa1b3\"\n },\n \"hljs-section\": {\n \"color\": \"#8fa1b3\"\n },\n \"hljs-keyword\": {\n \"color\": \"#b48ead\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#b48ead\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#2b303b\",\n \"color\": \"#c0c5ce\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#8d8687\"\n },\n \"hljs-quote\": {\n \"color\": \"#8d8687\"\n },\n \"hljs-variable\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-tag\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-name\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-link\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-meta\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-number\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-literal\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-type\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-params\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-title\": {\n \"color\": \"#fec418\"\n },\n \"hljs-section\": {\n \"color\": \"#fec418\"\n },\n \"hljs-attribute\": {\n \"color\": \"#fec418\"\n },\n \"hljs-string\": {\n \"color\": \"#48b685\"\n },\n \"hljs-symbol\": {\n \"color\": \"#48b685\"\n },\n \"hljs-bullet\": {\n \"color\": \"#48b685\"\n },\n \"hljs-addition\": {\n \"color\": \"#48b685\"\n },\n \"hljs-keyword\": {\n \"color\": \"#815ba4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#815ba4\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#2f1e2e\",\n \"color\": \"#a39e9b\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#776e71\"\n },\n \"hljs-quote\": {\n \"color\": \"#776e71\"\n },\n \"hljs-variable\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-tag\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-name\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-link\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-meta\": {\n \"color\": \"#ef6155\"\n },\n \"hljs-number\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-literal\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-type\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-params\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f99b15\"\n },\n \"hljs-title\": {\n \"color\": \"#fec418\"\n },\n \"hljs-section\": {\n \"color\": \"#fec418\"\n },\n \"hljs-attribute\": {\n \"color\": \"#fec418\"\n },\n \"hljs-string\": {\n \"color\": \"#48b685\"\n },\n \"hljs-symbol\": {\n \"color\": \"#48b685\"\n },\n \"hljs-bullet\": {\n \"color\": \"#48b685\"\n },\n \"hljs-addition\": {\n \"color\": \"#48b685\"\n },\n \"hljs-keyword\": {\n \"color\": \"#815ba4\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#815ba4\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#e7e9db\",\n \"color\": \"#4f424c\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#dccf8f\",\n \"background\": \"url(./pojoaque.jpg) repeat scroll left top #181914\"\n },\n \"hljs-comment\": {\n \"color\": \"#586e75\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#586e75\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#b64926\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#b64926\"\n },\n \"hljs-literal\": {\n \"color\": \"#b64926\"\n },\n \"hljs-addition\": {\n \"color\": \"#b64926\"\n },\n \"hljs-number\": {\n \"color\": \"#468966\"\n },\n \"hljs-string\": {\n \"color\": \"#468966\"\n },\n \"hljs-doctag\": {\n \"color\": \"#468966\"\n },\n \"hljs-regexp\": {\n \"color\": \"#468966\"\n },\n \"hljs-title\": {\n \"color\": \"#ffb03b\"\n },\n \"hljs-section\": {\n \"color\": \"#ffb03b\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ffb03b\"\n },\n \"hljs-name\": {\n \"color\": \"#ffb03b\"\n },\n \"hljs-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#b58900\"\n },\n \"hljs-type\": {\n \"color\": \"#b58900\"\n },\n \"hljs-tag\": {\n \"color\": \"#b58900\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b89859\"\n },\n \"hljs-symbol\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-bullet\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-link\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-subst\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-meta\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-deletion\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d3a60c\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d3a60c\"\n },\n \"hljs-formula\": {\n \"background\": \"#073642\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#FFFFDF\",\n \"color\": \"#000000\"\n },\n \"hljs-type\": {\n \"color\": \"#000000\"\n },\n \"hljs-function\": {\n \"color\": \"#000000\"\n },\n \"hljs-name\": {\n \"color\": \"#000000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-number\": {\n \"color\": \"#000000\"\n },\n \"hljs-attr\": {\n \"color\": \"#000000\"\n },\n \"hljs-params\": {\n \"color\": \"#000000\"\n },\n \"hljs-subst\": {\n \"color\": \"#000000\"\n },\n \"hljs-comment\": {\n \"color\": \"#00AAAA\"\n },\n \"hljs-regexp\": {\n \"color\": \"#00AAAA\"\n },\n \"hljs-section\": {\n \"color\": \"#00AAAA\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#00AAAA\"\n },\n \"hljs-addition\": {\n \"color\": \"#00AAAA\"\n },\n \"hljs-title\": {\n \"color\": \"#006666\"\n },\n \"hljs-tag\": {\n \"color\": \"#006666\"\n },\n \"hljs-variable\": {\n \"color\": \"#006666\"\n },\n \"hljs-code\": {\n \"color\": \"#006666\"\n },\n \"hljs-keyword\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-class\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-built_in\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#006666\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-string\": {\n \"color\": \"#0080FF\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#0080FF\"\n },\n \"hljs-symbol\": {\n \"color\": \"#924B72\"\n },\n \"hljs-link\": {\n \"color\": \"#924B72\"\n },\n \"hljs-deletion\": {\n \"color\": \"#924B72\"\n },\n \"hljs-attribute\": {\n \"color\": \"#924B72\"\n },\n \"hljs-meta\": {\n \"color\": \"#924B72\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#924B72\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#924B72\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#000000\",\n \"color\": \"#aaaaaa\"\n },\n \"hljs-subst\": {\n \"color\": \"#aaaaaa\"\n },\n \"hljs-tag\": {\n \"color\": \"#aaaaaa\"\n },\n \"hljs-title\": {\n \"color\": \"#aaaaaa\"\n },\n \"hljs-strong\": {\n \"color\": \"#a8a8a2\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#a8a8a2\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-quote\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-number\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-literal\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-code\\n.hljs-selector-class\": {\n \"color\": \"#aaaaff\"\n },\n \"hljs-stronge\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-type\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#ff55ff\"\n },\n \"hljs-keyword\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-function\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-section\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-symbol\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-name\": {\n \"color\": \"#ffff55\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ff5555\"\n },\n \"hljs-variable\": {\n \"color\": \"#8888ff\"\n },\n \"hljs-params\": {\n \"color\": \"#8888ff\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#8888ff\"\n },\n \"hljs-string\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-addition\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-link\": {\n \"color\": \"#ff55ff\"\n },\n \"hljs-comment\": {\n \"color\": \"#55ffff\"\n },\n \"hljs-meta\": {\n \"color\": \"#55ffff\"\n },\n \"hljs-deletion\": {\n \"color\": \"#55ffff\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#ffffff\",\n \"color\": \"#000000\"\n },\n \"hljs-subst\": {\n \"color\": \"#000000\"\n },\n \"hljs-tag\": {\n \"color\": \"#000000\"\n },\n \"hljs-title\": {\n \"color\": \"#000000\"\n },\n \"hljs-strong\": {\n \"color\": \"#000000\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#000000\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#000080\"\n },\n \"hljs-quote\": {\n \"color\": \"#000080\"\n },\n \"hljs-number\": {\n \"color\": \"#000080\"\n },\n \"hljs-regexp\": {\n \"color\": \"#000080\"\n },\n \"hljs-literal\": {\n \"color\": \"#000080\"\n },\n \"hljs-code\\n.hljs-selector-class\": {\n \"color\": \"#800080\"\n },\n \"hljs-stronge\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-type\": {\n \"fontStyle\": \"italic\",\n \"color\": \"#008000\"\n },\n \"hljs-keyword\": {\n \"color\": \"#808000\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#808000\"\n },\n \"hljs-function\": {\n \"color\": \"#808000\"\n },\n \"hljs-section\": {\n \"color\": \"#808000\"\n },\n \"hljs-symbol\": {\n \"color\": \"#808000\"\n },\n \"hljs-name\": {\n \"color\": \"#808000\"\n },\n \"hljs-attribute\": {\n \"color\": \"#800000\"\n },\n \"hljs-variable\": {\n \"color\": \"#0055AF\"\n },\n \"hljs-params\": {\n \"color\": \"#0055AF\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#0055AF\"\n },\n \"hljs-string\": {\n \"color\": \"#008000\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#008000\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#008000\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#008000\"\n },\n \"hljs-built_in\": {\n \"color\": \"#008000\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#008000\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#008000\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#008000\"\n },\n \"hljs-addition\": {\n \"color\": \"#008000\"\n },\n \"hljs-link\": {\n \"color\": \"#008000\"\n },\n \"hljs-comment\": {\n \"color\": \"#008000\"\n },\n \"hljs-meta\": {\n \"color\": \"#008000\"\n },\n \"hljs-deletion\": {\n \"color\": \"#008000\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#232323\",\n \"color\": \"#e6e1dc\"\n },\n \"hljs-comment\": {\n \"color\": \"#bc9458\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#bc9458\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#c26230\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#c26230\"\n },\n \"hljs-string\": {\n \"color\": \"#a5c261\"\n },\n \"hljs-number\": {\n \"color\": \"#a5c261\"\n },\n \"hljs-regexp\": {\n \"color\": \"#a5c261\"\n },\n \"hljs-variable\": {\n \"color\": \"#a5c261\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#a5c261\"\n },\n \"hljs-subst\": {\n \"color\": \"#519f50\"\n },\n \"hljs-tag\": {\n \"color\": \"#e8bf6a\"\n },\n \"hljs-name\": {\n \"color\": \"#e8bf6a\"\n },\n \"hljs-type\": {\n \"color\": \"#da4939\"\n },\n \"hljs-symbol\": {\n \"color\": \"#6d9cbe\"\n },\n \"hljs-bullet\": {\n \"color\": \"#6d9cbe\"\n },\n \"hljs-built_in\": {\n \"color\": \"#6d9cbe\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#6d9cbe\"\n },\n \"hljs-attr\": {\n \"color\": \"#6d9cbe\"\n },\n \"hljs-link\": {\n \"color\": \"#6d9cbe\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-params\": {\n \"color\": \"#d0d0ff\"\n },\n \"hljs-attribute\": {\n \"color\": \"#cda869\"\n },\n \"hljs-meta\": {\n \"color\": \"#9b859d\"\n },\n \"hljs-title\": {\n \"color\": \"#ffc66d\"\n },\n \"hljs-section\": {\n \"color\": \"#ffc66d\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#144212\",\n \"color\": \"#e6e1dc\",\n \"display\": \"inline-block\",\n \"width\": \"100%\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#600\",\n \"color\": \"#e6e1dc\",\n \"display\": \"inline-block\",\n \"width\": \"100%\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#9b703f\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#8b98ab\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#474949\",\n \"color\": \"#d1d9e1\"\n },\n \"hljs-comment\": {\n \"color\": \"#969896\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#969896\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-literal\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-type\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-addition\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-number\": {\n \"color\": \"#f99157\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#f99157\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#f99157\"\n },\n \"hljs-string\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-doctag\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-regexp\": {\n \"color\": \"#8abeb7\"\n },\n \"hljs-title\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-name\": {\n \"color\": \"#b5bd68\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#b5bd68\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-variable\": {\n \"color\": \"#ffcc66\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ffcc66\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ffcc66\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#ffcc66\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-symbol\": {\n \"color\": \"#f99157\"\n },\n \"hljs-bullet\": {\n \"color\": \"#f99157\"\n },\n \"hljs-subst\": {\n \"color\": \"#f99157\"\n },\n \"hljs-meta\": {\n \"color\": \"#f99157\"\n },\n \"hljs-link\": {\n \"color\": \"#f99157\"\n },\n \"hljs-deletion\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-formula\": {\n \"background\": \"#eee8d5\"\n },\n \"hljs-attr\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-attribute\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#F0F0F0\",\n \"color\": \"#444\"\n },\n \"hljs-subst\": {\n \"color\": \"#444\"\n },\n \"hljs-comment\": {\n \"color\": \"#888888\"\n },\n \"hljs-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-meta-keyword\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#0E9A00\"\n },\n \"hljs-function\": {\n \"color\": \"#99069A\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#99069A\"\n },\n \"hljs-type\": {\n \"color\": \"#880000\"\n },\n \"hljs-string\": {\n \"color\": \"#880000\"\n },\n \"hljs-number\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#880000\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#880000\"\n },\n \"hljs-quote\": {\n \"color\": \"#880000\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#880000\"\n },\n \"hljs-deletion\": {\n \"color\": \"#880000\"\n },\n \"hljs-title\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#880000\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-regexp\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-symbol\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-link\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#BC6060\"\n },\n \"hljs-literal\": {\n \"color\": \"#78A960\"\n },\n \"hljs-built_in\": {\n \"color\": \"#0C9A9A\"\n },\n \"hljs-bullet\": {\n \"color\": \"#0C9A9A\"\n },\n \"hljs-code\": {\n \"color\": \"#0C9A9A\"\n },\n \"hljs-addition\": {\n \"color\": \"#0C9A9A\"\n },\n \"hljs-meta\": {\n \"color\": \"#1f7199\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#4d99bf\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"15px 0.5em 0.5em 30px\",\n \"fontSize\": \"11px\",\n \"lineHeight\": \"16px\",\n \"background\": \"#f6f6ae url(./school-book.png)\",\n \"borderTop\": \"solid 2px #d2e8b9\",\n \"borderBottom\": \"solid 1px #d2e8b9\",\n \"color\": \"#3e5915\"\n },\n \"hljs-keyword\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-literal\": {\n \"color\": \"#005599\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-subst\": {\n \"color\": \"#3e5915\"\n },\n \"hljs-string\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-title\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-section\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-type\": {\n \"color\": \"#2c009f\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-symbol\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-bullet\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-addition\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-variable\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-link\": {\n \"color\": \"#2c009f\"\n },\n \"hljs-comment\": {\n \"color\": \"#e60415\"\n },\n \"hljs-quote\": {\n \"color\": \"#e60415\"\n },\n \"hljs-deletion\": {\n \"color\": \"#e60415\"\n },\n \"hljs-meta\": {\n \"color\": \"#e60415\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-name\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-id\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#2d2b57\",\n \"fontWeight\": \"normal\",\n \"color\": \"#e3dfff\"\n },\n \"hljs-title\": {\n \"color\": \"#fad000\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-name\": {\n \"color\": \"#a1feff\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-tag\": {\n \"color\": \"#ffffff\"\n },\n \"hljs-attr\": {\n \"color\": \"#f8d000\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-built_in\": {\n \"color\": \"#fb9e00\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#fb9e00\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-section\": {\n \"color\": \"#fb9e00\"\n },\n \"hljs-keyword\": {\n \"color\": \"#fb9e00\",\n \"fontWeight\": \"normal\"\n },\n \"hljs-subst\": {\n \"color\": \"#e3dfff\"\n },\n \"hljs-string\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-attribute\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-symbol\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-bullet\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-addition\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-code\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-regexp\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-quote\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-deletion\": {\n \"color\": \"#4cd213\"\n },\n \"hljs-meta\": {\n \"color\": \"#fb9e00\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#fb9e00\"\n },\n \"hljs-comment\": {\n \"color\": \"#ac65ff\"\n },\n \"hljs-literal\": {\n \"fontWeight\": \"normal\",\n \"color\": \"#fa658d\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-number\": {\n \"color\": \"#fa658d\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#002b36\",\n \"color\": \"#839496\"\n },\n \"hljs-comment\": {\n \"color\": \"#586e75\"\n },\n \"hljs-quote\": {\n \"color\": \"#586e75\"\n },\n \"hljs-keyword\": {\n \"color\": \"#859900\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#859900\"\n },\n \"hljs-addition\": {\n \"color\": \"#859900\"\n },\n \"hljs-number\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-string\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-meta .hljs-meta-string\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-literal\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-doctag\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-regexp\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-title\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-section\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-name\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b58900\"\n },\n \"hljs-attr\": {\n \"color\": \"#b58900\"\n },\n \"hljs-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#b58900\"\n },\n \"hljs-type\": {\n \"color\": \"#b58900\"\n },\n \"hljs-symbol\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-bullet\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-subst\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-meta\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-meta .hljs-keyword\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-link\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-built_in\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-deletion\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-formula\": {\n \"background\": \"#073642\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fdf6e3\",\n \"color\": \"#657b83\"\n },\n \"hljs-comment\": {\n \"color\": \"#93a1a1\"\n },\n \"hljs-quote\": {\n \"color\": \"#93a1a1\"\n },\n \"hljs-keyword\": {\n \"color\": \"#859900\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#859900\"\n },\n \"hljs-addition\": {\n \"color\": \"#859900\"\n },\n \"hljs-number\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-string\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-meta .hljs-meta-string\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-literal\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-doctag\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-regexp\": {\n \"color\": \"#2aa198\"\n },\n \"hljs-title\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-section\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-name\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#268bd2\"\n },\n \"hljs-attribute\": {\n \"color\": \"#b58900\"\n },\n \"hljs-attr\": {\n \"color\": \"#b58900\"\n },\n \"hljs-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b58900\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#b58900\"\n },\n \"hljs-type\": {\n \"color\": \"#b58900\"\n },\n \"hljs-symbol\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-bullet\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-subst\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-meta\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-meta .hljs-keyword\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-link\": {\n \"color\": \"#cb4b16\"\n },\n \"hljs-built_in\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-deletion\": {\n \"color\": \"#dc322f\"\n },\n \"hljs-formula\": {\n \"background\": \"#eee8d5\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#1C1B19\",\n \"color\": \"#FCE8C3\"\n },\n \"hljs-strong\": {\n \"color\": \"#918175\"\n },\n \"hljs-emphasis\": {\n \"color\": \"#918175\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-bullet\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-quote\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-link\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-number\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-regexp\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-literal\": {\n \"color\": \"#FF5C8F\"\n },\n \"hljs-code\": {\n \"color\": \"#68A8E4\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#68A8E4\"\n },\n \"hljs-keyword\": {\n \"color\": \"#EF2F27\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#EF2F27\"\n },\n \"hljs-section\": {\n \"color\": \"#EF2F27\"\n },\n \"hljs-attribute\": {\n \"color\": \"#EF2F27\"\n },\n \"hljs-variable\": {\n \"color\": \"#EF2F27\"\n },\n \"hljs-name\": {\n \"color\": \"#FBB829\"\n },\n \"hljs-title\": {\n \"color\": \"#FBB829\"\n },\n \"hljs-type\": {\n \"color\": \"#0AAEB3\"\n },\n \"hljs-params\": {\n \"color\": \"#0AAEB3\"\n },\n \"hljs-string\": {\n \"color\": \"#98BC37\"\n },\n \"hljs-subst\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-built_in\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-symbol\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-addition\": {\n \"color\": \"#C07ABE\"\n },\n \"hljs-comment\": {\n \"color\": \"#918175\"\n },\n \"hljs-deletion\": {\n \"color\": \"#918175\"\n },\n \"hljs-meta\": {\n \"color\": \"#918175\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#ffffff\",\n \"background\": \"#1c1b1b\"\n },\n \"hljs-comment\": {\n \"color\": \"#999999\"\n },\n \"hljs-keyword\": {\n \"color\": \"#88aece\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#88aece\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#88aece\"\n },\n \"hljs-doctag\": {\n \"color\": \"#88aece\"\n },\n \"hljs-section\": {\n \"color\": \"#88aece\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#88aece\"\n },\n \"hljs-meta\": {\n \"color\": \"#88aece\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#88aece\"\n },\n \"hljs-attr\": {\n \"color\": \"#88aece\"\n },\n \"hljs-attribute\": {\n \"color\": \"v#c59bc1\"\n },\n \"hljs-name\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-type\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-number\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-quote\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-title\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-literal\": {\n \"color\": \"#f08d49\"\n },\n \"hljs-string\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-regexp\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-symbol\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-variable\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-link\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-bullet\": {\n \"color\": \"#cccccc\"\n },\n \"hljs-code\": {\n \"color\": \"#cccccc\"\n },\n \"hljs-deletion\": {\n \"color\": \"#de7176\"\n },\n \"hljs-addition\": {\n \"color\": \"#76c490\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"color\": \"#2f3337\",\n \"background\": \"#f6f6f6\"\n },\n \"hljs-comment\": {\n \"color\": \"#656e77\"\n },\n \"hljs-keyword\": {\n \"color\": \"#015692\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#015692\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#015692\"\n },\n \"hljs-doctag\": {\n \"color\": \"#015692\"\n },\n \"hljs-section\": {\n \"color\": \"#015692\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#015692\"\n },\n \"hljs-meta\": {\n \"color\": \"#015692\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#015692\"\n },\n \"hljs-attr\": {\n \"color\": \"#015692\"\n },\n \"hljs-attribute\": {\n \"color\": \"#803378\"\n },\n \"hljs-name\": {\n \"color\": \"#b75501\"\n },\n \"hljs-type\": {\n \"color\": \"#b75501\"\n },\n \"hljs-number\": {\n \"color\": \"#b75501\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#b75501\"\n },\n \"hljs-quote\": {\n \"color\": \"#b75501\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#b75501\"\n },\n \"hljs-built_in\": {\n \"color\": \"#b75501\"\n },\n \"hljs-title\": {\n \"color\": \"#b75501\"\n },\n \"hljs-literal\": {\n \"color\": \"#b75501\"\n },\n \"hljs-string\": {\n \"color\": \"#54790d\"\n },\n \"hljs-regexp\": {\n \"color\": \"#54790d\"\n },\n \"hljs-symbol\": {\n \"color\": \"#54790d\"\n },\n \"hljs-variable\": {\n \"color\": \"#54790d\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#54790d\"\n },\n \"hljs-link\": {\n \"color\": \"#54790d\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#54790d\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#54790d\"\n },\n \"hljs-bullet\": {\n \"color\": \"#535a60\"\n },\n \"hljs-code\": {\n \"color\": \"#535a60\"\n },\n \"hljs-deletion\": {\n \"color\": \"#c02d2e\"\n },\n \"hljs-addition\": {\n \"color\": \"#2f6f44\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#000\",\n \"color\": \"#f8f8f8\"\n },\n \"hljs-comment\": {\n \"color\": \"#aeaeae\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#aeaeae\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-keyword\": {\n \"color\": \"#e28964\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#e28964\"\n },\n \"hljs-type\": {\n \"color\": \"#e28964\"\n },\n \"hljs-string\": {\n \"color\": \"#65b042\"\n },\n \"hljs-subst\": {\n \"color\": \"#daefa3\"\n },\n \"hljs-regexp\": {\n \"color\": \"#e9c062\"\n },\n \"hljs-link\": {\n \"color\": \"#e9c062\"\n },\n \"hljs-title\": {\n \"color\": \"#89bdff\"\n },\n \"hljs-section\": {\n \"color\": \"#89bdff\"\n },\n \"hljs-tag\": {\n \"color\": \"#89bdff\"\n },\n \"hljs-name\": {\n \"color\": \"#89bdff\"\n },\n \"hljs-class .hljs-title\": {\n \"textDecoration\": \"underline\"\n },\n \"hljs-doctag\": {\n \"textDecoration\": \"underline\"\n },\n \"hljs-symbol\": {\n \"color\": \"#3387cc\"\n },\n \"hljs-bullet\": {\n \"color\": \"#3387cc\"\n },\n \"hljs-number\": {\n \"color\": \"#3387cc\"\n },\n \"hljs-params\": {\n \"color\": \"#3e87e3\"\n },\n \"hljs-variable\": {\n \"color\": \"#3e87e3\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#3e87e3\"\n },\n \"hljs-attribute\": {\n \"color\": \"#cda869\"\n },\n \"hljs-meta\": {\n \"color\": \"#8996a8\"\n },\n \"hljs-formula\": {\n \"backgroundColor\": \"#0e2231\",\n \"color\": \"#f8f8f8\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#253b22\",\n \"color\": \"#f8f8f8\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#420e09\",\n \"color\": \"#f8f8f8\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#9b703f\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#8b98ab\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#7285b7\"\n },\n \"hljs-quote\": {\n \"color\": \"#7285b7\"\n },\n \"hljs-variable\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-tag\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-name\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-deletion\": {\n \"color\": \"#ff9da4\"\n },\n \"hljs-number\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-literal\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-type\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-params\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-meta\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-link\": {\n \"color\": \"#ffc58f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ffeead\"\n },\n \"hljs-string\": {\n \"color\": \"#d1f1a9\"\n },\n \"hljs-symbol\": {\n \"color\": \"#d1f1a9\"\n },\n \"hljs-bullet\": {\n \"color\": \"#d1f1a9\"\n },\n \"hljs-addition\": {\n \"color\": \"#d1f1a9\"\n },\n \"hljs-title\": {\n \"color\": \"#bbdaff\"\n },\n \"hljs-section\": {\n \"color\": \"#bbdaff\"\n },\n \"hljs-keyword\": {\n \"color\": \"#ebbbff\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#ebbbff\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#002451\",\n \"color\": \"white\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#969896\"\n },\n \"hljs-quote\": {\n \"color\": \"#969896\"\n },\n \"hljs-variable\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-tag\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-name\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-regexp\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-deletion\": {\n \"color\": \"#d54e53\"\n },\n \"hljs-number\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-built_in\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-literal\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-type\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-params\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-meta\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-link\": {\n \"color\": \"#e78c45\"\n },\n \"hljs-attribute\": {\n \"color\": \"#e7c547\"\n },\n \"hljs-string\": {\n \"color\": \"#b9ca4a\"\n },\n \"hljs-symbol\": {\n \"color\": \"#b9ca4a\"\n },\n \"hljs-bullet\": {\n \"color\": \"#b9ca4a\"\n },\n \"hljs-addition\": {\n \"color\": \"#b9ca4a\"\n },\n \"hljs-title\": {\n \"color\": \"#7aa6da\"\n },\n \"hljs-section\": {\n \"color\": \"#7aa6da\"\n },\n \"hljs-keyword\": {\n \"color\": \"#c397d8\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#c397d8\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"black\",\n \"color\": \"#eaeaea\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#999999\"\n },\n \"hljs-quote\": {\n \"color\": \"#999999\"\n },\n \"hljs-variable\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-tag\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-name\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-regexp\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-deletion\": {\n \"color\": \"#f2777a\"\n },\n \"hljs-number\": {\n \"color\": \"#f99157\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f99157\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f99157\"\n },\n \"hljs-literal\": {\n \"color\": \"#f99157\"\n },\n \"hljs-type\": {\n \"color\": \"#f99157\"\n },\n \"hljs-params\": {\n \"color\": \"#f99157\"\n },\n \"hljs-meta\": {\n \"color\": \"#f99157\"\n },\n \"hljs-link\": {\n \"color\": \"#f99157\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ffcc66\"\n },\n \"hljs-string\": {\n \"color\": \"#99cc99\"\n },\n \"hljs-symbol\": {\n \"color\": \"#99cc99\"\n },\n \"hljs-bullet\": {\n \"color\": \"#99cc99\"\n },\n \"hljs-addition\": {\n \"color\": \"#99cc99\"\n },\n \"hljs-title\": {\n \"color\": \"#6699cc\"\n },\n \"hljs-section\": {\n \"color\": \"#6699cc\"\n },\n \"hljs-keyword\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#cc99cc\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#2d2d2d\",\n \"color\": \"#cccccc\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#969896\"\n },\n \"hljs-quote\": {\n \"color\": \"#969896\"\n },\n \"hljs-variable\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-tag\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-name\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-regexp\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-deletion\": {\n \"color\": \"#cc6666\"\n },\n \"hljs-number\": {\n \"color\": \"#de935f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#de935f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#de935f\"\n },\n \"hljs-literal\": {\n \"color\": \"#de935f\"\n },\n \"hljs-type\": {\n \"color\": \"#de935f\"\n },\n \"hljs-params\": {\n \"color\": \"#de935f\"\n },\n \"hljs-meta\": {\n \"color\": \"#de935f\"\n },\n \"hljs-link\": {\n \"color\": \"#de935f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#f0c674\"\n },\n \"hljs-string\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-symbol\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-bullet\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-addition\": {\n \"color\": \"#b5bd68\"\n },\n \"hljs-title\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-section\": {\n \"color\": \"#81a2be\"\n },\n \"hljs-keyword\": {\n \"color\": \"#b294bb\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#b294bb\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"#1d1f21\",\n \"color\": \"#c5c8c6\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs-comment\": {\n \"color\": \"#8e908c\"\n },\n \"hljs-quote\": {\n \"color\": \"#8e908c\"\n },\n \"hljs-variable\": {\n \"color\": \"#c82829\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#c82829\"\n },\n \"hljs-tag\": {\n \"color\": \"#c82829\"\n },\n \"hljs-name\": {\n \"color\": \"#c82829\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#c82829\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#c82829\"\n },\n \"hljs-regexp\": {\n \"color\": \"#c82829\"\n },\n \"hljs-deletion\": {\n \"color\": \"#c82829\"\n },\n \"hljs-number\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-literal\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-type\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-params\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-meta\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-link\": {\n \"color\": \"#f5871f\"\n },\n \"hljs-attribute\": {\n \"color\": \"#eab700\"\n },\n \"hljs-string\": {\n \"color\": \"#718c00\"\n },\n \"hljs-symbol\": {\n \"color\": \"#718c00\"\n },\n \"hljs-bullet\": {\n \"color\": \"#718c00\"\n },\n \"hljs-addition\": {\n \"color\": \"#718c00\"\n },\n \"hljs-title\": {\n \"color\": \"#4271ae\"\n },\n \"hljs-section\": {\n \"color\": \"#4271ae\"\n },\n \"hljs-keyword\": {\n \"color\": \"#8959a8\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#8959a8\"\n },\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"background\": \"white\",\n \"color\": \"#4d4d4c\",\n \"padding\": \"0.5em\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"white\",\n \"color\": \"black\"\n },\n \"hljs-comment\": {\n \"color\": \"#008000\"\n },\n \"hljs-quote\": {\n \"color\": \"#008000\"\n },\n \"hljs-variable\": {\n \"color\": \"#008000\"\n },\n \"hljs-keyword\": {\n \"color\": \"#00f\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#00f\"\n },\n \"hljs-built_in\": {\n \"color\": \"#00f\"\n },\n \"hljs-name\": {\n \"color\": \"#00f\"\n },\n \"hljs-tag\": {\n \"color\": \"#00f\"\n },\n \"hljs-string\": {\n \"color\": \"#a31515\"\n },\n \"hljs-title\": {\n \"color\": \"#a31515\"\n },\n \"hljs-section\": {\n \"color\": \"#a31515\"\n },\n \"hljs-attribute\": {\n \"color\": \"#a31515\"\n },\n \"hljs-literal\": {\n \"color\": \"#a31515\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#a31515\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#a31515\"\n },\n \"hljs-type\": {\n \"color\": \"#a31515\"\n },\n \"hljs-addition\": {\n \"color\": \"#a31515\"\n },\n \"hljs-deletion\": {\n \"color\": \"#2b91af\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#2b91af\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#2b91af\"\n },\n \"hljs-meta\": {\n \"color\": \"#2b91af\"\n },\n \"hljs-doctag\": {\n \"color\": \"#808080\"\n },\n \"hljs-attr\": {\n \"color\": \"#f00\"\n },\n \"hljs-symbol\": {\n \"color\": \"#00b0e8\"\n },\n \"hljs-bullet\": {\n \"color\": \"#00b0e8\"\n },\n \"hljs-link\": {\n \"color\": \"#00b0e8\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#1E1E1E\",\n \"color\": \"#DCDCDC\"\n },\n \"hljs-keyword\": {\n \"color\": \"#569CD6\"\n },\n \"hljs-literal\": {\n \"color\": \"#569CD6\"\n },\n \"hljs-symbol\": {\n \"color\": \"#569CD6\"\n },\n \"hljs-name\": {\n \"color\": \"#569CD6\"\n },\n \"hljs-link\": {\n \"color\": \"#569CD6\",\n \"textDecoration\": \"underline\"\n },\n \"hljs-built_in\": {\n \"color\": \"#4EC9B0\"\n },\n \"hljs-type\": {\n \"color\": \"#4EC9B0\"\n },\n \"hljs-number\": {\n \"color\": \"#B8D7A3\"\n },\n \"hljs-class\": {\n \"color\": \"#B8D7A3\"\n },\n \"hljs-string\": {\n \"color\": \"#D69D85\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#D69D85\"\n },\n \"hljs-regexp\": {\n \"color\": \"#9A5334\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#9A5334\"\n },\n \"hljs-subst\": {\n \"color\": \"#DCDCDC\"\n },\n \"hljs-function\": {\n \"color\": \"#DCDCDC\"\n },\n \"hljs-title\": {\n \"color\": \"#DCDCDC\"\n },\n \"hljs-params\": {\n \"color\": \"#DCDCDC\"\n },\n \"hljs-formula\": {\n \"color\": \"#DCDCDC\"\n },\n \"hljs-comment\": {\n \"color\": \"#57A64A\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-quote\": {\n \"color\": \"#57A64A\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-doctag\": {\n \"color\": \"#608B4E\"\n },\n \"hljs-meta\": {\n \"color\": \"#9B9B9B\"\n },\n \"hljs-meta-keyword\": {\n \"color\": \"#9B9B9B\"\n },\n \"hljs-tag\": {\n \"color\": \"#9B9B9B\"\n },\n \"hljs-variable\": {\n \"color\": \"#BD63C5\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#BD63C5\"\n },\n \"hljs-attr\": {\n \"color\": \"#9CDCFE\"\n },\n \"hljs-attribute\": {\n \"color\": \"#9CDCFE\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#9CDCFE\"\n },\n \"hljs-section\": {\n \"color\": \"gold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-bullet\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-selector-attr\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-selector-pseudo\": {\n \"color\": \"#D7BA7D\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#144212\",\n \"display\": \"inline-block\",\n \"width\": \"100%\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#600\",\n \"display\": \"inline-block\",\n \"width\": \"100%\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#fff\",\n \"color\": \"black\"\n },\n \"xml .hljs-meta\": {\n \"color\": \"#c0c0c0\"\n },\n \"hljs-comment\": {\n \"color\": \"#007400\"\n },\n \"hljs-quote\": {\n \"color\": \"#007400\"\n },\n \"hljs-tag\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-attribute\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-keyword\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-literal\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-name\": {\n \"color\": \"#aa0d91\"\n },\n \"hljs-variable\": {\n \"color\": \"#3F6E74\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#3F6E74\"\n },\n \"hljs-code\": {\n \"color\": \"#c41a16\"\n },\n \"hljs-string\": {\n \"color\": \"#c41a16\"\n },\n \"hljs-meta-string\": {\n \"color\": \"#c41a16\"\n },\n \"hljs-regexp\": {\n \"color\": \"#0E0EFF\"\n },\n \"hljs-link\": {\n \"color\": \"#0E0EFF\"\n },\n \"hljs-title\": {\n \"color\": \"#1c00cf\"\n },\n \"hljs-symbol\": {\n \"color\": \"#1c00cf\"\n },\n \"hljs-bullet\": {\n \"color\": \"#1c00cf\"\n },\n \"hljs-number\": {\n \"color\": \"#1c00cf\"\n },\n \"hljs-section\": {\n \"color\": \"#643820\"\n },\n \"hljs-meta\": {\n \"color\": \"#643820\"\n },\n \"hljs-class .hljs-title\": {\n \"color\": \"#5c2699\"\n },\n \"hljs-type\": {\n \"color\": \"#5c2699\"\n },\n \"hljs-built_in\": {\n \"color\": \"#5c2699\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#5c2699\"\n },\n \"hljs-params\": {\n \"color\": \"#5c2699\"\n },\n \"hljs-attr\": {\n \"color\": \"#836C28\"\n },\n \"hljs-subst\": {\n \"color\": \"#000\"\n },\n \"hljs-formula\": {\n \"backgroundColor\": \"#eee\",\n \"fontStyle\": \"italic\"\n },\n \"hljs-addition\": {\n \"backgroundColor\": \"#baeeba\"\n },\n \"hljs-deletion\": {\n \"backgroundColor\": \"#ffc8bd\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#9b703f\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#9b703f\"\n },\n \"hljs-doctag\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"color\": \"#eaeaea\",\n \"background\": \"#000\",\n \"padding\": \"0.5em\"\n },\n \"hljs-subst\": {\n \"color\": \"#eaeaea\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#eaeaea\"\n },\n \"hljs-type\": {\n \"color\": \"#eaeaea\"\n },\n \"hljs-params\": {\n \"color\": \"#da0000\"\n },\n \"hljs-literal\": {\n \"color\": \"#ff0000\",\n \"fontWeight\": \"bolder\"\n },\n \"hljs-number\": {\n \"color\": \"#ff0000\",\n \"fontWeight\": \"bolder\"\n },\n \"hljs-name\": {\n \"color\": \"#ff0000\",\n \"fontWeight\": \"bolder\"\n },\n \"hljs-comment\": {\n \"color\": \"#969896\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#00ffff\"\n },\n \"hljs-quote\": {\n \"color\": \"#00ffff\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#00ffff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-variable\": {\n \"color\": \"#00ffff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-title\": {\n \"color\": \"#00ffff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#fff000\"\n },\n \"hljs-keyword\": {\n \"color\": \"#fff000\"\n },\n \"hljs-symbol\": {\n \"color\": \"#fff000\"\n },\n \"hljs-string\": {\n \"color\": \"#00ff00\"\n },\n \"hljs-bullet\": {\n \"color\": \"#00ff00\"\n },\n \"hljs-tag\": {\n \"color\": \"#000fff\"\n },\n \"hljs-section\": {\n \"color\": \"#000fff\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#000fff\",\n \"fontWeight\": \"bold\"\n },\n \"hljs-attribute\": {\n \"color\": \"#ff00ff\"\n },\n \"hljs-built_in\": {\n \"color\": \"#ff00ff\"\n },\n \"hljs-regexp\": {\n \"color\": \"#ff00ff\"\n },\n \"hljs-link\": {\n \"color\": \"#ff00ff\"\n },\n \"hljs-meta\": {\n \"color\": \"#fff\",\n \"fontWeight\": \"bolder\"\n }\n};","export default {\n \"hljs\": {\n \"display\": \"block\",\n \"overflowX\": \"auto\",\n \"padding\": \"0.5em\",\n \"background\": \"#3f3f3f\",\n \"color\": \"#dcdcdc\"\n },\n \"hljs-keyword\": {\n \"color\": \"#e3ceab\"\n },\n \"hljs-selector-tag\": {\n \"color\": \"#e3ceab\"\n },\n \"hljs-tag\": {\n \"color\": \"#e3ceab\"\n },\n \"hljs-template-tag\": {\n \"color\": \"#dcdcdc\"\n },\n \"hljs-number\": {\n \"color\": \"#8cd0d3\"\n },\n \"hljs-variable\": {\n \"color\": \"#efdcbc\"\n },\n \"hljs-template-variable\": {\n \"color\": \"#efdcbc\"\n },\n \"hljs-attribute\": {\n \"color\": \"#efdcbc\"\n },\n \"hljs-literal\": {\n \"color\": \"#efefaf\"\n },\n \"hljs-subst\": {\n \"color\": \"#8f8f8f\"\n },\n \"hljs-title\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-name\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-selector-id\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-selector-class\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-section\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-type\": {\n \"color\": \"#efef8f\"\n },\n \"hljs-symbol\": {\n \"color\": \"#dca3a3\"\n },\n \"hljs-bullet\": {\n \"color\": \"#dca3a3\"\n },\n \"hljs-link\": {\n \"color\": \"#dca3a3\"\n },\n \"hljs-deletion\": {\n \"color\": \"#cc9393\"\n },\n \"hljs-string\": {\n \"color\": \"#cc9393\"\n },\n \"hljs-built_in\": {\n \"color\": \"#cc9393\"\n },\n \"hljs-builtin-name\": {\n \"color\": \"#cc9393\"\n },\n \"hljs-addition\": {\n \"color\": \"#7f9f7f\"\n },\n \"hljs-comment\": {\n \"color\": \"#7f9f7f\"\n },\n \"hljs-quote\": {\n \"color\": \"#7f9f7f\"\n },\n \"hljs-meta\": {\n \"color\": \"#7f9f7f\"\n },\n \"hljs-emphasis\": {\n \"fontStyle\": \"italic\"\n },\n \"hljs-strong\": {\n \"fontWeight\": \"bold\"\n }\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread\";\nimport React from 'react'; // 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\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\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\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\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}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\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({}, 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\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _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 }, []); // For compatibility with older versions of react-syntax-highlighter\n\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({}, properties, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return 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 _objectSpread from \"@babel/runtime/helpers/objectSpread\";\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\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 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}\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 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}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\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}\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 }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread({}, defaultLineNumberStyle, customLineNumberStyle);\n\n return assembledStyle;\n}\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 var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread({}, properties.style, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\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\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\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 classNames = className.concat(node.properties.className);\n newTree = newTree.concat(flattenCodeTree(node.children, classNames));\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\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 });\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\n return children;\n }\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\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\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 }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // 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\n if (stringChild) {\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\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 = [newChild];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\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\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\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-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\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 } // must be refractor/prism, then\n\n\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}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\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({}, 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, [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"]);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? 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\n if (!astGenerator) {\n return React.createElement(PreTag, preProps, allLineNumbers, React.createElement(CodeTag, codeTagProps, code));\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\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\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread({}, codeTagProps.style, {\n whiteSpace: 'pre'\n });\n }\n\n return React.createElement(PreTag, preProps, React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","import highlight from './highlight';\nimport defaultStyle from './styles/hljs/default-style';\nimport lowlight from 'lowlight';\nimport supportedLanguages from './languages/hljs/supported-languages';\nvar highlighter = highlight(lowlight, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","//\n// This file has been auto-generated by the `npm run build-languages-hljs` task\n//\nexport default ['1c', 'abnf', 'accesslog', 'actionscript', 'ada', 'angelscript', 'apache', 'applescript', 'arcade', 'arduino', 'armasm', 'asciidoc', 'aspectj', 'autohotkey', 'autoit', 'avrasm', 'awk', 'axapta', 'bash', 'basic', 'bnf', 'brainfuck', 'c-like', 'c', 'cal', 'capnproto', 'ceylon', 'clean', 'clojure-repl', 'clojure', 'cmake', 'coffeescript', 'coq', 'cos', 'cpp', 'crmsh', 'crystal', 'csharp', 'csp', 'css', 'd', 'dart', 'delphi', 'diff', 'django', 'dns', 'dockerfile', 'dos', 'dsconfig', 'dts', 'dust', 'ebnf', 'elixir', 'elm', 'erb', 'erlang-repl', 'erlang', 'excel', 'fix', 'flix', 'fortran', 'fsharp', 'gams', 'gauss', 'gcode', 'gherkin', 'glsl', 'gml', 'go', 'golo', 'gradle', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hsp', 'htmlbars', 'http', 'hy', 'inform7', 'ini', 'irpf90', 'isbl', 'java', 'javascript', 'jboss-cli', 'json', 'julia-repl', 'julia', 'kotlin', 'lasso', 'latex', 'ldif', 'leaf', 'less', 'lisp', 'livecodeserver', 'livescript', 'llvm', 'lsl', 'lua', 'makefile', 'markdown', 'mathematica', 'matlab', 'maxima', 'mel', 'mercury', 'mipsasm', 'mizar', 'mojolicious', 'monkey', 'moonscript', 'n1ql', 'nginx', 'nim', 'nix', 'node-repl', 'nsis', 'objectivec', 'ocaml', 'openscad', 'oxygene', 'parser3', 'perl', 'pf', 'pgsql', 'php-template', 'php', 'plaintext', 'pony', 'powershell', 'processing', 'profile', 'prolog', 'properties', 'protobuf', 'puppet', 'purebasic', 'python-repl', 'python', 'q', 'qml', 'r', 'reasonml', 'rib', 'roboconf', 'routeros', 'rsl', 'ruby', 'ruleslanguage', 'rust', 'sas', 'scala', 'scheme', 'scilab', 'scss', 'shell', 'smali', 'smalltalk', 'sml', 'sqf', 'sql', 'stan', 'stata', 'step21', 'stylus', 'subunit', 'swift', 'taggerscript', 'tap', 'tcl', 'thrift', 'tp', 'twig', 'typescript', 'vala', 'vbnet', 'vbscript-html', 'vbscript', 'verilog', 'vhdl', 'vim', 'x86asm', 'xl', 'xml', 'xquery', 'yaml', 'zephir'];","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport React from 'react';\nimport highlight from './highlight';\nexport default (function (options) {\n var loader = options.loader,\n isLanguageRegistered = options.isLanguageRegistered,\n registerLanguage = options.registerLanguage,\n languageLoaders = options.languageLoaders,\n noAsyncLoadingLanguages = options.noAsyncLoadingLanguages;\n\n var ReactAsyncHighlighter =\n /*#__PURE__*/\n function (_React$PureComponent) {\n _inherits(ReactAsyncHighlighter, _React$PureComponent);\n\n function ReactAsyncHighlighter() {\n _classCallCheck(this, ReactAsyncHighlighter);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReactAsyncHighlighter).apply(this, arguments));\n }\n\n _createClass(ReactAsyncHighlighter, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!ReactAsyncHighlighter.isRegistered(this.props.language) && languageLoaders) {\n this.loadLanguage();\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this = this;\n\n if (!ReactAsyncHighlighter.astGeneratorPromise) {\n ReactAsyncHighlighter.loadAstGenerator();\n }\n\n if (!ReactAsyncHighlighter.astGenerator) {\n ReactAsyncHighlighter.astGeneratorPromise.then(function () {\n _this.forceUpdate();\n });\n }\n\n if (!ReactAsyncHighlighter.isRegistered(this.props.language) && languageLoaders) {\n this.loadLanguage();\n }\n }\n }, {\n key: \"loadLanguage\",\n value: function loadLanguage() {\n var _this2 = this;\n\n var language = this.props.language;\n\n if (language === 'text') {\n return;\n }\n\n ReactAsyncHighlighter.loadLanguage(language).then(function () {\n return _this2.forceUpdate();\n }).catch(function () {});\n }\n }, {\n key: \"normalizeLanguage\",\n value: function normalizeLanguage(language) {\n return ReactAsyncHighlighter.isSupportedLanguage(language) ? language : 'text';\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(ReactAsyncHighlighter.highlightInstance, _extends({}, this.props, {\n language: this.normalizeLanguage(this.props.language),\n astGenerator: ReactAsyncHighlighter.astGenerator\n }));\n }\n }], [{\n key: \"preload\",\n value: function preload() {\n return ReactAsyncHighlighter.loadAstGenerator();\n }\n }, {\n key: \"loadLanguage\",\n value: function () {\n var _loadLanguage = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(language) {\n var languageLoader;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n languageLoader = languageLoaders[language];\n\n if (!(typeof languageLoader === 'function')) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", languageLoader(ReactAsyncHighlighter.registerLanguage));\n\n case 5:\n throw new Error(\"Language \".concat(language, \" not supported\"));\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function loadLanguage(_x) {\n return _loadLanguage.apply(this, arguments);\n };\n }()\n }, {\n key: \"isSupportedLanguage\",\n value: function isSupportedLanguage(language) {\n return ReactAsyncHighlighter.isRegistered(language) || typeof languageLoaders[language] === 'function';\n }\n }, {\n key: \"loadAstGenerator\",\n value: function loadAstGenerator() {\n ReactAsyncHighlighter.astGeneratorPromise = loader().then(function (astGenerator) {\n ReactAsyncHighlighter.astGenerator = astGenerator;\n\n if (registerLanguage) {\n ReactAsyncHighlighter.languages.forEach(function (language, name) {\n return registerLanguage(astGenerator, name, language);\n });\n }\n });\n return ReactAsyncHighlighter.astGeneratorPromise;\n }\n }]);\n\n return ReactAsyncHighlighter;\n }(React.PureComponent);\n\n _defineProperty(ReactAsyncHighlighter, \"astGenerator\", null);\n\n _defineProperty(ReactAsyncHighlighter, \"highlightInstance\", highlight(null, {}));\n\n _defineProperty(ReactAsyncHighlighter, \"astGeneratorPromise\", null);\n\n _defineProperty(ReactAsyncHighlighter, \"languages\", new Map());\n\n _defineProperty(ReactAsyncHighlighter, \"supportedLanguages\", options.supportedLanguages || Object.keys(languageLoaders || {}));\n\n _defineProperty(ReactAsyncHighlighter, \"isRegistered\", function (language) {\n if (noAsyncLoadingLanguages) {\n return true;\n }\n\n if (!registerLanguage) {\n throw new Error(\"Current syntax highlighter doesn't support registration of languages\");\n }\n\n if (!ReactAsyncHighlighter.astGenerator) {\n // Ast generator not available yet, but language will be registered once it is.\n return ReactAsyncHighlighter.languages.has(language);\n }\n\n return isLanguageRegistered(ReactAsyncHighlighter.astGenerator, language);\n });\n\n _defineProperty(ReactAsyncHighlighter, \"registerLanguage\", function (name, language) {\n if (!registerLanguage) {\n throw new Error(\"Current syntax highlighter doesn't support registration of languages\");\n }\n\n if (ReactAsyncHighlighter.astGenerator) {\n return registerLanguage(ReactAsyncHighlighter.astGenerator, name, language);\n } else {\n ReactAsyncHighlighter.languages.set(name, language);\n }\n });\n\n return ReactAsyncHighlighter;\n});","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nexport default (function (name, loader) {\n return (\n /*#__PURE__*/\n function () {\n var _ref = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(registerLanguage) {\n var module;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return loader();\n\n case 2:\n module = _context.sent;\n registerLanguage(name, module.default || module);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()\n );\n});","import createAsyncLoadingHighlighter from './async-syntax-highlighter';\nimport languageLoaders from './async-languages/hljs';\nimport checkForListedLanguage from './checkForListedLanguage';\nexport default createAsyncLoadingHighlighter({\n loader: function loader() {\n return import(\n /* webpackChunkName:\"react-syntax-highlighter/lowlight-import\" */\n 'lowlight/lib/core').then(function (module) {\n // Webpack 3 returns module.exports as default as module, but webpack 4 returns module.exports as module.default\n return module.default || module;\n });\n },\n isLanguageRegistered: function isLanguageRegistered(instance, language) {\n return !!checkForListedLanguage(instance, language);\n },\n languageLoaders: languageLoaders,\n registerLanguage: function registerLanguage(instance, name, language) {\n return instance.registerLanguage(name, language);\n }\n});","import createLanguageAsyncLoader from \"./create-language-async-loader\";\nexport default {\n oneC: createLanguageAsyncLoader(\"oneC\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_oneC\" */\n \"highlight.js/lib/languages/1c\");\n }),\n abnf: createLanguageAsyncLoader(\"abnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_abnf\" */\n \"highlight.js/lib/languages/abnf\");\n }),\n accesslog: createLanguageAsyncLoader(\"accesslog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_accesslog\" */\n \"highlight.js/lib/languages/accesslog\");\n }),\n actionscript: createLanguageAsyncLoader(\"actionscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_actionscript\" */\n \"highlight.js/lib/languages/actionscript\");\n }),\n ada: createLanguageAsyncLoader(\"ada\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ada\" */\n \"highlight.js/lib/languages/ada\");\n }),\n angelscript: createLanguageAsyncLoader(\"angelscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_angelscript\" */\n \"highlight.js/lib/languages/angelscript\");\n }),\n apache: createLanguageAsyncLoader(\"apache\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_apache\" */\n \"highlight.js/lib/languages/apache\");\n }),\n applescript: createLanguageAsyncLoader(\"applescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_applescript\" */\n \"highlight.js/lib/languages/applescript\");\n }),\n arcade: createLanguageAsyncLoader(\"arcade\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_arcade\" */\n \"highlight.js/lib/languages/arcade\");\n }),\n arduino: createLanguageAsyncLoader(\"arduino\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_arduino\" */\n \"highlight.js/lib/languages/arduino\");\n }),\n armasm: createLanguageAsyncLoader(\"armasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_armasm\" */\n \"highlight.js/lib/languages/armasm\");\n }),\n asciidoc: createLanguageAsyncLoader(\"asciidoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_asciidoc\" */\n \"highlight.js/lib/languages/asciidoc\");\n }),\n aspectj: createLanguageAsyncLoader(\"aspectj\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_aspectj\" */\n \"highlight.js/lib/languages/aspectj\");\n }),\n autohotkey: createLanguageAsyncLoader(\"autohotkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_autohotkey\" */\n \"highlight.js/lib/languages/autohotkey\");\n }),\n autoit: createLanguageAsyncLoader(\"autoit\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_autoit\" */\n \"highlight.js/lib/languages/autoit\");\n }),\n avrasm: createLanguageAsyncLoader(\"avrasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_avrasm\" */\n \"highlight.js/lib/languages/avrasm\");\n }),\n awk: createLanguageAsyncLoader(\"awk\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_awk\" */\n \"highlight.js/lib/languages/awk\");\n }),\n axapta: createLanguageAsyncLoader(\"axapta\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_axapta\" */\n \"highlight.js/lib/languages/axapta\");\n }),\n bash: createLanguageAsyncLoader(\"bash\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_bash\" */\n \"highlight.js/lib/languages/bash\");\n }),\n basic: createLanguageAsyncLoader(\"basic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_basic\" */\n \"highlight.js/lib/languages/basic\");\n }),\n bnf: createLanguageAsyncLoader(\"bnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_bnf\" */\n \"highlight.js/lib/languages/bnf\");\n }),\n brainfuck: createLanguageAsyncLoader(\"brainfuck\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_brainfuck\" */\n \"highlight.js/lib/languages/brainfuck\");\n }),\n cLike: createLanguageAsyncLoader(\"cLike\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_cLike\" */\n \"highlight.js/lib/languages/c-like\");\n }),\n c: createLanguageAsyncLoader(\"c\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_c\" */\n \"highlight.js/lib/languages/c\");\n }),\n cal: createLanguageAsyncLoader(\"cal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_cal\" */\n \"highlight.js/lib/languages/cal\");\n }),\n capnproto: createLanguageAsyncLoader(\"capnproto\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_capnproto\" */\n \"highlight.js/lib/languages/capnproto\");\n }),\n ceylon: createLanguageAsyncLoader(\"ceylon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ceylon\" */\n \"highlight.js/lib/languages/ceylon\");\n }),\n clean: createLanguageAsyncLoader(\"clean\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_clean\" */\n \"highlight.js/lib/languages/clean\");\n }),\n clojureRepl: createLanguageAsyncLoader(\"clojureRepl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_clojureRepl\" */\n \"highlight.js/lib/languages/clojure-repl\");\n }),\n clojure: createLanguageAsyncLoader(\"clojure\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_clojure\" */\n \"highlight.js/lib/languages/clojure\");\n }),\n cmake: createLanguageAsyncLoader(\"cmake\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_cmake\" */\n \"highlight.js/lib/languages/cmake\");\n }),\n coffeescript: createLanguageAsyncLoader(\"coffeescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_coffeescript\" */\n \"highlight.js/lib/languages/coffeescript\");\n }),\n coq: createLanguageAsyncLoader(\"coq\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_coq\" */\n \"highlight.js/lib/languages/coq\");\n }),\n cos: createLanguageAsyncLoader(\"cos\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_cos\" */\n \"highlight.js/lib/languages/cos\");\n }),\n cpp: createLanguageAsyncLoader(\"cpp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_cpp\" */\n \"highlight.js/lib/languages/cpp\");\n }),\n crmsh: createLanguageAsyncLoader(\"crmsh\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_crmsh\" */\n \"highlight.js/lib/languages/crmsh\");\n }),\n crystal: createLanguageAsyncLoader(\"crystal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_crystal\" */\n \"highlight.js/lib/languages/crystal\");\n }),\n csharp: createLanguageAsyncLoader(\"csharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_csharp\" */\n \"highlight.js/lib/languages/csharp\");\n }),\n csp: createLanguageAsyncLoader(\"csp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_csp\" */\n \"highlight.js/lib/languages/csp\");\n }),\n css: createLanguageAsyncLoader(\"css\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_css\" */\n \"highlight.js/lib/languages/css\");\n }),\n d: createLanguageAsyncLoader(\"d\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_d\" */\n \"highlight.js/lib/languages/d\");\n }),\n dart: createLanguageAsyncLoader(\"dart\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dart\" */\n \"highlight.js/lib/languages/dart\");\n }),\n delphi: createLanguageAsyncLoader(\"delphi\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_delphi\" */\n \"highlight.js/lib/languages/delphi\");\n }),\n diff: createLanguageAsyncLoader(\"diff\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_diff\" */\n \"highlight.js/lib/languages/diff\");\n }),\n django: createLanguageAsyncLoader(\"django\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_django\" */\n \"highlight.js/lib/languages/django\");\n }),\n dns: createLanguageAsyncLoader(\"dns\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dns\" */\n \"highlight.js/lib/languages/dns\");\n }),\n dockerfile: createLanguageAsyncLoader(\"dockerfile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dockerfile\" */\n \"highlight.js/lib/languages/dockerfile\");\n }),\n dos: createLanguageAsyncLoader(\"dos\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dos\" */\n \"highlight.js/lib/languages/dos\");\n }),\n dsconfig: createLanguageAsyncLoader(\"dsconfig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dsconfig\" */\n \"highlight.js/lib/languages/dsconfig\");\n }),\n dts: createLanguageAsyncLoader(\"dts\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dts\" */\n \"highlight.js/lib/languages/dts\");\n }),\n dust: createLanguageAsyncLoader(\"dust\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_dust\" */\n \"highlight.js/lib/languages/dust\");\n }),\n ebnf: createLanguageAsyncLoader(\"ebnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ebnf\" */\n \"highlight.js/lib/languages/ebnf\");\n }),\n elixir: createLanguageAsyncLoader(\"elixir\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_elixir\" */\n \"highlight.js/lib/languages/elixir\");\n }),\n elm: createLanguageAsyncLoader(\"elm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_elm\" */\n \"highlight.js/lib/languages/elm\");\n }),\n erb: createLanguageAsyncLoader(\"erb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_erb\" */\n \"highlight.js/lib/languages/erb\");\n }),\n erlangRepl: createLanguageAsyncLoader(\"erlangRepl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_erlangRepl\" */\n \"highlight.js/lib/languages/erlang-repl\");\n }),\n erlang: createLanguageAsyncLoader(\"erlang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_erlang\" */\n \"highlight.js/lib/languages/erlang\");\n }),\n excel: createLanguageAsyncLoader(\"excel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_excel\" */\n \"highlight.js/lib/languages/excel\");\n }),\n fix: createLanguageAsyncLoader(\"fix\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_fix\" */\n \"highlight.js/lib/languages/fix\");\n }),\n flix: createLanguageAsyncLoader(\"flix\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_flix\" */\n \"highlight.js/lib/languages/flix\");\n }),\n fortran: createLanguageAsyncLoader(\"fortran\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_fortran\" */\n \"highlight.js/lib/languages/fortran\");\n }),\n fsharp: createLanguageAsyncLoader(\"fsharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_fsharp\" */\n \"highlight.js/lib/languages/fsharp\");\n }),\n gams: createLanguageAsyncLoader(\"gams\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gams\" */\n \"highlight.js/lib/languages/gams\");\n }),\n gauss: createLanguageAsyncLoader(\"gauss\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gauss\" */\n \"highlight.js/lib/languages/gauss\");\n }),\n gcode: createLanguageAsyncLoader(\"gcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gcode\" */\n \"highlight.js/lib/languages/gcode\");\n }),\n gherkin: createLanguageAsyncLoader(\"gherkin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gherkin\" */\n \"highlight.js/lib/languages/gherkin\");\n }),\n glsl: createLanguageAsyncLoader(\"glsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_glsl\" */\n \"highlight.js/lib/languages/glsl\");\n }),\n gml: createLanguageAsyncLoader(\"gml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gml\" */\n \"highlight.js/lib/languages/gml\");\n }),\n go: createLanguageAsyncLoader(\"go\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_go\" */\n \"highlight.js/lib/languages/go\");\n }),\n golo: createLanguageAsyncLoader(\"golo\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_golo\" */\n \"highlight.js/lib/languages/golo\");\n }),\n gradle: createLanguageAsyncLoader(\"gradle\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_gradle\" */\n \"highlight.js/lib/languages/gradle\");\n }),\n groovy: createLanguageAsyncLoader(\"groovy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_groovy\" */\n \"highlight.js/lib/languages/groovy\");\n }),\n haml: createLanguageAsyncLoader(\"haml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_haml\" */\n \"highlight.js/lib/languages/haml\");\n }),\n handlebars: createLanguageAsyncLoader(\"handlebars\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_handlebars\" */\n \"highlight.js/lib/languages/handlebars\");\n }),\n haskell: createLanguageAsyncLoader(\"haskell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_haskell\" */\n \"highlight.js/lib/languages/haskell\");\n }),\n haxe: createLanguageAsyncLoader(\"haxe\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_haxe\" */\n \"highlight.js/lib/languages/haxe\");\n }),\n hsp: createLanguageAsyncLoader(\"hsp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_hsp\" */\n \"highlight.js/lib/languages/hsp\");\n }),\n htmlbars: createLanguageAsyncLoader(\"htmlbars\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_htmlbars\" */\n \"highlight.js/lib/languages/htmlbars\");\n }),\n http: createLanguageAsyncLoader(\"http\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_http\" */\n \"highlight.js/lib/languages/http\");\n }),\n hy: createLanguageAsyncLoader(\"hy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_hy\" */\n \"highlight.js/lib/languages/hy\");\n }),\n inform7: createLanguageAsyncLoader(\"inform7\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_inform7\" */\n \"highlight.js/lib/languages/inform7\");\n }),\n ini: createLanguageAsyncLoader(\"ini\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ini\" */\n \"highlight.js/lib/languages/ini\");\n }),\n irpf90: createLanguageAsyncLoader(\"irpf90\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_irpf90\" */\n \"highlight.js/lib/languages/irpf90\");\n }),\n isbl: createLanguageAsyncLoader(\"isbl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_isbl\" */\n \"highlight.js/lib/languages/isbl\");\n }),\n java: createLanguageAsyncLoader(\"java\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_java\" */\n \"highlight.js/lib/languages/java\");\n }),\n javascript: createLanguageAsyncLoader(\"javascript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_javascript\" */\n \"highlight.js/lib/languages/javascript\");\n }),\n jbossCli: createLanguageAsyncLoader(\"jbossCli\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_jbossCli\" */\n \"highlight.js/lib/languages/jboss-cli\");\n }),\n json: createLanguageAsyncLoader(\"json\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_json\" */\n \"highlight.js/lib/languages/json\");\n }),\n juliaRepl: createLanguageAsyncLoader(\"juliaRepl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_juliaRepl\" */\n \"highlight.js/lib/languages/julia-repl\");\n }),\n julia: createLanguageAsyncLoader(\"julia\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_julia\" */\n \"highlight.js/lib/languages/julia\");\n }),\n kotlin: createLanguageAsyncLoader(\"kotlin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_kotlin\" */\n \"highlight.js/lib/languages/kotlin\");\n }),\n lasso: createLanguageAsyncLoader(\"lasso\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_lasso\" */\n \"highlight.js/lib/languages/lasso\");\n }),\n latex: createLanguageAsyncLoader(\"latex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_latex\" */\n \"highlight.js/lib/languages/latex\");\n }),\n ldif: createLanguageAsyncLoader(\"ldif\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ldif\" */\n \"highlight.js/lib/languages/ldif\");\n }),\n leaf: createLanguageAsyncLoader(\"leaf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_leaf\" */\n \"highlight.js/lib/languages/leaf\");\n }),\n less: createLanguageAsyncLoader(\"less\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_less\" */\n \"highlight.js/lib/languages/less\");\n }),\n lisp: createLanguageAsyncLoader(\"lisp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_lisp\" */\n \"highlight.js/lib/languages/lisp\");\n }),\n livecodeserver: createLanguageAsyncLoader(\"livecodeserver\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_livecodeserver\" */\n \"highlight.js/lib/languages/livecodeserver\");\n }),\n livescript: createLanguageAsyncLoader(\"livescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_livescript\" */\n \"highlight.js/lib/languages/livescript\");\n }),\n llvm: createLanguageAsyncLoader(\"llvm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_llvm\" */\n \"highlight.js/lib/languages/llvm\");\n }),\n lsl: createLanguageAsyncLoader(\"lsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_lsl\" */\n \"highlight.js/lib/languages/lsl\");\n }),\n lua: createLanguageAsyncLoader(\"lua\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_lua\" */\n \"highlight.js/lib/languages/lua\");\n }),\n makefile: createLanguageAsyncLoader(\"makefile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_makefile\" */\n \"highlight.js/lib/languages/makefile\");\n }),\n markdown: createLanguageAsyncLoader(\"markdown\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_markdown\" */\n \"highlight.js/lib/languages/markdown\");\n }),\n mathematica: createLanguageAsyncLoader(\"mathematica\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mathematica\" */\n \"highlight.js/lib/languages/mathematica\");\n }),\n matlab: createLanguageAsyncLoader(\"matlab\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_matlab\" */\n \"highlight.js/lib/languages/matlab\");\n }),\n maxima: createLanguageAsyncLoader(\"maxima\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_maxima\" */\n \"highlight.js/lib/languages/maxima\");\n }),\n mel: createLanguageAsyncLoader(\"mel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mel\" */\n \"highlight.js/lib/languages/mel\");\n }),\n mercury: createLanguageAsyncLoader(\"mercury\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mercury\" */\n \"highlight.js/lib/languages/mercury\");\n }),\n mipsasm: createLanguageAsyncLoader(\"mipsasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mipsasm\" */\n \"highlight.js/lib/languages/mipsasm\");\n }),\n mizar: createLanguageAsyncLoader(\"mizar\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mizar\" */\n \"highlight.js/lib/languages/mizar\");\n }),\n mojolicious: createLanguageAsyncLoader(\"mojolicious\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_mojolicious\" */\n \"highlight.js/lib/languages/mojolicious\");\n }),\n monkey: createLanguageAsyncLoader(\"monkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_monkey\" */\n \"highlight.js/lib/languages/monkey\");\n }),\n moonscript: createLanguageAsyncLoader(\"moonscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_moonscript\" */\n \"highlight.js/lib/languages/moonscript\");\n }),\n n1ql: createLanguageAsyncLoader(\"n1ql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_n1ql\" */\n \"highlight.js/lib/languages/n1ql\");\n }),\n nginx: createLanguageAsyncLoader(\"nginx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_nginx\" */\n \"highlight.js/lib/languages/nginx\");\n }),\n nim: createLanguageAsyncLoader(\"nim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_nim\" */\n \"highlight.js/lib/languages/nim\");\n }),\n nix: createLanguageAsyncLoader(\"nix\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_nix\" */\n \"highlight.js/lib/languages/nix\");\n }),\n nodeRepl: createLanguageAsyncLoader(\"nodeRepl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_nodeRepl\" */\n \"highlight.js/lib/languages/node-repl\");\n }),\n nsis: createLanguageAsyncLoader(\"nsis\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_nsis\" */\n \"highlight.js/lib/languages/nsis\");\n }),\n objectivec: createLanguageAsyncLoader(\"objectivec\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_objectivec\" */\n \"highlight.js/lib/languages/objectivec\");\n }),\n ocaml: createLanguageAsyncLoader(\"ocaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ocaml\" */\n \"highlight.js/lib/languages/ocaml\");\n }),\n openscad: createLanguageAsyncLoader(\"openscad\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_openscad\" */\n \"highlight.js/lib/languages/openscad\");\n }),\n oxygene: createLanguageAsyncLoader(\"oxygene\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_oxygene\" */\n \"highlight.js/lib/languages/oxygene\");\n }),\n parser3: createLanguageAsyncLoader(\"parser3\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_parser3\" */\n \"highlight.js/lib/languages/parser3\");\n }),\n perl: createLanguageAsyncLoader(\"perl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_perl\" */\n \"highlight.js/lib/languages/perl\");\n }),\n pf: createLanguageAsyncLoader(\"pf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_pf\" */\n \"highlight.js/lib/languages/pf\");\n }),\n pgsql: createLanguageAsyncLoader(\"pgsql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_pgsql\" */\n \"highlight.js/lib/languages/pgsql\");\n }),\n phpTemplate: createLanguageAsyncLoader(\"phpTemplate\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_phpTemplate\" */\n \"highlight.js/lib/languages/php-template\");\n }),\n php: createLanguageAsyncLoader(\"php\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_php\" */\n \"highlight.js/lib/languages/php\");\n }),\n plaintext: createLanguageAsyncLoader(\"plaintext\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_plaintext\" */\n \"highlight.js/lib/languages/plaintext\");\n }),\n pony: createLanguageAsyncLoader(\"pony\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_pony\" */\n \"highlight.js/lib/languages/pony\");\n }),\n powershell: createLanguageAsyncLoader(\"powershell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_powershell\" */\n \"highlight.js/lib/languages/powershell\");\n }),\n processing: createLanguageAsyncLoader(\"processing\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_processing\" */\n \"highlight.js/lib/languages/processing\");\n }),\n profile: createLanguageAsyncLoader(\"profile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_profile\" */\n \"highlight.js/lib/languages/profile\");\n }),\n prolog: createLanguageAsyncLoader(\"prolog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_prolog\" */\n \"highlight.js/lib/languages/prolog\");\n }),\n properties: createLanguageAsyncLoader(\"properties\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_properties\" */\n \"highlight.js/lib/languages/properties\");\n }),\n protobuf: createLanguageAsyncLoader(\"protobuf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_protobuf\" */\n \"highlight.js/lib/languages/protobuf\");\n }),\n puppet: createLanguageAsyncLoader(\"puppet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_puppet\" */\n \"highlight.js/lib/languages/puppet\");\n }),\n purebasic: createLanguageAsyncLoader(\"purebasic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_purebasic\" */\n \"highlight.js/lib/languages/purebasic\");\n }),\n pythonRepl: createLanguageAsyncLoader(\"pythonRepl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_pythonRepl\" */\n \"highlight.js/lib/languages/python-repl\");\n }),\n python: createLanguageAsyncLoader(\"python\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_python\" */\n \"highlight.js/lib/languages/python\");\n }),\n q: createLanguageAsyncLoader(\"q\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_q\" */\n \"highlight.js/lib/languages/q\");\n }),\n qml: createLanguageAsyncLoader(\"qml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_qml\" */\n \"highlight.js/lib/languages/qml\");\n }),\n r: createLanguageAsyncLoader(\"r\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_r\" */\n \"highlight.js/lib/languages/r\");\n }),\n reasonml: createLanguageAsyncLoader(\"reasonml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_reasonml\" */\n \"highlight.js/lib/languages/reasonml\");\n }),\n rib: createLanguageAsyncLoader(\"rib\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_rib\" */\n \"highlight.js/lib/languages/rib\");\n }),\n roboconf: createLanguageAsyncLoader(\"roboconf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_roboconf\" */\n \"highlight.js/lib/languages/roboconf\");\n }),\n routeros: createLanguageAsyncLoader(\"routeros\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_routeros\" */\n \"highlight.js/lib/languages/routeros\");\n }),\n rsl: createLanguageAsyncLoader(\"rsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_rsl\" */\n \"highlight.js/lib/languages/rsl\");\n }),\n ruby: createLanguageAsyncLoader(\"ruby\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ruby\" */\n \"highlight.js/lib/languages/ruby\");\n }),\n ruleslanguage: createLanguageAsyncLoader(\"ruleslanguage\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_ruleslanguage\" */\n \"highlight.js/lib/languages/ruleslanguage\");\n }),\n rust: createLanguageAsyncLoader(\"rust\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_rust\" */\n \"highlight.js/lib/languages/rust\");\n }),\n sas: createLanguageAsyncLoader(\"sas\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_sas\" */\n \"highlight.js/lib/languages/sas\");\n }),\n scala: createLanguageAsyncLoader(\"scala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_scala\" */\n \"highlight.js/lib/languages/scala\");\n }),\n scheme: createLanguageAsyncLoader(\"scheme\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_scheme\" */\n \"highlight.js/lib/languages/scheme\");\n }),\n scilab: createLanguageAsyncLoader(\"scilab\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_scilab\" */\n \"highlight.js/lib/languages/scilab\");\n }),\n scss: createLanguageAsyncLoader(\"scss\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_scss\" */\n \"highlight.js/lib/languages/scss\");\n }),\n shell: createLanguageAsyncLoader(\"shell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_shell\" */\n \"highlight.js/lib/languages/shell\");\n }),\n smali: createLanguageAsyncLoader(\"smali\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_smali\" */\n \"highlight.js/lib/languages/smali\");\n }),\n smalltalk: createLanguageAsyncLoader(\"smalltalk\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_smalltalk\" */\n \"highlight.js/lib/languages/smalltalk\");\n }),\n sml: createLanguageAsyncLoader(\"sml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_sml\" */\n \"highlight.js/lib/languages/sml\");\n }),\n sqf: createLanguageAsyncLoader(\"sqf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_sqf\" */\n \"highlight.js/lib/languages/sqf\");\n }),\n sql: createLanguageAsyncLoader(\"sql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_sql\" */\n \"highlight.js/lib/languages/sql\");\n }),\n stan: createLanguageAsyncLoader(\"stan\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_stan\" */\n \"highlight.js/lib/languages/stan\");\n }),\n stata: createLanguageAsyncLoader(\"stata\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_stata\" */\n \"highlight.js/lib/languages/stata\");\n }),\n step21: createLanguageAsyncLoader(\"step21\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_step21\" */\n \"highlight.js/lib/languages/step21\");\n }),\n stylus: createLanguageAsyncLoader(\"stylus\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_stylus\" */\n \"highlight.js/lib/languages/stylus\");\n }),\n subunit: createLanguageAsyncLoader(\"subunit\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_subunit\" */\n \"highlight.js/lib/languages/subunit\");\n }),\n swift: createLanguageAsyncLoader(\"swift\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_swift\" */\n \"highlight.js/lib/languages/swift\");\n }),\n taggerscript: createLanguageAsyncLoader(\"taggerscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_taggerscript\" */\n \"highlight.js/lib/languages/taggerscript\");\n }),\n tap: createLanguageAsyncLoader(\"tap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_tap\" */\n \"highlight.js/lib/languages/tap\");\n }),\n tcl: createLanguageAsyncLoader(\"tcl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_tcl\" */\n \"highlight.js/lib/languages/tcl\");\n }),\n thrift: createLanguageAsyncLoader(\"thrift\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_thrift\" */\n \"highlight.js/lib/languages/thrift\");\n }),\n tp: createLanguageAsyncLoader(\"tp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_tp\" */\n \"highlight.js/lib/languages/tp\");\n }),\n twig: createLanguageAsyncLoader(\"twig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_twig\" */\n \"highlight.js/lib/languages/twig\");\n }),\n typescript: createLanguageAsyncLoader(\"typescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_typescript\" */\n \"highlight.js/lib/languages/typescript\");\n }),\n vala: createLanguageAsyncLoader(\"vala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vala\" */\n \"highlight.js/lib/languages/vala\");\n }),\n vbnet: createLanguageAsyncLoader(\"vbnet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vbnet\" */\n \"highlight.js/lib/languages/vbnet\");\n }),\n vbscriptHtml: createLanguageAsyncLoader(\"vbscriptHtml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vbscriptHtml\" */\n \"highlight.js/lib/languages/vbscript-html\");\n }),\n vbscript: createLanguageAsyncLoader(\"vbscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vbscript\" */\n \"highlight.js/lib/languages/vbscript\");\n }),\n verilog: createLanguageAsyncLoader(\"verilog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_verilog\" */\n \"highlight.js/lib/languages/verilog\");\n }),\n vhdl: createLanguageAsyncLoader(\"vhdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vhdl\" */\n \"highlight.js/lib/languages/vhdl\");\n }),\n vim: createLanguageAsyncLoader(\"vim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_vim\" */\n \"highlight.js/lib/languages/vim\");\n }),\n x86asm: createLanguageAsyncLoader(\"x86asm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_x86asm\" */\n \"highlight.js/lib/languages/x86asm\");\n }),\n xl: createLanguageAsyncLoader(\"xl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_xl\" */\n \"highlight.js/lib/languages/xl\");\n }),\n xml: createLanguageAsyncLoader(\"xml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_xml\" */\n \"highlight.js/lib/languages/xml\");\n }),\n xquery: createLanguageAsyncLoader(\"xquery\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_xquery\" */\n \"highlight.js/lib/languages/xquery\");\n }),\n yaml: createLanguageAsyncLoader(\"yaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_yaml\" */\n \"highlight.js/lib/languages/yaml\");\n }),\n zephir: createLanguageAsyncLoader(\"zephir\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_highlight_zephir\" */\n \"highlight.js/lib/languages/zephir\");\n })\n};","import highlight from './highlight';\nimport lowlight from 'lowlight/lib/core';\nvar SyntaxHighlighter = highlight(lowlight, {});\nSyntaxHighlighter.registerLanguage = lowlight.registerLanguage;\nexport default SyntaxHighlighter;","import createAsyncLoadingHighlighter from './async-syntax-highlighter';\nimport languageLoaders from './async-languages/prism';\nexport default createAsyncLoadingHighlighter({\n loader: function loader() {\n return import(\n /* webpackChunkName:\"react-syntax-highlighter/refractor-core-import\" */\n 'refractor/core').then(function (module) {\n // Webpack 3 returns module.exports as default as module, but webpack 4 returns module.exports as module.default\n return module.default || module;\n });\n },\n isLanguageRegistered: function isLanguageRegistered(instance, language) {\n return instance.registered(language);\n },\n languageLoaders: languageLoaders,\n registerLanguage: function registerLanguage(instance, name, language) {\n return instance.register(language);\n }\n});","import createLanguageAsyncLoader from \"./create-language-async-loader\";\nexport default {\n abap: createLanguageAsyncLoader(\"abap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_abap\" */\n \"refractor/lang/abap.js\");\n }),\n abnf: createLanguageAsyncLoader(\"abnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_abnf\" */\n \"refractor/lang/abnf.js\");\n }),\n actionscript: createLanguageAsyncLoader(\"actionscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_actionscript\" */\n \"refractor/lang/actionscript.js\");\n }),\n ada: createLanguageAsyncLoader(\"ada\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ada\" */\n \"refractor/lang/ada.js\");\n }),\n agda: createLanguageAsyncLoader(\"agda\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_agda\" */\n \"refractor/lang/agda.js\");\n }),\n al: createLanguageAsyncLoader(\"al\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_al\" */\n \"refractor/lang/al.js\");\n }),\n antlr4: createLanguageAsyncLoader(\"antlr4\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_antlr4\" */\n \"refractor/lang/antlr4.js\");\n }),\n apacheconf: createLanguageAsyncLoader(\"apacheconf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_apacheconf\" */\n \"refractor/lang/apacheconf.js\");\n }),\n apl: createLanguageAsyncLoader(\"apl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_apl\" */\n \"refractor/lang/apl.js\");\n }),\n applescript: createLanguageAsyncLoader(\"applescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_applescript\" */\n \"refractor/lang/applescript.js\");\n }),\n aql: createLanguageAsyncLoader(\"aql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_aql\" */\n \"refractor/lang/aql.js\");\n }),\n arduino: createLanguageAsyncLoader(\"arduino\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_arduino\" */\n \"refractor/lang/arduino.js\");\n }),\n arff: createLanguageAsyncLoader(\"arff\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_arff\" */\n \"refractor/lang/arff.js\");\n }),\n asciidoc: createLanguageAsyncLoader(\"asciidoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_asciidoc\" */\n \"refractor/lang/asciidoc.js\");\n }),\n asm6502: createLanguageAsyncLoader(\"asm6502\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_asm6502\" */\n \"refractor/lang/asm6502.js\");\n }),\n aspnet: createLanguageAsyncLoader(\"aspnet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_aspnet\" */\n \"refractor/lang/aspnet.js\");\n }),\n autohotkey: createLanguageAsyncLoader(\"autohotkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_autohotkey\" */\n \"refractor/lang/autohotkey.js\");\n }),\n autoit: createLanguageAsyncLoader(\"autoit\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_autoit\" */\n \"refractor/lang/autoit.js\");\n }),\n bash: createLanguageAsyncLoader(\"bash\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bash\" */\n \"refractor/lang/bash.js\");\n }),\n basic: createLanguageAsyncLoader(\"basic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_basic\" */\n \"refractor/lang/basic.js\");\n }),\n batch: createLanguageAsyncLoader(\"batch\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_batch\" */\n \"refractor/lang/batch.js\");\n }),\n bbcode: createLanguageAsyncLoader(\"bbcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bbcode\" */\n \"refractor/lang/bbcode.js\");\n }),\n birb: createLanguageAsyncLoader(\"birb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_birb\" */\n \"refractor/lang/birb.js\");\n }),\n bison: createLanguageAsyncLoader(\"bison\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bison\" */\n \"refractor/lang/bison.js\");\n }),\n bnf: createLanguageAsyncLoader(\"bnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bnf\" */\n \"refractor/lang/bnf.js\");\n }),\n brainfuck: createLanguageAsyncLoader(\"brainfuck\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_brainfuck\" */\n \"refractor/lang/brainfuck.js\");\n }),\n brightscript: createLanguageAsyncLoader(\"brightscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_brightscript\" */\n \"refractor/lang/brightscript.js\");\n }),\n bro: createLanguageAsyncLoader(\"bro\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bro\" */\n \"refractor/lang/bro.js\");\n }),\n bsl: createLanguageAsyncLoader(\"bsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_bsl\" */\n \"refractor/lang/bsl.js\");\n }),\n c: createLanguageAsyncLoader(\"c\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_c\" */\n \"refractor/lang/c.js\");\n }),\n cil: createLanguageAsyncLoader(\"cil\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cil\" */\n \"refractor/lang/cil.js\");\n }),\n clike: createLanguageAsyncLoader(\"clike\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_clike\" */\n \"refractor/lang/clike.js\");\n }),\n clojure: createLanguageAsyncLoader(\"clojure\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_clojure\" */\n \"refractor/lang/clojure.js\");\n }),\n cmake: createLanguageAsyncLoader(\"cmake\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cmake\" */\n \"refractor/lang/cmake.js\");\n }),\n coffeescript: createLanguageAsyncLoader(\"coffeescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_coffeescript\" */\n \"refractor/lang/coffeescript.js\");\n }),\n concurnas: createLanguageAsyncLoader(\"concurnas\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_concurnas\" */\n \"refractor/lang/concurnas.js\");\n }),\n cpp: createLanguageAsyncLoader(\"cpp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cpp\" */\n \"refractor/lang/cpp.js\");\n }),\n crystal: createLanguageAsyncLoader(\"crystal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_crystal\" */\n \"refractor/lang/crystal.js\");\n }),\n csharp: createLanguageAsyncLoader(\"csharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_csharp\" */\n \"refractor/lang/csharp.js\");\n }),\n csp: createLanguageAsyncLoader(\"csp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_csp\" */\n \"refractor/lang/csp.js\");\n }),\n cssExtras: createLanguageAsyncLoader(\"cssExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cssExtras\" */\n \"refractor/lang/css-extras.js\");\n }),\n css: createLanguageAsyncLoader(\"css\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_css\" */\n \"refractor/lang/css.js\");\n }),\n cypher: createLanguageAsyncLoader(\"cypher\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_cypher\" */\n \"refractor/lang/cypher.js\");\n }),\n d: createLanguageAsyncLoader(\"d\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_d\" */\n \"refractor/lang/d.js\");\n }),\n dart: createLanguageAsyncLoader(\"dart\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dart\" */\n \"refractor/lang/dart.js\");\n }),\n dax: createLanguageAsyncLoader(\"dax\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dax\" */\n \"refractor/lang/dax.js\");\n }),\n dhall: createLanguageAsyncLoader(\"dhall\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dhall\" */\n \"refractor/lang/dhall.js\");\n }),\n diff: createLanguageAsyncLoader(\"diff\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_diff\" */\n \"refractor/lang/diff.js\");\n }),\n django: createLanguageAsyncLoader(\"django\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_django\" */\n \"refractor/lang/django.js\");\n }),\n dnsZoneFile: createLanguageAsyncLoader(\"dnsZoneFile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_dnsZoneFile\" */\n \"refractor/lang/dns-zone-file.js\");\n }),\n docker: createLanguageAsyncLoader(\"docker\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_docker\" */\n \"refractor/lang/docker.js\");\n }),\n ebnf: createLanguageAsyncLoader(\"ebnf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ebnf\" */\n \"refractor/lang/ebnf.js\");\n }),\n editorconfig: createLanguageAsyncLoader(\"editorconfig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_editorconfig\" */\n \"refractor/lang/editorconfig.js\");\n }),\n eiffel: createLanguageAsyncLoader(\"eiffel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_eiffel\" */\n \"refractor/lang/eiffel.js\");\n }),\n ejs: createLanguageAsyncLoader(\"ejs\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ejs\" */\n \"refractor/lang/ejs.js\");\n }),\n elixir: createLanguageAsyncLoader(\"elixir\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_elixir\" */\n \"refractor/lang/elixir.js\");\n }),\n elm: createLanguageAsyncLoader(\"elm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_elm\" */\n \"refractor/lang/elm.js\");\n }),\n erb: createLanguageAsyncLoader(\"erb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_erb\" */\n \"refractor/lang/erb.js\");\n }),\n erlang: createLanguageAsyncLoader(\"erlang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_erlang\" */\n \"refractor/lang/erlang.js\");\n }),\n etlua: createLanguageAsyncLoader(\"etlua\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_etlua\" */\n \"refractor/lang/etlua.js\");\n }),\n excelFormula: createLanguageAsyncLoader(\"excelFormula\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_excelFormula\" */\n \"refractor/lang/excel-formula.js\");\n }),\n factor: createLanguageAsyncLoader(\"factor\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_factor\" */\n \"refractor/lang/factor.js\");\n }),\n firestoreSecurityRules: createLanguageAsyncLoader(\"firestoreSecurityRules\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_firestoreSecurityRules\" */\n \"refractor/lang/firestore-security-rules.js\");\n }),\n flow: createLanguageAsyncLoader(\"flow\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_flow\" */\n \"refractor/lang/flow.js\");\n }),\n fortran: createLanguageAsyncLoader(\"fortran\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_fortran\" */\n \"refractor/lang/fortran.js\");\n }),\n fsharp: createLanguageAsyncLoader(\"fsharp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_fsharp\" */\n \"refractor/lang/fsharp.js\");\n }),\n ftl: createLanguageAsyncLoader(\"ftl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ftl\" */\n \"refractor/lang/ftl.js\");\n }),\n gcode: createLanguageAsyncLoader(\"gcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gcode\" */\n \"refractor/lang/gcode.js\");\n }),\n gdscript: createLanguageAsyncLoader(\"gdscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gdscript\" */\n \"refractor/lang/gdscript.js\");\n }),\n gedcom: createLanguageAsyncLoader(\"gedcom\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gedcom\" */\n \"refractor/lang/gedcom.js\");\n }),\n gherkin: createLanguageAsyncLoader(\"gherkin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gherkin\" */\n \"refractor/lang/gherkin.js\");\n }),\n git: createLanguageAsyncLoader(\"git\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_git\" */\n \"refractor/lang/git.js\");\n }),\n glsl: createLanguageAsyncLoader(\"glsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_glsl\" */\n \"refractor/lang/glsl.js\");\n }),\n gml: createLanguageAsyncLoader(\"gml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_gml\" */\n \"refractor/lang/gml.js\");\n }),\n go: createLanguageAsyncLoader(\"go\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_go\" */\n \"refractor/lang/go.js\");\n }),\n graphql: createLanguageAsyncLoader(\"graphql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_graphql\" */\n \"refractor/lang/graphql.js\");\n }),\n groovy: createLanguageAsyncLoader(\"groovy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_groovy\" */\n \"refractor/lang/groovy.js\");\n }),\n haml: createLanguageAsyncLoader(\"haml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haml\" */\n \"refractor/lang/haml.js\");\n }),\n handlebars: createLanguageAsyncLoader(\"handlebars\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_handlebars\" */\n \"refractor/lang/handlebars.js\");\n }),\n haskell: createLanguageAsyncLoader(\"haskell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haskell\" */\n \"refractor/lang/haskell.js\");\n }),\n haxe: createLanguageAsyncLoader(\"haxe\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_haxe\" */\n \"refractor/lang/haxe.js\");\n }),\n hcl: createLanguageAsyncLoader(\"hcl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hcl\" */\n \"refractor/lang/hcl.js\");\n }),\n hlsl: createLanguageAsyncLoader(\"hlsl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hlsl\" */\n \"refractor/lang/hlsl.js\");\n }),\n hpkp: createLanguageAsyncLoader(\"hpkp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hpkp\" */\n \"refractor/lang/hpkp.js\");\n }),\n hsts: createLanguageAsyncLoader(\"hsts\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_hsts\" */\n \"refractor/lang/hsts.js\");\n }),\n http: createLanguageAsyncLoader(\"http\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_http\" */\n \"refractor/lang/http.js\");\n }),\n ichigojam: createLanguageAsyncLoader(\"ichigojam\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ichigojam\" */\n \"refractor/lang/ichigojam.js\");\n }),\n icon: createLanguageAsyncLoader(\"icon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_icon\" */\n \"refractor/lang/icon.js\");\n }),\n iecst: createLanguageAsyncLoader(\"iecst\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_iecst\" */\n \"refractor/lang/iecst.js\");\n }),\n ignore: createLanguageAsyncLoader(\"ignore\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ignore\" */\n \"refractor/lang/ignore.js\");\n }),\n inform7: createLanguageAsyncLoader(\"inform7\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_inform7\" */\n \"refractor/lang/inform7.js\");\n }),\n ini: createLanguageAsyncLoader(\"ini\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ini\" */\n \"refractor/lang/ini.js\");\n }),\n io: createLanguageAsyncLoader(\"io\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_io\" */\n \"refractor/lang/io.js\");\n }),\n j: createLanguageAsyncLoader(\"j\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_j\" */\n \"refractor/lang/j.js\");\n }),\n java: createLanguageAsyncLoader(\"java\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_java\" */\n \"refractor/lang/java.js\");\n }),\n javadoc: createLanguageAsyncLoader(\"javadoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javadoc\" */\n \"refractor/lang/javadoc.js\");\n }),\n javadoclike: createLanguageAsyncLoader(\"javadoclike\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javadoclike\" */\n \"refractor/lang/javadoclike.js\");\n }),\n javascript: createLanguageAsyncLoader(\"javascript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javascript\" */\n \"refractor/lang/javascript.js\");\n }),\n javastacktrace: createLanguageAsyncLoader(\"javastacktrace\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_javastacktrace\" */\n \"refractor/lang/javastacktrace.js\");\n }),\n jolie: createLanguageAsyncLoader(\"jolie\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jolie\" */\n \"refractor/lang/jolie.js\");\n }),\n jq: createLanguageAsyncLoader(\"jq\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jq\" */\n \"refractor/lang/jq.js\");\n }),\n jsExtras: createLanguageAsyncLoader(\"jsExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsExtras\" */\n \"refractor/lang/js-extras.js\");\n }),\n jsTemplates: createLanguageAsyncLoader(\"jsTemplates\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsTemplates\" */\n \"refractor/lang/js-templates.js\");\n }),\n jsdoc: createLanguageAsyncLoader(\"jsdoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsdoc\" */\n \"refractor/lang/jsdoc.js\");\n }),\n json: createLanguageAsyncLoader(\"json\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_json\" */\n \"refractor/lang/json.js\");\n }),\n json5: createLanguageAsyncLoader(\"json5\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_json5\" */\n \"refractor/lang/json5.js\");\n }),\n jsonp: createLanguageAsyncLoader(\"jsonp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsonp\" */\n \"refractor/lang/jsonp.js\");\n }),\n jsstacktrace: createLanguageAsyncLoader(\"jsstacktrace\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsstacktrace\" */\n \"refractor/lang/jsstacktrace.js\");\n }),\n jsx: createLanguageAsyncLoader(\"jsx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_jsx\" */\n \"refractor/lang/jsx.js\");\n }),\n julia: createLanguageAsyncLoader(\"julia\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_julia\" */\n \"refractor/lang/julia.js\");\n }),\n keyman: createLanguageAsyncLoader(\"keyman\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_keyman\" */\n \"refractor/lang/keyman.js\");\n }),\n kotlin: createLanguageAsyncLoader(\"kotlin\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_kotlin\" */\n \"refractor/lang/kotlin.js\");\n }),\n latex: createLanguageAsyncLoader(\"latex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_latex\" */\n \"refractor/lang/latex.js\");\n }),\n latte: createLanguageAsyncLoader(\"latte\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_latte\" */\n \"refractor/lang/latte.js\");\n }),\n less: createLanguageAsyncLoader(\"less\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_less\" */\n \"refractor/lang/less.js\");\n }),\n lilypond: createLanguageAsyncLoader(\"lilypond\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lilypond\" */\n \"refractor/lang/lilypond.js\");\n }),\n liquid: createLanguageAsyncLoader(\"liquid\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_liquid\" */\n \"refractor/lang/liquid.js\");\n }),\n lisp: createLanguageAsyncLoader(\"lisp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lisp\" */\n \"refractor/lang/lisp.js\");\n }),\n livescript: createLanguageAsyncLoader(\"livescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_livescript\" */\n \"refractor/lang/livescript.js\");\n }),\n llvm: createLanguageAsyncLoader(\"llvm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_llvm\" */\n \"refractor/lang/llvm.js\");\n }),\n lolcode: createLanguageAsyncLoader(\"lolcode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lolcode\" */\n \"refractor/lang/lolcode.js\");\n }),\n lua: createLanguageAsyncLoader(\"lua\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_lua\" */\n \"refractor/lang/lua.js\");\n }),\n makefile: createLanguageAsyncLoader(\"makefile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_makefile\" */\n \"refractor/lang/makefile.js\");\n }),\n markdown: createLanguageAsyncLoader(\"markdown\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markdown\" */\n \"refractor/lang/markdown.js\");\n }),\n markupTemplating: createLanguageAsyncLoader(\"markupTemplating\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markupTemplating\" */\n \"refractor/lang/markup-templating.js\");\n }),\n markup: createLanguageAsyncLoader(\"markup\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_markup\" */\n \"refractor/lang/markup.js\");\n }),\n matlab: createLanguageAsyncLoader(\"matlab\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_matlab\" */\n \"refractor/lang/matlab.js\");\n }),\n mel: createLanguageAsyncLoader(\"mel\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mel\" */\n \"refractor/lang/mel.js\");\n }),\n mizar: createLanguageAsyncLoader(\"mizar\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mizar\" */\n \"refractor/lang/mizar.js\");\n }),\n mongodb: createLanguageAsyncLoader(\"mongodb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_mongodb\" */\n \"refractor/lang/mongodb.js\");\n }),\n monkey: createLanguageAsyncLoader(\"monkey\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_monkey\" */\n \"refractor/lang/monkey.js\");\n }),\n moonscript: createLanguageAsyncLoader(\"moonscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_moonscript\" */\n \"refractor/lang/moonscript.js\");\n }),\n n1ql: createLanguageAsyncLoader(\"n1ql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_n1ql\" */\n \"refractor/lang/n1ql.js\");\n }),\n n4js: createLanguageAsyncLoader(\"n4js\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_n4js\" */\n \"refractor/lang/n4js.js\");\n }),\n nand2tetrisHdl: createLanguageAsyncLoader(\"nand2tetrisHdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nand2tetrisHdl\" */\n \"refractor/lang/nand2tetris-hdl.js\");\n }),\n naniscript: createLanguageAsyncLoader(\"naniscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_naniscript\" */\n \"refractor/lang/naniscript.js\");\n }),\n nasm: createLanguageAsyncLoader(\"nasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nasm\" */\n \"refractor/lang/nasm.js\");\n }),\n neon: createLanguageAsyncLoader(\"neon\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_neon\" */\n \"refractor/lang/neon.js\");\n }),\n nginx: createLanguageAsyncLoader(\"nginx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nginx\" */\n \"refractor/lang/nginx.js\");\n }),\n nim: createLanguageAsyncLoader(\"nim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nim\" */\n \"refractor/lang/nim.js\");\n }),\n nix: createLanguageAsyncLoader(\"nix\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nix\" */\n \"refractor/lang/nix.js\");\n }),\n nsis: createLanguageAsyncLoader(\"nsis\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_nsis\" */\n \"refractor/lang/nsis.js\");\n }),\n objectivec: createLanguageAsyncLoader(\"objectivec\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_objectivec\" */\n \"refractor/lang/objectivec.js\");\n }),\n ocaml: createLanguageAsyncLoader(\"ocaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ocaml\" */\n \"refractor/lang/ocaml.js\");\n }),\n opencl: createLanguageAsyncLoader(\"opencl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_opencl\" */\n \"refractor/lang/opencl.js\");\n }),\n oz: createLanguageAsyncLoader(\"oz\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_oz\" */\n \"refractor/lang/oz.js\");\n }),\n parigp: createLanguageAsyncLoader(\"parigp\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_parigp\" */\n \"refractor/lang/parigp.js\");\n }),\n parser: createLanguageAsyncLoader(\"parser\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_parser\" */\n \"refractor/lang/parser.js\");\n }),\n pascal: createLanguageAsyncLoader(\"pascal\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pascal\" */\n \"refractor/lang/pascal.js\");\n }),\n pascaligo: createLanguageAsyncLoader(\"pascaligo\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pascaligo\" */\n \"refractor/lang/pascaligo.js\");\n }),\n pcaxis: createLanguageAsyncLoader(\"pcaxis\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pcaxis\" */\n \"refractor/lang/pcaxis.js\");\n }),\n peoplecode: createLanguageAsyncLoader(\"peoplecode\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_peoplecode\" */\n \"refractor/lang/peoplecode.js\");\n }),\n perl: createLanguageAsyncLoader(\"perl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_perl\" */\n \"refractor/lang/perl.js\");\n }),\n phpExtras: createLanguageAsyncLoader(\"phpExtras\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_phpExtras\" */\n \"refractor/lang/php-extras.js\");\n }),\n php: createLanguageAsyncLoader(\"php\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_php\" */\n \"refractor/lang/php.js\");\n }),\n phpdoc: createLanguageAsyncLoader(\"phpdoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_phpdoc\" */\n \"refractor/lang/phpdoc.js\");\n }),\n plsql: createLanguageAsyncLoader(\"plsql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_plsql\" */\n \"refractor/lang/plsql.js\");\n }),\n powerquery: createLanguageAsyncLoader(\"powerquery\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_powerquery\" */\n \"refractor/lang/powerquery.js\");\n }),\n powershell: createLanguageAsyncLoader(\"powershell\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_powershell\" */\n \"refractor/lang/powershell.js\");\n }),\n processing: createLanguageAsyncLoader(\"processing\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_processing\" */\n \"refractor/lang/processing.js\");\n }),\n prolog: createLanguageAsyncLoader(\"prolog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_prolog\" */\n \"refractor/lang/prolog.js\");\n }),\n properties: createLanguageAsyncLoader(\"properties\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_properties\" */\n \"refractor/lang/properties.js\");\n }),\n protobuf: createLanguageAsyncLoader(\"protobuf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_protobuf\" */\n \"refractor/lang/protobuf.js\");\n }),\n pug: createLanguageAsyncLoader(\"pug\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pug\" */\n \"refractor/lang/pug.js\");\n }),\n puppet: createLanguageAsyncLoader(\"puppet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_puppet\" */\n \"refractor/lang/puppet.js\");\n }),\n pure: createLanguageAsyncLoader(\"pure\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_pure\" */\n \"refractor/lang/pure.js\");\n }),\n purebasic: createLanguageAsyncLoader(\"purebasic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_purebasic\" */\n \"refractor/lang/purebasic.js\");\n }),\n purescript: createLanguageAsyncLoader(\"purescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_purescript\" */\n \"refractor/lang/purescript.js\");\n }),\n python: createLanguageAsyncLoader(\"python\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_python\" */\n \"refractor/lang/python.js\");\n }),\n q: createLanguageAsyncLoader(\"q\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_q\" */\n \"refractor/lang/q.js\");\n }),\n qml: createLanguageAsyncLoader(\"qml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_qml\" */\n \"refractor/lang/qml.js\");\n }),\n qore: createLanguageAsyncLoader(\"qore\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_qore\" */\n \"refractor/lang/qore.js\");\n }),\n r: createLanguageAsyncLoader(\"r\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_r\" */\n \"refractor/lang/r.js\");\n }),\n racket: createLanguageAsyncLoader(\"racket\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_racket\" */\n \"refractor/lang/racket.js\");\n }),\n reason: createLanguageAsyncLoader(\"reason\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_reason\" */\n \"refractor/lang/reason.js\");\n }),\n regex: createLanguageAsyncLoader(\"regex\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_regex\" */\n \"refractor/lang/regex.js\");\n }),\n renpy: createLanguageAsyncLoader(\"renpy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_renpy\" */\n \"refractor/lang/renpy.js\");\n }),\n rest: createLanguageAsyncLoader(\"rest\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rest\" */\n \"refractor/lang/rest.js\");\n }),\n rip: createLanguageAsyncLoader(\"rip\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rip\" */\n \"refractor/lang/rip.js\");\n }),\n roboconf: createLanguageAsyncLoader(\"roboconf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_roboconf\" */\n \"refractor/lang/roboconf.js\");\n }),\n robotframework: createLanguageAsyncLoader(\"robotframework\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_robotframework\" */\n \"refractor/lang/robotframework.js\");\n }),\n ruby: createLanguageAsyncLoader(\"ruby\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_ruby\" */\n \"refractor/lang/ruby.js\");\n }),\n rust: createLanguageAsyncLoader(\"rust\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_rust\" */\n \"refractor/lang/rust.js\");\n }),\n sas: createLanguageAsyncLoader(\"sas\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sas\" */\n \"refractor/lang/sas.js\");\n }),\n sass: createLanguageAsyncLoader(\"sass\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sass\" */\n \"refractor/lang/sass.js\");\n }),\n scala: createLanguageAsyncLoader(\"scala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scala\" */\n \"refractor/lang/scala.js\");\n }),\n scheme: createLanguageAsyncLoader(\"scheme\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scheme\" */\n \"refractor/lang/scheme.js\");\n }),\n scss: createLanguageAsyncLoader(\"scss\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_scss\" */\n \"refractor/lang/scss.js\");\n }),\n shellSession: createLanguageAsyncLoader(\"shellSession\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_shellSession\" */\n \"refractor/lang/shell-session.js\");\n }),\n smali: createLanguageAsyncLoader(\"smali\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smali\" */\n \"refractor/lang/smali.js\");\n }),\n smalltalk: createLanguageAsyncLoader(\"smalltalk\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smalltalk\" */\n \"refractor/lang/smalltalk.js\");\n }),\n smarty: createLanguageAsyncLoader(\"smarty\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_smarty\" */\n \"refractor/lang/smarty.js\");\n }),\n sml: createLanguageAsyncLoader(\"sml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sml\" */\n \"refractor/lang/sml.js\");\n }),\n solidity: createLanguageAsyncLoader(\"solidity\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_solidity\" */\n \"refractor/lang/solidity.js\");\n }),\n solutionFile: createLanguageAsyncLoader(\"solutionFile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_solutionFile\" */\n \"refractor/lang/solution-file.js\");\n }),\n soy: createLanguageAsyncLoader(\"soy\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_soy\" */\n \"refractor/lang/soy.js\");\n }),\n sparql: createLanguageAsyncLoader(\"sparql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sparql\" */\n \"refractor/lang/sparql.js\");\n }),\n splunkSpl: createLanguageAsyncLoader(\"splunkSpl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_splunkSpl\" */\n \"refractor/lang/splunk-spl.js\");\n }),\n sqf: createLanguageAsyncLoader(\"sqf\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sqf\" */\n \"refractor/lang/sqf.js\");\n }),\n sql: createLanguageAsyncLoader(\"sql\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_sql\" */\n \"refractor/lang/sql.js\");\n }),\n stan: createLanguageAsyncLoader(\"stan\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_stan\" */\n \"refractor/lang/stan.js\");\n }),\n stylus: createLanguageAsyncLoader(\"stylus\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_stylus\" */\n \"refractor/lang/stylus.js\");\n }),\n swift: createLanguageAsyncLoader(\"swift\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_swift\" */\n \"refractor/lang/swift.js\");\n }),\n t4Cs: createLanguageAsyncLoader(\"t4Cs\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Cs\" */\n \"refractor/lang/t4-cs.js\");\n }),\n t4Templating: createLanguageAsyncLoader(\"t4Templating\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Templating\" */\n \"refractor/lang/t4-templating.js\");\n }),\n t4Vb: createLanguageAsyncLoader(\"t4Vb\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_t4Vb\" */\n \"refractor/lang/t4-vb.js\");\n }),\n tap: createLanguageAsyncLoader(\"tap\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tap\" */\n \"refractor/lang/tap.js\");\n }),\n tcl: createLanguageAsyncLoader(\"tcl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tcl\" */\n \"refractor/lang/tcl.js\");\n }),\n textile: createLanguageAsyncLoader(\"textile\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_textile\" */\n \"refractor/lang/textile.js\");\n }),\n toml: createLanguageAsyncLoader(\"toml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_toml\" */\n \"refractor/lang/toml.js\");\n }),\n tsx: createLanguageAsyncLoader(\"tsx\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tsx\" */\n \"refractor/lang/tsx.js\");\n }),\n tt2: createLanguageAsyncLoader(\"tt2\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_tt2\" */\n \"refractor/lang/tt2.js\");\n }),\n turtle: createLanguageAsyncLoader(\"turtle\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_turtle\" */\n \"refractor/lang/turtle.js\");\n }),\n twig: createLanguageAsyncLoader(\"twig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_twig\" */\n \"refractor/lang/twig.js\");\n }),\n typescript: createLanguageAsyncLoader(\"typescript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_typescript\" */\n \"refractor/lang/typescript.js\");\n }),\n typoscript: createLanguageAsyncLoader(\"typoscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_typoscript\" */\n \"refractor/lang/typoscript.js\");\n }),\n unrealscript: createLanguageAsyncLoader(\"unrealscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_unrealscript\" */\n \"refractor/lang/unrealscript.js\");\n }),\n vala: createLanguageAsyncLoader(\"vala\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vala\" */\n \"refractor/lang/vala.js\");\n }),\n vbnet: createLanguageAsyncLoader(\"vbnet\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vbnet\" */\n \"refractor/lang/vbnet.js\");\n }),\n velocity: createLanguageAsyncLoader(\"velocity\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_velocity\" */\n \"refractor/lang/velocity.js\");\n }),\n verilog: createLanguageAsyncLoader(\"verilog\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_verilog\" */\n \"refractor/lang/verilog.js\");\n }),\n vhdl: createLanguageAsyncLoader(\"vhdl\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vhdl\" */\n \"refractor/lang/vhdl.js\");\n }),\n vim: createLanguageAsyncLoader(\"vim\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_vim\" */\n \"refractor/lang/vim.js\");\n }),\n visualBasic: createLanguageAsyncLoader(\"visualBasic\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_visualBasic\" */\n \"refractor/lang/visual-basic.js\");\n }),\n warpscript: createLanguageAsyncLoader(\"warpscript\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_warpscript\" */\n \"refractor/lang/warpscript.js\");\n }),\n wasm: createLanguageAsyncLoader(\"wasm\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wasm\" */\n \"refractor/lang/wasm.js\");\n }),\n wiki: createLanguageAsyncLoader(\"wiki\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_wiki\" */\n \"refractor/lang/wiki.js\");\n }),\n xeora: createLanguageAsyncLoader(\"xeora\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xeora\" */\n \"refractor/lang/xeora.js\");\n }),\n xmlDoc: createLanguageAsyncLoader(\"xmlDoc\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xmlDoc\" */\n \"refractor/lang/xml-doc.js\");\n }),\n xojo: createLanguageAsyncLoader(\"xojo\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xojo\" */\n \"refractor/lang/xojo.js\");\n }),\n xquery: createLanguageAsyncLoader(\"xquery\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_xquery\" */\n \"refractor/lang/xquery.js\");\n }),\n yaml: createLanguageAsyncLoader(\"yaml\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_yaml\" */\n \"refractor/lang/yaml.js\");\n }),\n yang: createLanguageAsyncLoader(\"yang\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_yang\" */\n \"refractor/lang/yang.js\");\n }),\n zig: createLanguageAsyncLoader(\"zig\", function () {\n return import(\n /* webpackChunkName: \"react-syntax-highlighter_languages_refractor_zig\" */\n \"refractor/lang/zig.js\");\n })\n};","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'aspnet', 'autohotkey', 'autoit', 'bash', 'basic', 'batch', 'bbcode', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cil', 'clike', 'clojure', 'cmake', 'coffeescript', 'concurnas', 'cpp', 'crystal', 'csharp', 'csp', 'css-extras', 'css', 'cypher', 'd', 'dart', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keyman', 'kotlin', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'lolcode', 'lua', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'mel', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'properties', 'protobuf', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'r', 'racket', 'reason', 'regex', 'renpy', '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', 'stan', 'stylus', 'swift', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'wiki', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","import createAsyncLoadingHighlighter from './async-syntax-highlighter';\nimport supportedLanguages from './languages/prism/supported-languages';\nexport default createAsyncLoadingHighlighter({\n loader: function loader() {\n return import(\n /* webpackChunkName:\"react-syntax-highlighter/refractor-import\" */\n 'refractor').then(function (module) {\n // Webpack 3 returns module.exports as default as module, but webpack 4 returns module.exports as module.default\n return module.default || module;\n });\n },\n noAsyncLoadingLanguages: true,\n supportedLanguages: supportedLanguages\n});","import highlight from './highlight';\nimport refractor from 'refractor/core';\nvar SyntaxHighlighter = highlight(refractor, {});\n\nSyntaxHighlighter.registerLanguage = function (_, language) {\n return refractor.register(language);\n};\n\nexport default SyntaxHighlighter;","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","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};","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 arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit 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 _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest 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\";\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 _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 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 };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };"],"sourceRoot":""}